【服务器部署篇】Linux下Jenkins安装和配置

news2024/9/23 23:24:25

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、下载&安装
    • 三、配置
    • 四、总结

一、前言

本文介绍在Linux环境下使用Docker方式如何安装Jenkins。

  • Jenkins是什么?

    Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。它是基于Java开发的一种CI持续集成、CD持续部署工具,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它的前身Hudson是一个可扩展的持续集成引擎,可用于自动化各种任务,如构建,测试和部署软件等等。

    Jenkins官网地址:https://www.jenkins.io/zh/
    在这里插入图片描述

二、下载&安装

首先,从Jenkins官方Docker镜像仓库中,下载Jenkins的镜像安装包。

Jenkins官方Docker仓库地址:https://hub.docker.com/r/jenkins/jenkins

在这里插入图片描述

从官网上可以看到,当前最新的稳定版本是 jenkins/jenkins:lts-jdk17。

所以,我们这里,执行docker pull命令,下载该版本的Jenkins的镜像安装包;

docker pull jenkins/jenkins:lts-jdk17

之后,新增一个Jenkins的工作目录;

mkdir -p /docker/jenkins_home

之后,设置Jenkins工作目录的文件权限,即设置文件的属主或者拥有者为Jenkins。(PS:因为"docker"用户在宿主机上的uid默认是"1000")

chown -R 1000 /docker/jenkins_home

之后,执行docker run命令,开始安装Jenkins。

docker run -d \
-p 8888:8080  \
-p 50000:50000  \
-v /usr/bin/docker:/usr/bin/docker  \
-v /docker/jenkins_home:/var/jenkins_home  \
-v /etc/localtime:/etc/localtime   \
--privileged=true  \
--restart=always \
--name=jenkins \
jenkins/jenkins:lts-jdk17

命令参数详解如下:

  • -run -d :后台运行容器;
  • -p 8888:8080 将容器的 8080 端口映射到服务器的 8888端口上;
  • -p 50000:50000 将容器的 50000 端口映射到服务器的 50000 端口上;
  • -v /usr/bin/docker:/usr/bin/docker 将容器中 docker目录挂载到宿主机上,方便调用宿主机的docker命令;
  • -v /docker/jenkins_home:/var/jenkins_home 将容器中 Jenkins 的工作目录挂载到宿主机上;
  • -v /etc/localtime:/etc/localtime 设置容器使用跟宿主机同样的时间设置;
  • –privileged=true 赋予容器root权限,便于进入容器;
  • -restart=always 设置容器自动重启;
  • -name=jenkins 给容器起的别名;
  • jenkins/jenkins:lts-jdk17 镜像名称加版本号;

之后,安装完成,可以使用docker ps命令,查看Jenkins容器的运行状态;

docker ps

在这里插入图片描述

如果Jenkins容器状态显示为UP,表示Jenkins启动成功。

三、配置

安装完成后,下面开始配置。

在开始配置之前,首先,修改Jenkins插件下载源地址,设置为国内的镜像源地址,比如清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json (PS:这个很重要,否则会导致插件安装失败。)

cd  /docker/jenkins_home

vi hudson.model.UpdateCenter.xml 

在这里插入图片描述

之后,登录阿里云控制台,设置ECS安全组规则,对外开放8888端口访问。(PS:因为我们在上面的安装过程中,把Jenkins的8080端口映射到宿主机服务器上的8888端口了。所以对外开放8888端口的访问,后续浏览器才能正常访问Jenkins页面。)
在这里插入图片描述

之后,打开浏览器访问Jenkins,进入Jenkins配置引导界面。(PS:地址,http://你的ECS服务器外网IP地址:8888。)
在这里插入图片描述

如上图所示,解锁Jenkins,需要管理员密码。

之后,使用docker ps命令,查看你的Jenkins容器ID。

docker ps

在这里插入图片描述

之后,使用docker logs命令,查看管理员密码。

docker logs 你的Jenkins容器ID

在这里插入图片描述

之后,在安装引导页面中,输入上图中管理员密码,点击继续,进入插件安装页面,点击安装推荐的插件;
在这里插入图片描述
之后,进入安装插件进度界面。
在这里插入图片描述
之后,插件安装完成,开始创建管理员用户,输入用户的账号信息,点击保存并完成。
在这里插入图片描述
之后,进入实例配置界面,建议使用默认值,点击保存并完成。
在这里插入图片描述
之后,提示“Jenkins已就绪”,点击开始使用Jenkins。
在这里插入图片描述
至此,Jenkins安装配置完成了,系统自动登录并进入Jenkins控制台主页面。
在这里插入图片描述
至此,Jenkins安装配置完成了。

四、总结

以上介绍了在Linux环境下使用Docker方式如何安装Jenkins。

在Jenkins安装的过程中,出现了插件安装失败的错误。由于需要安装的插件的数量很多,如果手动安装的话,确实很痛苦。所以,这里整理一下插件安装失败错误的解决方案。

错误描述如下
在Jenkins的安装配置引导页面,安装推荐的插件时,出现部分插件安装失败错误。
在这里插入图片描述
另外,当点击继续跳过后。登录Jenkins控制台,在插件管理页面,可用的插件列表中,出现很多红色的警告信息。

Warning: This plugin is built for Jenkins 2.361.4 or newer. Jenkins will refuse to load thisplugin if installed.

在这里插入图片描述

解决方案如下
首先,需要选择合适的Jenkins的镜像版本,建议下载最新的稳定版本。这样的在自动安装插件时,可以避免出现Jenkins版本过低的问题。比如这里选择Jenkins官网发布的 jenkins/jenkins:lts-jdk17版本的docker镜像。

之后,在Jenkins容器启动成功后,及时修改插件的镜像源地址为国内的镜像源地址。这样在安装配置引导页面,自动安装插件时,可以从国内的镜像源中快速的下载插件。比如,这里修改镜像源地址为清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1596236.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用PL\SQL将Excel表格导入到oracle数据库中

因为要测试生产问题,需要把生产上oracle导出数据导入到测试环境oracle数据库中,尝试了N种方法,发现使用PL\SQL 的ODBC 方法比较好用 1、开始 首先使用plsqldev里面的,工具--》下面的odbc导入器 2、配置 点击之后,会…

获取jd.item_get-获得京东商品详情API接口请求参数请求接入示例免费接入KEY演示

京东商品详情API接口的主要作用是: 获取基本信息:包括商品的名称、品牌、产地和规格参数等,这些信息有助于构建商品的基本档案。价格信息获取:可以了解到商品的原价、促销价以及参与的各种活动信息,这对于制定销售策略…

DePT: Decoupled Prompt Tuning 论文阅读

DePT: Decoupled Prompt Tuning 了论文阅读 Abstract1. Introduction2. Methodology2.1. Preliminaries2.2. A Closer Look at the BNT Problem2.3. Decoupled Prompt Tuning 3. Experiments5. Conclusions 文章信息: 原文链接:https://arxiv.org/abs/…

微软搭建零售新媒体创意工作室大举抢占数字营销广告市场

“微软新零售创意工作室新平台利用生成式人工智能,在几秒钟内轻松定制横幅广告。零售媒体预计到2026年将成为一个价值1000亿美元的行业。” 零售媒体在过去几年中发展迅速。根据eMarketerOpens在新窗口的数据,预计到2024年,仅美国的零售媒体…

COOIS增加增强字段

SAP系统标准的工单信息报表COOIS增加客制化增强字段可以按照以下步骤处理; 1. 在显示抬头信息的输出结构IOHEADER中增加需要显示的增强字段 2. 使用BADI WORKORDER_INFOSYSTEM创建增强实施 3. 在方法TABLES_MODIFY_LAY中处理相应字段的取值逻辑

YoloV8改进策略:Block改进|轻量级的Mamba打造优秀的YoloV8|即插即用,简单易懂|附Block结构图|检测、分割、关键点均适用(独家原创)

摘要 无Mamba不狂欢,今天给大家带来一个基于轻量级Mamba的改进。模块简单易懂,即插即用! 带领大家去征服更高的领域。 论文:《LightM-UNet:Mamba 辅助的轻量级 UNet 用于医学图像分割》 https://arxiv.org/pdf/2403.05246.pdf UNet及其变体在医学图像分割中得到了广泛…

Thread和Runnable

两者都创建线程的方式,不同之处在于前者是类,后者是接口。使用的时候重写他们即可。 预热:操作系统的知识 想象此时有一条马路,走的人多了道路开始变得堵塞,如果拓宽为多车道即可解决该问题。 这便是多线程的例子。…

An Investigation of Geographic Mapping Techniques for Internet Hosts(2001年)第二部分

​下载地址:An investigation of geographic mapping techniques for internet hosts | Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications 被引次数:766 Padmanabhan V N, Subramanian L. An i…

Redis限流插件

Redis限流插件: 1:搭建层级结构 同时对 redis.log 授权 chmod 777 redis.log2:确认 redis 版本 3:下载redis配置文件 redis.conf https://redis.io/docs/management/config/ 4:上传/redis/conf作为原始 redis.conf 5:在/redis_6390/conf下编辑redis.conf docker run -it \ --…

软件测试面试题分享(含答案+文档)

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 准备找工作的小伙伴们,今天我给大家带来了一些自动化测试面试题,在这个公…

c++的学习之路:4、入门(3)

摘要 本章将介绍一下auto、for和指针空值,文章末附上入门的所有代码。 目录 摘要 一、auto 二、for 三、指针空值 四、代码 五、思维导图 一、auto 这个关键字是c提出的,可以自动识别变量的类型,可以看出下方图片,auto自…

19.java openCV4.x 入门-Imgproc之图形绘制

专栏简介 💒个人主页 📖心灵鸡汤📖我们唯一拥有的就是今天,唯一能把握的也是今天建议把本文当作笔记来看,据说专栏目录里面有相应视频🤫 📰专栏目录 Imgproc之图像绘制 一、直线绘制字段1…

学习笔记------约束的管理

此篇记录FPGA的静态时序分析,在学习FPGA的过程中,越发觉得对于时序约束只是懂了个皮毛。现在记录一下自己的学习过程。 本文摘自《VIVADO从此开始》高亚军 为什么要进行约束?约束的目的是什么? 简单来说,就是需要在…

onedrive 清理文件历史版本 节省空间

onedrive 清理文件历史版本以节省空间的操作步骤 起因: 用的好好的onedrive高校教育版,突然在2024年4月2日晚上把空间从1T回收到100G,然后文件爆满,虽然没有把文件都给我删了,但是可能几个月窗口期过去就没文件了。而…

科技人才的养成之路

引言 在当今科技行业蓬勃发展的背景下,对于高素质科技人才的需求日益增加。科技人才的培养不仅仅是为了满足市场需求,更是为了推动社会的科技创新和发展。正是这些科技人才,推动着科技的边界不断拓展,创造出各种令人瞩目的技术和…

grpc-教程(golang版)

目录 一、介绍 二、环境准备 三、Golang中使用grpc 1.编写protobuf文件 2.服务端 3.客户端 四、proto文件详解 1.proto语法 2.数据类型 基本数据类型 数组类型 map类型 嵌套类型 编写风格 3.多服务 4.多个proto文件 五、流式传输 1.普通rpc 2.服务器流式 …

java:多线程解决生产者消费者问题

生产者消费者问题 生产者消费者问题,也称有限缓冲问题,是一个多线程同步问题的经典案例。该问题描述了共享固定大小缓冲区的两种线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中…

44.HarmonyOS鸿蒙系统 App(ArkUI)栅格布局介绍

栅格布局是一种通用的辅助定位工具,对移动设备的界面设计有较好的借鉴作用。主要优势包括: 提供可循的规律:栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题。通过将页面划分为等宽的列数和行数,…

Linux Crontab定时任务介绍及检测思路分析

一、Cron介绍 1、定义 crontab为Linux下的计划任务程序,对应的服务为crond。crond是一个守护进程,每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux系统上面原本就有非常多的计划性工作&#xff…

深度学习pytorch实战第P3周--实现天气识别

>- **🍨 本文为[🔗365天深度学习训练营](https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客** >- **🍖 原作者:[K同学啊](https://mtyjkh.blog.csdn.net/)** 引言 1.复习上周 深度学习pytorch实战-第…