本文主要记录Jenkins的部署,以Purge
Job History为例的插件的安装,同时讲解了gitlab、Jenkins和rancher自动发布环境的关键调用过程。
【正文】
2.164 (2019-02) and newer:
Java 8 or Java 11
2.54 (2017-04) and newer: Java
8
1.612 (2015-05) and newer:
Java 7
sudo wget -O
/etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import
https://pkg.jenkins.io/redhat/jenkins.io.key yum install jenkins |
如果按照旧的文档安装公钥,在装jenkins时会报错(见下图),提示公钥尚未安装。需要到https://pkg.jenkins.io/redhat/查到最新的命令。(Jenkins用于签名软件包的gpg
jenkins配置文件位于/etc/sysconfig/jenkins;如要修改默认端口8080为其他端口、默认数据目录从/var/lib/jenkins到其他目录。jenkins后期item多了之后,数据目录下的JOB和Workspace会占用较大的磁盘空间。
systemctl start Jenkins |
如启动失败,可能是Java路径问题:
两种解决方法:
(1)
ln -s /usr/local/jdk1.8.0_231/bin/java
/usr/bin/java |
(2)
vim /etc/init.d/Jenkins systemctl daemon-reload |
以上两种办法操作后再启动Jenkins
firewall-cmd --add-port=8080/tcp –permanent firewall-cmd --add-port=8080/tcp |
浏览器输入http://内网地址:8080
根据提示找到/var/lib/jenkins/secrets/initialAdminPassword密码
可跳过插件安装,或者配置代理
选择推荐则直接进入安装状态,如果不清楚安装什么插件可以选择左边,含有了日常环境的功能,如拉取git、邮件通知、删除旧工作区等等,后面漏的插件再补即可:
可选择初始admin,也可以另外创建。
该url将会被插件调用,以供提供如何访问jenkins信息。如邮件通知会发送jenkins构建历史的url。
点击左侧的“manage Jenkins”——“manage
plugins”——“可用/available”选项页——右侧搜索栏输入Purge Job History。勾选上之后点击“install without restart”进入安装。根据安装提示看是否需要重启jenkins,有的插件依赖可能需要重启,选择没有构建操作的窗口期重启,重启后按照前面的步骤再操作一遍;选择“Download now and install after retart ”也是可选的操作,在明确插件不需要重启的情况下就不需要使用。
根据需求使用什么插件可以用搜索引擎查找或者浏览插件平台https://plugins.jenkins.io/。
Purge Job
History插件可以用于清理Job构建历史记录。对于未配置自动删除旧job导致磁盘占用高的场景下非常适合清理空间。
代码存放处:gitlab
打包发布平台:jenkins
容器镜像仓库:harbor
业务运行平台:rancher、服务器
代码推送到分支时,触发gitlab的集成钩子,调用了jenkins的API,触发jenkins打包;jenkins打包后到一定步骤,如构建完镜像,通过shell调用rancher的API、或者ssh发送更新文件到服务器上、执行脚本发布应用。
jenkins上的触发钩子可以在配置中启用,并且在高级中生成秘钥和筛选分支名称:
gitlab对应的项目里“设置”——“集成”,填入上一步的URL和token——“增加web钩子”;可以在jenkins处把分支筛选去掉,在gitlab点击刚刚添加的钩子的“测试”看看钩子是否可以调用。
rancher上点击服务的“API查看”
复制-upgrade下的内容到另外一个地方保存,例如文本编辑器;
点击右侧的“upgrade”,把"inServiceStrategy"、"toServiceStrategy"的值(从大括号开始)复制进去
点击“show request”显示结果且没有JSON报错提示即成功:
复制出curl命令部分可以用于脚本触发,需要替换掉-u后面的AccessKey部分;还能把一部分参数简化删除(例如只保留自定义值的参数),测试是否调用成功,最终在jenkins上配置“execute shell”。完成升级部分可在rancher容器升级后点击API查看“Finishupgrade”接口URL