实战-Docker方式安装Jenkins-20220417-测试成功
Day2-实战:Docker方式安装Jenkins-2022.4.17(测试成功)

目录
[toc]
实验环境
1win10笔记本
21台虚机 centos7.9 vmworkstation
3jenkins/jenkins:2.332.2-centos7-jdk8
4docker 20.10.11
实验软件
链接:https://pan.baidu.com/s/1d4Y_oq_nysDR7Psl8syKZw?pwd=l6lo
提取码:l6lo
2022.4.16-实战2:docker方式安装jenkins-2022.4.16(测试成功)

前置条件
- docker环境已安装(本次版本:20.10.11)
1、Jenkins master节点安装
🍀 课件内容




🍀 自己配置过程如下:
0、安装jdk环境
⚠️ 我们测试环境,是在一台虚机上跑了一个jenkins容器。但后面添加一个jenkins agent时,是将这个虚机作为其agent使用,因此这个虚机也要安装java环境的!!!
不管你是jenkins master节点,还是agent节点,都是需要jdk环境的!
1(1)下载jdk软件
2[root@devops ~]#wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz --no-check-certificate


1(2)配置jdk环境
2[root@devops ~]#tar zxf OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz -C /usr/local/
3[root@devops ~]#cd /usr/local/jdk8u322-b06/
4[root@devops jdk8u322-b06]#pwd
5/usr/local/jdk8u322-b06
6[root@devops jdk8u322-b06]#vim /etc/profile
7export JAVA_HOME=/usr/local/jdk8u322-b06
8export PATH=$JAVA_HOME/bin:$PATH
9[root@devops jdk8u322-b06]#source /etc/profile
10
11(3)验证
12[root@devops jdk8u322-b06]#java -version
13openjdk version "1.8.0_322"
14OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
15OpenJDK 64-Bit Server VM (Temurin)(build 25.322-b06, mixed mode)
1、docker拉取jenkins镜像并启动容器
🍀 下载jenkins镜像
去dockerhub官方网站去下载jenkins镜像
在dockerhub里搜索jenkins/jenkins,点击tag,搜索jdk8,然后选择2.332.2-centos7-jdk8即可:


1docker pull jenkins/jenkins:2.332.2-centos7-jdk8
🍀 完整安装过程如下:
1#先在本地宿主机创建/data/cicd/jenkins目录并赋予权限
2mkdir -p /data/cicd/jenkins
3chmod +x /data/cicd/jenkins
4
5(1)拉取镜像
6[root@devops harbor]#docker pull jenkins/jenkins:2.332.2-centos7-jdk8
7
8(2)创建jenkins工作目录
9[root@devops harbor]#mkdir -p /data/cicd/jenkins
10[root@devops harbor]#chmod 777 -R /data/cicd/jenkins
11
12(3)启动jenkins
13docker run -itd --name jenkins --restart=always \
14-p 8080:8080 \
15-p 50000:50000 \
16--privileged=true \
17-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
18-v /data/cicd/jenkins:/var/jenkins_home jenkins/jenkins:2.332.2-centos7-jdk8
19
20#说明:
218080 Jenkins web端访问端口
2250000 Jenkins与Agent建立连接所需要的端口
23JAVA_OPTS环境变量为修改时间配置,否则可能jenkins的时间显示有问题!
24
25(4)验证
26#查看jenkins容器运行状态
27[root@devops ~]#docker ps
28CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
29 NAMES
30dc6fa067248a jenkins/jenkins:2.332.2-centos7-jdk8 "/sbin/tini -- /usr/…" 48 seconds ago Up 47 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins
31
32#查看jenkins容器log
33[root@devops ~]#docker logs jenkins


2、访问web界面并输入密码
http://172.29.9.101:8080/

🍀 可通过如下2种方式来获取密码:
1(1)查看docker里的日志文件
2[root@devops ~]#docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
3cb910c09e8964c459ba6dcc7eff4f4cd
4
5(2)查看jenkins容器日志
6[root@devops ~]#docker logs jenkins
7Jenkins initial setup is required. An admin user has been created and a password generated.
8Please use the following password to proceed to installation:
9
10cb910c09e8964c459ba6dcc7eff4f4cd
11
12This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
输入密码后,这边的加载一会儿,耐心等一会儿:


加载完成后,出现如下界面:

3、自定义安装插件
点击选择插件来安装:

先点击全部,再点击无,我们来自定义安装一些插件:

我们装一个jenkins中文社区的插件及本地化插件就好了:(后面我们课程用到哪些插件再去安装就可以了)选好后,点击安装:


插件安装完成后,出现如下界面:

4、创建一个管理员用户
账户:admin 密码:admin ,输入完成后,点击保存并完成:

点击保存并完成:

点击开始使用jenkins:

这里就进入到了jenkins的主界面:

5、配置插件源
🍀 jenkins官方中文社区源当时测试在这个jenkins版本下用不了!
按老师提供的这个方法,貌似这个源地址对这个版本的jenkins是失效了:。。。(老师也是没测试出来。。。,最后直接更换清华源了!)






🍀 因此这里进行更换清华源:
输入清华源链接地址:https://mirrors.tuna.tsinghua.edu.cn/

点击updates:

看下自己当前jenkins版本:Jenkins 2.332.2)

这里没有Jenkins 2.332.2,用相近的版本也行:

点击update-center.json,然后复制其链接地址即可:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.332.1/update-center.json

🍀 得到清清华源地址后,我们再次按上面方式进行配置
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.332.1/update-center.json

验证,点击立即获取:

可以看到,这个源地址是可以用的:

以上,jenkins master节点就配置成功了,接下来配置下jenkins agent节点!
2、Jenkins agent节点安装
agent就是真正去执行任务的节点。

1、新建节点,并填写参数配置
🍀 课件内容


🍀 自己具体配置过程
点击系统设置-节点管理:

点击新建节点:

填写节点名称,Type选择固定节点,点击Create:

配置执行器数量,远程工作目录,标签内容,其余不变,填写完成后,点击保存:


⚠️
Number of executors你可以这样理解,我在jenkins上运行一个job,它就会占用一个执行器。它所运行作业的数量,作业的并发数。 所以你在调并发的时候,如果出现队列在排队的情况,那可能是因为这里的执行器数量设置不够!
另外:如果这里配置了自定义工作目录的话,那么这里的值就会替代上面我们指定的远程工作目录!

2、获取agent启动程序并运行agent
🍀 课件内容


🍀 自己配置过程:
在首页点击刚才新建的节点build01:

这里agent有2种方式可以连接到jenkins master,我们使用第二种方式:

右键复制agent.jar包,在我们的虚机里将其下载下来:

创建agent目录并下载agent.jar包:
1[root@devops ~]#mkdir -p /data/cicd/jenkins/jenkinsagent
2[root@devops ~]#cd /data/cicd/jenkins/jenkinsagent
3[root@devops jenkinsagent]#wget http://172.29.9.101:8080/jnlpJars/agent.jar
4--2022-04-14 18:40:15-- http://172.29.9.101:8080/jnlpJars/agent.jar
5Connecting to 172.29.9.101:8080... connected.
6HTTP request sent, awaiting response... 200 OK
7Length: 1524115 (1.5M) [application/java-archive]
8Saving to: ‘agent.jar’
9
10100%[=====================================================================================================================================>] 1,524,115 --.-K/s in 0.07s
11
122022-04-14 18:40:15 (22.2 MB/s) - ‘agent.jar’ saved [1524115/1524115]
13
14[root@devops jenkinsagent]#ll -h agent.jar
15-rw-r--r-- 1 root root 1.5M Apr 14 16:09 agent.jar
编写启动脚本:
1[root@devops jenkinsagent]#pwd
2/data/cicd/jenkins/jenkinsagent
3[root@devops jenkinsagent]#vim start.sh #将刚才网页出现的第二种方式的代码拷贝进去
4#!/bin/bash
5echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
6java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins"
启动脚本并查看:
1[root@devops jdk8u322-b06]#cd /data/cicd/jenkins/jenkinsagent/
2[root@devops jenkinsagent]#ls
3agent.jar secret-file start.sh
4[root@devops jenkinsagent]#sh start.sh

此时刷新下web页面,我么可以看到bulid01 agent节点状态正常了:

🍀 但是,现在有个问题,当我们把这个脚本退出后,这个agent程序就退出了:


此时,该怎么办呢?可以在启动脚本里修改下配置,使其脚本在后台运行:😘
1#改进脚本
2[root@devops jenkinsagent]#pwd
3/data/cicd/jenkins/jenkinsagent
4[root@devops jenkinsagent]#vim start.sh
5#!/bin/bash
6echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
7nohup java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins" >/dev/null &
8
9#我们再次启动脚本,然后刷新网页观察现象
10[root@devops jenkinsagent]#sh start.sh
11[root@devops jenkinsagent]#nohup: redirecting stderr to stdout
12
13[root@devops jenkinsagent]#
14[root@devops jenkinsagent]#ps -aux|grep java
151000 83669 1.6 24.0 3016260 447312 pts/0 Sl+ 16:41 2:26 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar /usr/share/jenkins/jenkins.war
16root 94013 14.8 6.4 3036264 120800 pts/2 Sl 19:04 0:08 java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir /opt/jenkins
17root 94183 0.0 0.0 112708 972 pts/2 S+ 19:05 0:00 grep --color=auto java


- 设置脚本开机启动:
1[root@devops ~]#chmod +x /etc/rc.d/rc.local
2[root@devops ~]#chmod +x /data/cicd/jenkins/jenkinsagent/start.sh
3[root@devops ~]#vim /etc/rc.d/rc.local
3、自定义agent通信端口
⚠️ 注意:这里默认使用50000端口即可!尽量使用指定端口,如果使用随机端口的话,后续区域网络申请放行网络权限时,不好做!

🍀 配置地方如下(保持默认即可):系统管理-安全/全局安全设置:


至此,jenkins master节点和agent节点已全部安装成功!😘
关于我
我的博客主旨:
- 排版美观,语言精炼;
- 文档即手册,步骤明细,拒绝埋坑,提供源码;
- 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!
🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

🍀 微信公众号 《云原生架构师实战》

🍀 语雀
https://www.yuque.com/xyy-onlyone

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

🍀 知乎 https://www.zhihu.com/people/foryouone

最后
好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!


