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

目录
[toc]
实验环境
win10笔记本
1台虚机 centos7.9 vmworkstation
jenkins/jenkins:2.332.2-centos7-jdk8
docker 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)下载jdk软件
[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

(2)配置jdk环境
[root@devops ~]#tar zxf OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz -C /usr/local/
[root@devops ~]#cd /usr/local/jdk8u322-b06/
[root@devops jdk8u322-b06]#pwd
/usr/local/jdk8u322-b06
[root@devops jdk8u322-b06]#vim /etc/profile
export JAVA_HOME=/usr/local/jdk8u322-b06
export PATH=$JAVA_HOME/bin:$PATH
[root@devops jdk8u322-b06]#source /etc/profile
(3)验证
[root@devops jdk8u322-b06]#java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
OpenJDK 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即可:


docker pull jenkins/jenkins:2.332.2-centos7-jdk8🍀 完整安装过程如下:
#先在本地宿主机创建/data/cicd/jenkins目录并赋予权限
mkdir -p /data/cicd/jenkins
chmod +x /data/cicd/jenkins
(1)拉取镜像
[root@devops harbor]#docker pull jenkins/jenkins:2.332.2-centos7-jdk8
(2)创建jenkins工作目录
[root@devops harbor]#mkdir -p /data/cicd/jenkins
[root@devops harbor]#chmod 777 -R /data/cicd/jenkins
(3)启动jenkins
docker run -itd --name jenkins --restart=always \
-p 8080:8080 \
-p 50000:50000 \
--privileged=true \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
-v /data/cicd/jenkins:/var/jenkins_home jenkins/jenkins:2.332.2-centos7-jdk8
#说明:
8080 Jenkins web端访问端口
50000 Jenkins与Agent建立连接所需要的端口
JAVA_OPTS环境变量为修改时间配置,否则可能jenkins的时间显示有问题!
(4)验证
#查看jenkins容器运行状态
[root@devops ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
dc6fa067248a 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
#查看jenkins容器log
[root@devops ~]#docker logs jenkins

2、访问web界面并输入密码

🍀 可通过如下2种方式来获取密码:
(1)查看docker里的日志文件
[root@devops ~]#docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
cb910c09e8964c459ba6dcc7eff4f4cd
(2)查看jenkins容器日志
[root@devops ~]#docker logs jenkins
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
cb910c09e8964c459ba6dcc7eff4f4cd
This 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包:
[root@devops ~]#mkdir -p /data/cicd/jenkins/jenkinsagent
[root@devops ~]#cd /data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#wget http://172.29.9.101:8080/jnlpJars/agent.jar
--2022-04-14 18:40:15-- http://172.29.9.101:8080/jnlpJars/agent.jar
Connecting to 172.29.9.101:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1524115 (1.5M) [application/java-archive]
Saving to: ‘agent.jar’
100%[=====================================================================================================================================>] 1,524,115 --.-K/s in 0.07s
2022-04-14 18:40:15 (22.2 MB/s) - ‘agent.jar’ saved [1524115/1524115]
[root@devops jenkinsagent]#ll -h agent.jar
-rw-r--r-- 1 root root 1.5M Apr 14 16:09 agent.jar编写启动脚本:
[root@devops jenkinsagent]#pwd
/data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#vim start.sh #将刚才网页出现的第二种方式的代码拷贝进去
#!/bin/bash
echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins"启动脚本并查看:
[root@devops jdk8u322-b06]#cd /data/cicd/jenkins/jenkinsagent/
[root@devops jenkinsagent]#ls
agent.jar secret-file start.sh
[root@devops jenkinsagent]#sh start.sh
此时刷新下web页面,我么可以看到bulid01 agent节点状态正常了:

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


此时,该怎么办呢?可以在启动脚本里修改下配置,使其脚本在后台运行:😘
#改进脚本
[root@devops jenkinsagent]#pwd
/data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#vim start.sh
#!/bin/bash
echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
nohup java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins" >/dev/null &
#我们再次启动脚本,然后刷新网页观察现象
[root@devops jenkinsagent]#sh start.sh
[root@devops jenkinsagent]#nohup: redirecting stderr to stdout
[root@devops jenkinsagent]#
[root@devops jenkinsagent]#ps -aux|grep java
1000 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
root 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
root 94183 0.0 0.0 112708 972 pts/2 S+ 19:05 0:00 grep --color=auto java

- 设置脚本开机启动:
[root@devops ~]#chmod +x /etc/rc.d/rc.local
[root@devops ~]#chmod +x /data/cicd/jenkins/jenkinsagent/start.sh
[root@devops ~]#vim /etc/rc.d/rc.local3、自定义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

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