今天给大家带来的是Jenkins的安装,目前企业最流行的CI/CD工具,希望给大家带来一点小小的帮助。
在安装之前,我想讲一下基础知识,帮助大家更好地了解Jenkins,它的前身是Hudson,sun公司开发的,后面sun被甲骨文收购了,甲骨文这家公司一收购,丫的,就想把Hudson作为一个收费产品,投入到市场。这个理念与原本开发团队不一致,于是原本开发团队就另外写了一个比Hudson更优秀的产品,Jenkins。
然后说下CI/CD,一般流程是:需求分析->开发–>编译打包->测试->预发布->正式部署,其中编译打包和测试属于CI,预发布和正式部署属于CD
预热:解释一下CI/CD
CI:持续集成 Continuous Integration
CD: 持续发布 Continuous Deployment
快速定位到Docker版安装Jenkins
1、创建jenkins文件夹
[root@VM-4-2-centos opt]# mkdir jenkins
[root@VM-4-2-centos opt]# cd jenkins/
2、安装Jenkins依赖,需要两个依赖包fontconfig和jdk,jdk之前我已经安装好了,然后也可以通过yum search java | grep -i --color JDK命令,查看可以安装哪些jdk,在线安装
[root@VM-4-2-centos jenkins]# yum -y install fontconfig java-1.8.0-openjdk.x86_64
3、官网下载,Jenkins官网下载,然后注意:LTS是长期稳定版,三个月更新一次,无法体验最新的插件,建议下载最新版
3A、如果觉得官网下载太慢的话,可以使用清华镜像,老哥这里使用镜像算了,因为官网下载还需要配置ssl
[root@VM-4-2-centos jenkins]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.347-1.1.noarch.rpm
5、解压安装
[root@VM-4-2-centos jenkins]# rpm -ivh jenkins-2.347-1.1.noarch.rpm
6、jenkins是java语言写的,需要配置jdk路径
[root@VM-4-2-centos jenkins]# which java
/opt/jdk/jdk1.8.0_333/bin/java
[root@VM-4-2-centos jenkins]# vi /etc/init.d/jenkins
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
/opt/jdk/jdk1.8.0_333/bin/java
"
7、刷新配置
[root@VM-4-2-centos jenkins]# systemctl daemon-reload
8、启动Jenkins服务并启用它以在系统引导时启动
[root@VM-4-12-centos jenkins]# systemctl enable jenkins
9、非必须,可以不改,默认是8080,修改jenkins访问端口为8888
vim /usr/lib/systemd/system/jenkins.service
# Port to listen on for HTTP requests. Set to -1 to disable.
# To be able to listen on privileged ports (port numbers less than 1024),
# add the CAP_NET_BIND_SERVICE capability to the AmbientCapabilities
# directive below.
Environment="JENKINS_PORT=8888"
[root@VM-4-12-centos jenkins]# systemctl daemon-reload
10、启动Jenkins,需要一点时间,耐心等待,如果出现了以下的提示,需要加一行命令,Jenkins是已经启动成功了,但是jenkins的默认配置用户是jenkins,需要创建一个Jenkins用户,然后授权执行后面的命令
[root@VM-4-2-centos jenkins]# systemctl start jenkins
Job for jenkins.service failed because a timeout was exceeded. See "systemctl status jenkins.service" and "journalctl -xe" for details.
[root@VM-4-12-centos jenkins]# sudo chown -R jenkins:jenkins /var/lib/jenkins
11、查看状态,或者使用jps命令
[root@VM-4-2-centos jenkins]# systemctl status jenkins
12、先别急着登录,我们需要先修改一下Jenkins的插件源,因为插件全部在国外,我们改成国内的,插件也可以进入页面后修改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
[root@VM-4-2-centos jenkins]# cd /var/lib/jenkins/updates
[root@VM-4-12-centos updates]# sed -i 's/http:\/\/updates.jenkinci.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
13、然后我们输入http://101.34.7.236:8888/restart,先重启,然后刷新
14、拿到初始密码,登录
[root@VM-4-2-centos jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
19、进入Jenkins后,我们先到Manage Jenkins里面,管理插件里面,修改插件的地址,https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
20、然后在available中,搜chinese,Credentials Binding ,Git,Maven Integration的插件,依次安装,老哥这些都安装过了,所以演示一个Junit
chinese 中文汉化版插件
Credentials Binding 凭证插件
Git 代码拉取插件
下面是编译的插件,可以不安装,Jenkins默认给我们提供的是freestyle插件
Maven Integration maven 构建插件 默认是自由风格
Pipeline 流水线插件
21、然后我们尝试去gitlab拉取代码,不会安装Gitlab的,Gitlab 安装教程,这个时候我们需要配置一下rsa秘钥,输入以下命令一直回车,公钥 id_rsa.pub 放到gitlab中,私钥配置到jenkins里面
[root@VM-4-2-centos ~]# ssh-keygen -t rsa
[root@VM-4-2-centos ~]# cat .ssh/id_rsa.pub
[root@VM-4-2-centos ~]# cat .ssh/id_rsa
24、然后来到Jenkins主界面
25、新建一个任务
26、配置gitlab 地址
27、构建,然后查看,没有问题
28、接下来是Docker版本的安装,Linux版本的老哥们可以先撤了
29、拉取中文版镜像
[root@VM-4-12-centos docker-jenkins]# docker pull jenkinszh/jenkins-zh
[root@VM-4-12-centos docker-jenkins]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkinszh/jenkins-zh latest 2cb4cce6db0a 23 months ago 656MB
30、创建一个Jenkins文件夹
[root@VM-4-12-centos docker-jenkins]# mkdir -p /data/jenkins_home/
31、赋予Jenkins文件夹执行权限
[root@VM-4-12-centos docker-jenkins]# chmod 777 /data/jenkins_home/
32、启动Jenkins,这里怕有些小伙伴看不懂,我特别说明一下这些命令的意思,-d 后台运行,然后将默认的8080的端口映射到物理机的8090,第二个也是同样,-v 将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录,-name 重命名
[root@VM-4-12-centos docker-jenkins]# docker run -d -p 8090:8080 -p 8091:50000 -v /data/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkinszh/jenkins-zh
33、记得开放云服务器端口8090,最后查看http://101.34.7.236:8090/,成功!
34、之后的步骤和上面一样,这里就不重复了
35、最后,就默默的说一句,屏幕前的各位大帅逼,还有大漂亮,看到这里,麻烦给老哥一个点赞、关注、收藏三连好吗,你的支持是老哥更新最大的动力,谢谢!