jenkins部署及gitlab联调
一、jenkins安装
1.环境优化
| 防火墙开通访问端口 |
| centos8查看防火墙开放的端口 |
| firewall-cmd --zone=public --list-ports |
| 开通5432端口 |
| firewall-cmd --zone=public --add-port=5432/tcp --permanent |
| firewall-cmd --zone=public --add-port=8080/tcp --permanent |
| firewall-cmd --zone=public --add-port=22/tcp --permanent |
| firewall-cmd --reload 重启生效 |
2.安装jdk java 环境
| 查找原始jdk包 |
| |
| rpm -qa "*jdk*" |
| 移除低版本jdk |
| rpm -e java-1.8.0-openjdk-headless-1.8.0.362.b08-3.el8.x86_64 |
| yum remove |
| 安装支持的版本 |
| yum -y install java-11-openjdk-devel |
| |
3.下载jenkins
| [root@localhost init.d] |
| [jenkins] |
| name=Jenkins-stable |
| baseurl=http://pkg.jenkins.io/redhat-stable |
| gpgcheck=1 |
| |
| yum install -y jenkins |
| 或者直接下载rpm包 |
| wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.375.1-1.1.noarch.rpm |
| rpm -ivh jenkins-2.375.1-1.1.noarch.rpm |
4.启动Jenkins服务
| [root@jenkins download] |
| Starting jenkins (via systemctl): [ OK ] |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| jenkins 5627 1 0 20:18 ? 00:00:00 /etc/alternatives/java -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 |
| root 5647 5501 0 20:20 pts/0 00:00:00 grep --color=auto jenkins |
| [root@jenkins download] |
| [root@jenkins ~] |
| tcp6 0 0 :::8080 :::* LISTEN 6106/java |
| [root@jenkins ~] |

5.上个步骤执行成功后,会弹出下面的对话框,我们点击关闭即可

6.Jenkins的目录介绍
| [root@jenkins ~] |
| /etc/init.d/jenkins |
| /etc/logrotate.d/jenkins |
| /etc/sysconfig/jenkins |
| /usr/lib/jenkins |
| /usr/lib/jenkins/jenkins.war |
| /usr/sbin/rcjenkins |
| /var/cache/jenkins |
| /var/lib/jenkins |
| /var/log/jenkins |
| [root@jenkins ~] |
| 修改Jenkins密码(我们在安装Jenkins的时候就发现Jenkins存放初始密码存放位置是:/var/lib/jenkins/secrets/initialAdminPassword) |
7.修改Jenkins密码
(我们在安装Jenkins的时候就发现Jenkins存放初始密码存放位置是:/var/lib/jenkins/secrets/initialAdminPassword)

设置

修改密码

点击注销

使用新密码登录Jenkins

二、Jenkins插件安装实战篇
1.点击系统管理

2>.点击管理插件

3.在服务器端安装我们常用的插件
| [root@jenkins download] |
| total 160580 |
| -rw-r--r-- 1 root root 164431230 Sep 3 06:02 jenkins-plugins.tar.gz |
| [root@jenkins download] |
| [root@jenkins download] |
| total 0 |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| total 160592 |
| -rw-r--r-- 1 root root 164431230 Sep 3 06:02 jenkins-plugins.tar.gz |
| drwxr-xr-x 97 jenkins jenkins 8192 Dec 8 2017 plugins |
| [root@jenkins download] |
| [root@jenkins download] |
| 191 |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| [root@jenkins download] |
| 191 |
| [root@jenkins download] |
| [root@jenkins download] |
| Restarting jenkins (via systemctl): [ OK ] |
| [root@jenkins download] |
| |
三、Jenkins自动发布代码集成gitlab
| 配置GitLab Push 自动触发Jenkins构建 |
| 参考链接:https://www.cnblogs.com/yinzhengjie/p/9613270.html |
1.Jenkins服务器配置秘钥对并上传到Gitlab中
在Jenkins后端生成秘钥对
| [root@jenkins ~] |
| [root@jenkins ~] |
| Generating public/private rsa key pair. |
| Created directory '/root/.ssh'. |
| Your identification has been saved in /root/.ssh/id_rsa. |
| Your public key has been saved in /root/.ssh/id_rsa.pub. |
| The key fingerprint is: |
| e1:75:1f:cf:18:02:5e:b7:16:99:14:75:56:73:ac:ad root@jenkins.yinzhengjie.org.cn |
| The key's randomart image is: |
| +--[ RSA 2048]----+ |
| | . ..=BB| |
| | . o .o+=| |
| | . o o =o | |
| | . o . +.*.| |
| | S o.o| |
| | E | |
| | | |
| | | |
| | | |
| +-----------------+ |
| [root@jenkins ~]# |
| |
| |
查看服务端的公钥和私钥
| [root@jenkins ~] |
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwr6GMG0OYSWyLcraC4FGquTm9C+26a2/SdTysXOTiC6GpqYE9L57NgCSJSYWFalj+s/O6+LqHLY/ORi+LMmh4DtYSD4rUYo5NRd68B3lVs2JU8FqfCK/bJR+Sy/SxDAtKfrP/8gPM+4saB9JXUaljavhwIsyqMJxLkbwmDsdYmf4MHjMoHA4k8qECYKfvL7mep3Cglh0U4dQTubVvjmN/f6oKX7l7yVe+DoSImPyYae16+8AOe0v8+hiL5zB8eBBuCJZfXT/ZQbp5pAWxNCiiHsLI9VQhjsmsLS+bpgEvnCDqbVuXhrYXaLrQDm2EG2YwU1YSES6gJrvs5OkMbwXr root@jenkins.yinzhengjie.org.cn |
| [root@jenkins ~] |
| [root@jenkins ~] |
| [root@jenkins ~] |
| -----BEGIN RSA PRIVATE KEY----- |
| MIIEpAIBAAKCAQEAsK+hjBtDmElsi3K2guBRqrk5vQvtumtv0nU8rFzk4guhqamB |
| PS+ezYAkiUmFhWpY/rPzuvi6hy2PzkYvizJoeA7WEg+K1GKOTUXevAd5VbNiVPBa |
| nwiv2yUfksv0sQwLSn6z//IDzPuLGgfSV1GpY2r4cCLMqjCcS5G8Jg7HWJn+DB4z |
| KBwOJPKhAmCn7y+5nqdwoJYdFOHUE7m1b45jf3+qCl+5e8lXvg6EiJj8mGntevvA |
| DntL/PoYi+cwfHgQbgiWX10/2UG6eaQFsTQooh7CyPVUIY7JrC0vm6YBL5wg6m1b |
| l4a2F2i60A5thBtmMFNWEhEuoCa77OTpDG8F6wIDAQABAoIBACTUZ2tKH5v16i9j |
| ORIs6jkZJST4AJT0YjnPgFc5gehwnkE8eRkk/Qg/Jt6LOc7mrShioHKf+FnHMIvB |
| 65Ura8Vi6lKXdMvyw1DuOJCfSjaIDv4/n9Q4vleC9ILoCtiA9zWPFbxLWWl4IbXK |
| XZkgB5wWpzTQvDLZsSq7dSnFuN4J2pjR63SJkZCJRgy5g4qpNTH6jzo2D4Q3X/lF |
| toN6n95He/2yAKRs1eJsvJWn33gnNQbMvKMbtialqQGy476XZomnBjlE2LKj4Kyz |
| SrIzoJRi1Qq/34vNdDT+ycIvYZmZUo4aOG9QiwykcuxAhbbrrMjtYfMGPpm6KHLA |
| GbyPQ7kCgYEA5NM9LqY993ie0EjKsIVjptAxHSzh6/BmqFPxXyDpsoZxARR3SCiG |
| c8sEsFH0zRfF+TS8dza5LVN6tnh+xZcatofbrs+ZIou0oV2+nU46ZO7xBR5ha9rh |
| mzyEJnypCEdckPMR/Fh9hbl0KEGxK5b6ZZqfcaC4Vr1LLdlASKB2JbUCgYEAxatB |
| S78IYbQ9Dfv86ok1j4hv+C0gJ7rnqz2Mj+1wZtKUGUgZdXVqFm27nDZobEr6BXCL |
| 8IbMFZXhgm6iM6llRopN0Dm2jDZ42oIe39KjXF7EsrYpDJ41ZgJQxv1sU4gdwOMV |
| w3lChmCzYtBDP2z2W1Qq6Ln6Ra5pDbG83czHwR8CgYB3Mp6tXUXsUrYP88s59tI5 |
| RDxBYW7yc9FWIBwdHM0ABU56bInSWeHoEbqIirjF2Xt0XIdMZoJB3TmQMeZ/0T3G |
| FbFXN6ciurnGUUoJMYXzrBB7RR8kiul47yY70jZPLLVIgIY++G2yqi+bBNVgyo33 |
| PXuPOlSsQoEWChSVgJjq/QKBgQCA1zBXS+wNqyqEm/Ptd4O2y6qX6+nim5v3bMXa |
| 5lv2WVl45RrbCa4dcmbv2jLUK0auFv7Pxzzs8OWtW6lT3R0LDojLqWKIH9VEL74q |
| C6S5R3gUOFGnTNPnaqj2Gybph3ZFTH7aC4bGCe/C/5ZlmAM34jOZv+cWVilZaLl/ |
| JMQq5wKBgQC41olS3GTRuPdNoZCI9rWaR30XafVv3EV7XmAnytNJGJv/VY00a1fk |
| fXWIUTG/AYQ932qBZQ/PL9eobtuvrZxRj7Xt8p6O6ERRk4mqRERHF+E6yEFdzKef |
| rXfkvpqaZ63aTLjeolEiVO/Vud6ZEcc6UkpBnajgN1e5vapXARL9pA== |
| -----END RSA PRIVATE KEY----- |
| [root@jenkins ~] |
| |
将Jenkins服务器端的公钥上传到GitLab中

2.Jenkins关联GitLab的WebUI界面配置
1>.创建新任务

2>.编辑任务名称

3>.源码管理选择git,并将git的地址填写为GitLab的地址

四、配置GitLab Push 自动触发Jenkins构建
Private token 自动构建

| 配置GitLab Push 自动触发Jenkins构建 |
| 参考链接 |
| https://www.cnblogs.com/yinzhengjie/p/9613270.html |
| 二.配置GitLab认证 |
| 2>.点击认证 |
| 3>.在GitLab中复制“Private token”的值 |
| 4>将GitLab的“Private token”的值复制到Jenkins的API token中。 |
| 5>.认证添加成功的界面 |
| 6>.进入系统设置界面 |
| 7>.测试连接(由于我们通过API认证的,所以必须得用http协议,测试成功后别忘记保存哟!) |
| 8>.如果上述配置成功,我们再次编辑我们之前的项目 |
| 9>.点击之前的项目 |
| 10>.点击构建触发器 |
| 11>.拷贝Jenkins生成的随机字符串(在完成第十三步后回来保存它!) |
| 12>.进入到GitLab中的“Integrations Settings” |
| 13>.添加GitLab的“System hook”(注意图中的URL和Token信息均来第11步骤) |
| 14>测试添加的webhook |
| 三.修改GitLab的数据,简称服务器端是否有文件生成 |
| |
| 1>.在GitLab的webUI界面中我们添加新的文件 |
| 2>.编辑文件内容并提交 |
| 3>.提交成功界面如下 |
| 4>.观察Jenkins是否持续有任务运行 |
| 5>.服务器端指定目录是否有文件生成 |
| 一.安装GitLab插件 |
| 在GitLab中复制“Private token”的值 |
一.安装GitLab插件
二.配置GitLab认证

在GitLab中复制“Private token”的值

将GitLab的“Private token”的值复制到Jenkins的API token中。

6>.进入系统设置界面

7>.测试连接(由于我们通过API认证的,所以必须得用http协议,测试成功后别忘记保存哟!)

8>.如果上述配置成功,我们再次编辑我们之前的项目


9>.点击之前的项目

10>.点击构建触发器

11>.拷贝Jenkins生成的随机字符串(在完成第十三步后回来保存它!)

12>.进入到GitLab中的对应的项目“Integrations Settings”

13>.添加GitLab的“System hook”(注意图中的URL和Token信息均来第11步骤)

14>测试添加的webhook

三.修改GitLab的数据,简称服务器端是否有文件生成
1>.在GitLab的webUI界面中我们添加新的文件

2>.编辑文件内容并提交

4>.观察Jenkins是否持续有任务运行

5>.服务器端指定目录是否有文件生成

五、Jenkins发邮件
https://www.cnblogs.com/yinzhengjie/p/9602029.html
一.配置并发执行任务数量
1>.点击系统管理

2>.点击系统设置

3>.修改执行者数量为:5
(如果是虚拟机建议将Jenkins的服务器内存设置较大,这个执行者数量调的越大它就会越消耗系统资源),别忘记点击保存按钮哟!

二.邮件配置
1>.点击系统管理

2>.点击系统设置

3>.配置系统管理员邮件地址

4>.设置邮箱服务器(继续往下拉)

5>.点击高级后,输入发送和接受的邮箱后需要测试邮件,如果测试邮件发送成功就说明OK!点击保存即可

六、jenkins集成freeipa
1.jenkins服务器安装ipa-cli
| 1.做hostname 修改为域名,ipaserver 服务器都做好解析 |
| 2.安装freeipa |
| yum install -y ipa-client |
| 3.可能有相关依赖包错误 |
| 下载指定安装包地址https://rpmfind.net/linux/rpm2html/search.php?query=iftop&submit=Search+...&system=&arch= |
| wget 包名 |
| 4.在下载下来的包目录本地安装 |
| yum localinstall 包名 |
| 5.安装 |
| ipa-client-install --unattended --mkhomedir --enable-dns-updates --principal admin@TEST.COM |
| 6.如果报错,按照提示安装操作 |
| ipa-client-install |
2.在jenkins页面配置

3.登录ipa用户,登录jenkins URL测试
七、Jenkins_node节点安装
1.准备环境
参考链接
| 准备环境 |
| master节点:192.168.247.130 (已安装Jenkins) |
| agent节点:192.168.247.131 |
| |
| 1.在master节点创建ssh key |
| ssh-keygen -t rsa |
| 一路回车 |
| 2.发送公钥到agent服务器,并输入agent服务器 密码 |
| ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.247.131 |
| 3.测试master节点免密登陆agent |
| ssh 192.168.247.131 |
| |
2.然后在Jenkins中配置凭据
Jenkins选择:系统管理→manage credentials

3.查看master私钥信息粘贴到配置中

保存凭据
4.在agent服务器上创建工作目录
| mkdir -p /data/workspaces |
5.在Jenkins中新建一个节点


6.查看一下

7.agent节点已经在线了

报错总结
1.gitlab与Jenkins联调
| stderr: No ECDSA host key is known for gitlabtest.test.com and you have requested strict checking. |
| Warning: Permanently added the ECDSA host key for IP address '154.213.2.253' to the list of known hosts. |
| 显示密钥不生效 |
| |

| 1. 生成证书 |
| 添加完以后依然会报错 |
| jenkins stderr: No ECDSA host key is known for gitee.com and you have requested strict checking. |
| 这是因为ssh连接陌生机器需要确认,将clone代码的机器上的known_hosts复制到运行jenkins服务账号的~/.ssh目录下即可 |
| 2.判断Jenkins是那个用户运行的 |
| |
| root@april:~ |
| jenkins 10106 0.1 25.4 2753696 498056 ? Ssl Aug14 7:31 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 |
| root 22337 0.0 0.0 14436 1100 pts/1 S+ 10:08 0:00 grep --color=auto jenkins |
| root@april:~ |
| jenkins:x:112:121:Jenkins,,,:/var/lib/jenkins:/bin/bash |
| root@april:~ |
| 以上命令可以看到运行jenkins服务的账号为jenkins,其home为/var/lib/jenkins |
| |
| 切换到Jenkins用户下,生成密钥 |
| su -s /bin/bash jenkins |
| ssh-keygen -t rsa |
| cd |
| cat .ssh/id_rsa.pub |
| cat .ssh/id_rsa |
| 按照提示生成这个文件即可 |
| known_hosts |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具