linux下jenkins部署安装使用
Jenkins 是什么?
Jenkins是一款开源 CI&CD 软件,是基于Java开发的一种持续集成工具,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现DevOps的核心工具。
Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。
Jenkins最主要的工作就是将GitLab上可以构建的工程代码拉取并且进行构建,再根据流程可以选择发
布到测试环境或是生产环境。
一般是GitLab上的代码经过大量的测试后,确定发行版本,再发布到生产环境。
CI/CD可以理解为:
CI过程即是通过Jenkins将代码拉取、构建、制作镜像交给测试人员测试。
持续集成:让软件代码可以持续的集成到主干上,并自动构建和测试。
CD过程即是通过Jenkins将打好标签的发行版本代码拉取、构建、制作镜像交给运维人员部署。
持续交付:让经过持续集成的代码可以进行手动部署。
持续部署:让可以持续交付的代码随时随地的自动化部署。
官网:https://www.jenkins.io
中文文档:https://www.jenkins.io/zh/
安装包:http://mirrors.jenkins.io/war-stable/latest
基础环境要求
运行 Jenkins 需要以下 Java 版本,该要求同样适用于 Jenkins 系统的所有组件,包括 Jenkins 控制器、所有类型的代理、CLI 客户端和其他组件。
Supported Java versions | Long term support (LTS) release | Weekly release |
Java 11, Java 17, or Java 21 | 2.426.1 (November 2023) | 2.419 (August 2023) |
Java 11 or Java 17 | 2.361.1 (September 2022) | 2.357 (June 2022) |
Java 8, Java 11, or Java 17 | 2.346.1 (June 2022) | 2.340 (March 2022) |
Java 8 or Java 11 | 2.164.1 (March 2019) | 2.164 (February 2019) |
注意:如果安装不受支持的 Java 版本,则 Jenkins 控制器将无法运行。
docker方式安装
安装Docker和Docker Compose
#安装docker
yum install docker#安装docker-compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 添加执行权限
chmod +x /usr/local/bin/docker-compose# 验证安装
docker-compose --version使用 pip 安装docker-compose(适合无法直接访问 GitHub 的环境)
# 安装pip(如未安装)
sudo apt-get install python3-pip# 使用pip安装
sudo pip3 install docker-compose# 验证安装
docker-compose --version
拉取Jenkins镜像
docker pull jenkins/jenkins
编写docker-compose.yml
vim docker-compose.yml
version: "3.1"
services:
jenkins:
image: jenkins/jenkins
container_name: jenkins
ports:
- 8080:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/#给data目录添加权限
chmod -R a+w data/
启动jenkins容器
在docker-compose.yml同级目录下执行
docker-compose up -d
# 或只启动特定服务
docker-compose up -d jenkins
# 或只启动改yml文件下的容器
docker-compose -f docker-compose.yml up -d
查看运行的服务
docker-compose ps
查看日志
docker-compose logs <service_name>
docker-compose logs jenkins
停止服务
要停止所有服务,可以使用:
docker-compose down
这将会停止并移除所有容器、网络、卷、镜像等。如果你只想停止容器而不移除它们,可以使用:
docker-compose stop
重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,
需要重新设置下载地址为国内镜像站
修改数据卷中的hudson.model.UpdateCenter.xml文件
vim hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
</site>
</sites>
# 清华大学的插件源也可以
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
查看密码登录Jenkins,并登录下载插件
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
war方式安装
下载jenkins
yum install -y java-11
mkdir -p /opt/jenkins
cd /opt/jenkins
wget https://mirrors.jenkins.io/war-stable/2.426.1/jenkins.war
启动jenkins
nohup java -jar jenkins.war --httpPort=8080 > jenkins.log &
访问Jenkins并登录
打开浏览器访问jenkins链接http://localhost:8080
。第一次访问新的Jenkins实例时,系统会要求使用/root/.jenkins/secrets/initialAdminPassword
文件中自动生成的密码对其进行解锁。
cat /root/.jenkins/secrets/initialAdminPassword
自定义jenkins插件
解锁 Jenkins之后,在 Customize Jenkins 页面内, 可以安装任何数量的有用插件作为初始步骤的一部分。
两个选项可以设置:
-
• 安装建议的插件 - 安装推荐的一组插件,这些插件基于最常见的用例.
-
• 选择要安装的插件 - 选择安装的插件集。当第一次访问插件选择页面时,默认选择建议的插件。
说明:如果您不确定需要哪些插件,请选择 安装建议的插件 。 您可以通过Jenkins中的Manage Jenkins> Manage Plugins页面在稍后的时间点安装(或删除)其他Jenkins插件
创建第一个管理员用户
最后,在安装插件之后,Jenkins要求您创建第一个管理员用户。出现“ 创建第一个管理员用户 ”页面时, 请在各个字段中指定管理员用户的详细信息,然后单击 保存完成 。也可以直接使用admin
用户做登录。
从这时起,Jenkins用户界面只能通过提供有效的用户名和密码凭证来访问。
安装完成
完成上述初始化操作后,可以点击 开始使用 Jenkins
直接登录进入 Jenkins
,这就算安装完成了。
Jenkins入门配置
由于Jenkins需要从Git拉取代码、需要本地构建、甚至需要直接发布自定义镜像到Docker仓库,所以Jenkins需要配置大量内容。
构建任务
准备好GitLab仓库中的项目,并且通过Jenkins配置项目的实现当前项目的DevOps基本流程。
GitLab查看项目构建Maven工程发布到GitLab(Gitee、Github均可)
新建任务
Jenkins点击首页左侧导航新建任务
选择自由风格构建任务
配置源码拉取地址
Jenkins需要将Git上存放的源码存储到Jenkins服务所在磁盘的本地,配置任务源码拉取的地址
Jenkins立即构建
查看构建工程的日志
点击build history的任务条即可,可以看到源码已经拉取带Jenkins本地,可以根据第三行日志信息,查看Jenkins本地拉取到的源码。