一、Jenkins 介绍
Jenkins是由java编写的一款开源软件。作为一款非常流行的CI(持续集成)工具,用于构建和测试各种项目,以及监视重复工作的执行,例如软件工程的构建或在 cron 下设置的 jobs。
Jenkins的主要目的是持续、自动的软件版本构建、测试项目;监控软件开放流程,快速问题定位及处理,提高开发效率。
Jenkins 特点:
- 开源的java语言开发持续集成工具,支持持续集成,持续部署。
- 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
- 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
- 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
- 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
- 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
二、Jenkins 安装和持续集成环境配置
2.1、配置
服务器类型 | IP地址 | 软件/工具 | 版本/描述 |
---|---|---|---|
代码托管服务器 | 192.168.88.10 | Gitlab | 用于代码的版本控制和托管 |
持续集成服务器 | 192.168.88.20 | Jenkins,JDK17,Maven3,Git | 持续集成工具,用于自动化构建和测试 |
应用测试服务器 | 192.168.88.30 | JDK1.8,Tomcat8.5 |
1、所有机器
setenforce 0
systemctl disable --now firewalld
2.2、Gitlab安装
①、安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix git
systemctl enable --now sshd
systemctl enable --now postfix
②、上传 gitlab-ce-12.3.0-ce.0.el7.x86_64.rpm 文件到 /opt 目录
cd /opt
rpm -ivh gitlab-ce-12.3.0-ce.0.el7.x86_64.rpm
修改 gitlab 访问地址和端口配置
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.88.10:82'
nginx['listen_port'] = 82
重载配置及启动 gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
浏览器访问:http://192.168.88.10:82 ,如果显示 502,稍等片刻再刷新
1、设置管理员 root 用户的新密码,注意有格式要求,这里设置成 root@123
2、使用管理员 root 用户登录(root/root@123)
3、登录后点击页面右上方的用户选项下拉选择【Settings】,点击左边菜单【Preferences】,在【Localization】的【Language】中选择【简体中文】,点击【Save changes】按钮,再刷新页面使用中文显示。
2.2.1、补充
浏览器访问:http://192.168.88.10:82 ,如果显示 502,稍等片刻再刷新
1、设置管理员 root 用户的新密码,注意有格式要求,这里设置成 root@123
2、使用管理员 root 用户登录(root/root@123)
3、登录后点击页面右上方的用户选项下拉选择【Settings】,点击左边菜单【Preferences】,在【Localization】的【Language】中选择【简体中文】,点击【Save changes】按钮,再刷新页面使用中文显示。
4、Gitlab添加组、创建用户、创建项目
①、创建群组
点击页面左上方的【GitLab】图标,点击 【新建群组】
【群组名称】、【群组URL】、【群组描述】都设置成 devops_group
【可见性级别】设置成 私有
其他都保持默认值,点击 【创建群组】
②、创建项目
点击 【新建项目】
【项目URL】群组选项下拉选择 devops_group
【项目名称】设置成 web_demo
【项目描述】设置成 web_demo
【可见等级】设置成 私有
点击 【创建项目】
③、创建用户
点击页面上方的【扳手】图标进入“管理区域”
点击 【新建用户】
【姓名】设置成 zhangsan
【用户名】设置成 zhangsan
【电子邮箱】设置成 zhangsan@pp.com
这里密码暂不设置,其他都保持默认值,先点击 【创建用户】
注:Access level:
Regular(表示的是普通用户,只能访问属于他的组和项目);
Admin(表示的是管理员,可以访问所有组和项目)
创建好用户后再点击右上角的【Edit】,可在这里设置密码,如 zhangsan@123
④、将用户添加到组中
点击页面上方的【群组】下拉选择 devops_group
点击左边菜单【成员】
【添加成员到 devops_group】选择 zhangsan,角色权限选择 Owner
点击 【添加到群组】
注:角色权限:
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
Owner:可以设置项目访问权限(Visibility Level)、删除项目、迁移项目、管理组成员,开发组组长可以赋予这个权限
使用自己创建的账户进行管理
退出当前账户,使用自己创建的账户 zhangsan 登录(zhangsan/zhangsan@123)
第一次登录会被强制要求修改密码(zhangsan/zhangsan@123),可与旧密码相同,再重新登录
源码上传到Gitlab仓库
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@pp.com"
cd ~
git clone http://192.168.80.10:82/devops_group/web_demo.git
账号/密码:zhangsan/zhangsan@123
ls -A web_demo/
上传 web_demo.zip 文件到 /opt 目录
cd /opt
unzip web_demo.zip
mv web_demo/* /root/web_demo/
cd /root/web_demo
git add .
git commit -m "init web_demo"
git push -u origin master
账号/密码:zhangsan/zhangsan@123
点击页面上方的【项目】下拉选择 web_demo,即可看到上传的代码
三、Jenkins安装
jenkins建议安装LTS长期支持版本,而不是安装每周更新版本,jenkins安装指定版本(https://mirrors.jenkins-ci.org/redhat/)
jenkins 清华大学开源软件镜像站
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
JDK下载版本
https://adoptium.net/zh-CN/temurin/releases/?version=17&arch=x64&os=linux&package=jdk
根据版本而定 jdk
1、安装JDK17配置
放入文件到opt下jdk和jenkins
tar zxvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.13_11.tar.gz -C /usr/local/
cd /usr/local/
mv jdk-17.0.13+11/ jdk-17.0.13
2、环境变量
vim /etc/profile
最后行尾
export JAVA_HOME=/usr/local/jdk-17.0.13
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile
java -version
3、安装jenkins
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
yum install epel-release -y
yum install jenkins -y jenkins-2.479-1.1.noarch.rpm
如果公钥不成功
sudo yum -y install jenkins --nogpgcheck
补充
不行就改repo
4、查看
rpm -qa jenkins
rpm -ql jenkins
5、新版本的 jenkins 还要在 /usr/lib/systemd/system/jenkins.service 文件中修改用户名和端口
vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root
Environment="JAVA_HOME=/usr/local/jdk-17.0.13/"
Environment="JENKINS_PORT=8888"