Jenkins集成GitLab和钉钉
一、安装Jenkins
1、下载镜像
docker pull jenkins
2、启动服务
[root@localhost ~]# docker run \
--name myjenkins \
-itd -p 9000:8080 \
-v /home/xyz/test/jenkins_home:/var/jenkins_home \
-v /usr/local/sonar-scanner-4.0.0.1744-linux:/usr/local/sonar-scanner-4.0.0.1744-linux \
--env JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
jenkins/jenkins:latest
3、安装激活码
- 用命令查看安装日志,然后找到激活码
[root@localhost ~]# docker logs -f myjenkins
- 查看进程
[root@localhost ~]# ps aux | grep jenkins
4、时区设置

#设置时区
JENKINS_JAVA_OPTIONS="-Duser.timezone=Asia/Shanghai"
#启动docker时设置时区环境变量
docker run --name myjenkins -itd -p 9000:8080 -v /home/xyz/test/jenkins_home:/var/jenkins_home --env JAVA_OPTS="-Duser.timezone=Asia/Shanghai" jenkins/jenkins:latest
二、快速启动Jenkins
1、编写启动jenkins的shell脚本
#!/bin/bash
docker rm -f myjenkins
docker run --name myjenkins -itd -p 9000:8080 -v /home/xyz/test/jenkins_home:/var/jenkins_home --env JAVA_OPTS="-Xmx8192m" jenkins/jenkins:latest
注意:删除myjenkins后,需要对/home/xyz/test/jenkins_home重新赋权限
sudo chown -R 1000 /home/xyz/test/jenkins_home/
2、启动脚本
bash jenkins.sh
三、插件管理
1、加速镜像地址
地址:https://mirrors.tuna.tsinghua.edu.cn/
搜索Jenkins,找到并点击,进入后选中update,然后找到update-center,最后将链接地址复制到Jenkins中




安装完毕后更新插件将会更快,地址如下:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
2、安装插件

3、手动上传插件
手动下载.hpi文件,然后系统管理--->插件管理--->高级--->上传插件即可。
4、导入已安装插件
注意插件和Jenkins版本需要一致,否则容易导致jenkins不稳定。
[root@localhost ~]# wget plugins.tar.gz
[root@localhost ~]# mv plugins/* /var/lib/jenkins/plugins/
[root@localhost ~]# chown -R jenkins.jenkins
[root@localhost ~]# systemctl restart jenkins
5、自动安装插件的方法
Jenkins 的 Docker 镜像的代码仓库里的 install-plugins.sh 脚本已经实现自动化安装,具体步骤如下:
Jenkins 官方 Docker 镜像中的自动化插件安装脚本:https://github.com/jenkinsci/docker/blob/master/install-plugins.sh
- 将代码 clone 到 JENKINS_HOME 目录中:
[root@localhost ~]# cd $JENKINS_HOME
[root@localhost ~]#git clone https://github.com/zacker330/jenkins-install-plugins-shell.git
[root@localhost ~]#cd jenkins-install-plugins-shell
-
在 plugins.txt 中添加要下载安装的插件名称
Jenkins 插件有两个名称。一个叫 display name,一个叫 short name。搜索地址:https://plugins.jenkins.io/
在 jenkins-install-plugins-shell 目录中,有一个 plugins.txt 文件,在文件中写入希望安装的插件及版本号。例如:
ansible:2.0
git:4.1.1

- 执行安装
# Jenkins War 的路径,用于分析
[root@localhost ~]#export JENKINS_WAR_PATH=<Jenkins war文件的路径>
[root@localhost ~]#chmod +x install-plugins.sh jenkins-support
[root@localhost ~]#./install-plugins.sh < plugins.txt
-
重启 Jenkins
install-plugins 本质上做的事情就只是将插件从云端下载到 JENKINS_HOME 下的 plugins 目录中。要使安装的插件生效,还需要重启 Jenkins。
四、构建项目
1、构建自由风格的项目
注意配置好,丢弃构建和参数化构建等参数


查看构建结果:


查看docker中部署的jenkins构建的项目文件:
#查找文件路径
[root@localhost ~]# find ./ -name "xyz_test"
./var/jenkins_home/workspace/
[root@localhost ~]# docker exec -it myjenkins bash
jenkins@da424e88990e:/$ ls ./var/jenkins_home/workspace/
xyz_test
jenkins@da424e88990e:/$
五、Jenkins集成GitLab
1、安装插件

2、关联Jenkins公钥至GitLab
- Jenkins服务器执行命名,生成公钥
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in y.
Your public key has been saved in y.pub.
The key fingerprint is:
SHA256:fKbEeDMHsO7wpL3YdOcN4thWYaYDFpa4zXTwvdpXjIw root@localhost.localdomain
The key's randomart image is:
- 将生成的公钥拷贝到GitLab中
[root@localhost ~]# cat y.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBLI5ebFfw0vlVNBUcy+CC0wdKwvYxEVvhQKhEKebie7/Lw3b5D/tH6ch02U2UFBLu0gZ83tQ3DUeOAB2J1J7zPA/DKuj2CfASSDQZ9sb8TmPXLKunAqrU/JNjljd

3、创建自由风格的项目
- 创建一个自由风格的任务

4、Jenkins任务中配置Jenkins私钥

- 配置Git仓库和私钥

在jenkins服务器上,查看生成的私钥,然后将其复制并粘贴到下图位置:

5、代码仓库域名解析
- 若jenkins服务器直接部署在linux系统中,当代码仓库无法连接,域名解析错误,在jenkins服务器上添加解析地址
[root@localhost ~]# echo "192.168.31.4 gitlab.xtank.com" >> /etc/hosts
- 若jenkins安装在docker容器中,此时无法直接修改/etc/hosts文件,但是可以在启动docker jenkins镜像时加上域名映射即可
[root@localhost ~]# docker run \
--add-host=gitlab.xtank.com:192.168.31.4 \
--name myjenkins \
-itd -p 9000:8080 \
-v /home/xyz/test/jenkins_home:/var/jenkins_home \
--env JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
jenkins/jenkins:latest
6、构建任务

进入docker宿主机,可以看到jenkins挂载目录中已经将克隆的代码挂载到了本地
[root@localhost ~]# cd /home/xyz/test/jenkins_home/workspace/
[root@localhost workspace]# ls
freestyle_mycode freestyle_mycode@tmp freestyle_myshell xyz_test
[root@localhost workspace]# cat freestyle_mycode
cat: freestyle_mycode: 是一个目录
[root@localhost workspace]# cat freestyle_mycode/README.md
这是一个开发项目
进入dockers容器中查看,发现代码已经克隆到容器中
[root@localhost ~]# docker exec -it myjenkins bash
jenkins@3f7698d57a9f:/$ cd /var/jenkins_home/workspace/freestyle_mycode
jenkins@3f7698d57a9f:~/workspace/freestyle_mycode$ ls
README.md a.py
jenkins@3f7698d57a9f:~/workspace/freestyle_mycode$ cat README.md
这是一个开发项目
六、Jenkins集成钉钉
1、配置钉钉消息机器人
- 打开钉钉群组,点击群组机器人(需要具有管理权限)。




-
配置钉钉机器人
首先,点击新创建的群,然后点击添加机器人
添加自定义机器人

注意此处的配置安全策略要和jenkins中的配置一致

添加完成时,钉钉会生成一个webhook地址,请保存好,后续jenkins中需要它

2、在jenkins上安装钉钉插件
- 在jenkins中直接搜索dingding插件,并进行安装

- 下载好钉钉插件,直接上传至jenkins
下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/dingding-notifications/
下载到本地后,在jenkins插件管理中直接上传即可

3、在jenkins任务中配置钉钉
- 在 系统管理 > 系统设置 > 钉钉配置 中添加机器人

- 在项目配置页面中勾选机器人,配置通知人,保存

- 构建任务,测试钉钉,成功


浙公网安备 33010602011771号