一、jenkins简介
Jenkins是一个自动化服务器,目前发展超过15年,比较成熟的CI工具(也可以CD)能够实现自动化集成发布。建立好流水线后,期间无需专业运维人员介入,开发人员随时发布部署。
部分应用场景:
- 集成svn/git客户端实现源代码下载检出
- 集成maven/ant/gradle/npm等构建工具实现源码编译打包单元测试
- 集成sonarqube对源代码进行质量检查(坏味道、复杂度、新增bug等)
- 集成SaltStack/Ansible实现自动化部署发布
- 集成Jmeter/Soar/Kubernetes/.....
- 可以自定义插件或者脚本通过jenkins传参运行
可以说Jenkins比较灵活插件资源丰富,日常运维工作都可以自动化。
注意:
1、从 Jenkins 2.357(于 2022 年 6 月 28 日发布)和 2.361.1 LTS 版本开始,Jenkins 需要 Java 11 或更高版本。
2、Jenkins 项目决定在 2023 年末结束对 Red Hat Enterprise Linux 7 的支持,而不是等到 2024 年。2023年 11 月 16 日之后,Jenkins 项目将不再支持在 Red Hat Enterprise Linux 7 或其衍生版本上运行 Jenkins。2023 年 11 月 16 日之后将不再支持基于 CentOS 7 的 Jenkins 容器映像。
附:Jenkins 开发人员预计不会在 2023 年 11 月 16 日之后接受专门用于修复 Red Hat Enterprise Linux 7 或其衍生版本问题的补丁,Red Hat Enterprise Linux 7 及其衍生产品的 Jenkins 项目测试将于 2023 年 11 月 16 日或之前停止。Jenkins 插件(例如 ssh 代理插件和 git 插件)将可以自由删除它们包含的支持 Red Hat 中包含的旧软件版本的代码Hat Enterprise Linux 7 及其衍生产品。
参考链接:
1、https://www.jenkins.io/blog/2022/06/28/require-java-11/
2、https://www.jenkins.io/blog/2023/05/30/operating-system-end-of-life/
二、安装jenkins
1、yum安装方式
1、安装软件源(lts版本)
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
2、安装java环境
# 卸载自带java8环境
# yum -y remove java-1.8.0*
# yum -y remove tzdata-java.noarch
# yum -y remove javapackages-tools.noarch
# java11版本和java17版本都行,推荐java17
# wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
# rpm -ivh jdk-17_linux-x64_bin.rpm
3、安装jenkins
# yum -y install jenkins --nogpgcheck
# yum -y update jenkins --nogpgcheck # 更新jenkins
# systemctl enable jenkins
# systemctl start jenkins
4、获取管理员密码
# cat /var/lib/jenkins/secrets/initialAdminPassword
3713e68d1863430c886350d7cb2737d4
2、war包安装
# wget http://mirrors.jenkins.io/war-stable/2.346.1/jenkins.war
# nohup java -jar jenkins.war --httpPort=8000 > system.log 2>&1 &
3、docker安装
# mkdir -p /data/jenkins_data
# chmod -R 777 /data/jenkins_data
# docker run -d --name=jenkins --restart=always -e JENKINS_PASSWORD=admin123 -e JENKINS_USERNAME=admin -e JENKINS_HTTP_PORT_NUMBER=8000 -p 8000:8000 -p 50000:50000 -v /data/jenkins_data:/bitnami/jenkins bitnami/jenkins:2.346.3-debian-11-r7
# docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
三、配置jenkins
1、更改密码
进入主页后点击admin
点击configure按钮
进入之后拉到Password项修改密码,点击save保存
保存后自动重新登陆,输入用户名和更新后的密码进入
2、修改插件源地址
1、直接修改配置文件
cd jenkins_home/updates
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && \
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
2、网页修改
点击Managa Jenkins后点击右面的Plugins项
点击Advanced setting拉到最下面修改Update Site,输入jenkins清华源地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
或者安装Localization: Chinese (Simplified)插件后主页右下角会出现Jenkins 中文社区的链接
进入后可以选择更新中心镜像设置
3、安装插件
登录后点击 Manage Jenkins → Plugins 安装需要使用的插件
可以在 Available 可以看到所有的可用插件
可以按需安装以下插件
Git
Git Parameter
GitLab
Pipeline
List Git Branches Parameter
Image Tag Parameter
Active Choices
Localization: Chinese (Simplified)
Ansible
AnsiColor
DingTalk
Docker
Docker Pipeline
Workspace Cleanup
勾选后,点击 Download now and install after restart
之后可以在 Installed Plugins看到已经安装的插件
至此 Jenkins 和 Jenkins 插件的安装就完成了。
四、jenkins数据目录迁移
1、yum安装方式
转移jenkins目录,把默认目录/var/lib/jenkins,更改到其他大目录或者磁盘中。
我的是在centos中安装的,我把默认目录转移到/data中
把/var/lib/jenkins 拷贝到 /data中
因为是在root用户下操作的,所以需要更改目录所属目录
rsync -az /var/lib/jenkins /data/
#更改目录所属用户
chown -R jenkins:jenkins /data/jenkins/
执行下列命令更改jenkins启动命令
# vim /usr/lib/systemd/system/jenkins.service
Environment="JENKINS_HOME=/data/jenkins"
WorkingDirectory=/data/jenkins
修改/etc/sysconfig/jenkins
vim /etc/sysconfig/jenkins
#JENKINS_HOME="/var/lib/jenkins"
JENKINS_HOME="/data/jenkins"
修改/etc/passwd中的jenkins
把其中的Server:/var/lib/jenkins 改成 /data/jenkins
[root@localhost ]# vim /etc/passwd
#其中内容,修改后
jenkins:x:995:993:Jenkins Automation Server:/data/jenkins:/bin/false
保存退出
重启jenkins
# systemctl daemon-reload
# systemctl restart jenkins
2、war包安装
war包安装默认会把jenkins的数据目录安装到/root/.jenkins中,所以需要更改环境变量的方式更改默认目录
# vim /etc/profile
export JENKINS_HOME=/data/jenkins_home
# source /etc/profile
评论区