引言
-
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
-
持续集成 (Continuous integration,简称CI)
-
持续交付(Continuous delivery)
-
持续部署(continuous deployment)
-
参考 http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
Jenkins介绍
- 官网 https://jenkins.io
- Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
- Jenkins是一个工具集,提供了各种各样的插件
比如获取git上最新的代码
比如可以帮你编译源代码
比如可以调用自定义的shell脚本远程执行命令 - 官方文档 https://jenkins.io/doc/
Jenkins安装
- 最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8
- 安装jdk1.8
yum install -y java-1.8.0-openjdk - 安装yum源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo - key安装
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key - 安装
yum install -y jenkins
systemctl start jenkins - less /var/log/jenkins/jenkins.log //查询admin密码
- 访问 http://ip:8080/ 进行安装
<root@linux0 ~>$ wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
--2020-01-10 10:07:27-- https://pkg.jenkins.io/redhat/jenkins.repo
正在解析主机 pkg.jenkins.io (pkg.jenkins.io)... 52.202.51.185
正在连接 pkg.jenkins.io (pkg.jenkins.io)|52.202.51.185|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:71
正在保存至: “/etc/yum.repos.d/jenkins.repo”
100%[================================================================>] 71 --.-K/s 用时 0s
2020-01-10 10:07:29 (17.3 MB/s) - 已保存 “/etc/yum.repos.d/jenkins.repo” [71/71])
<root@linux0 ~>$ rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
<root@linux0 ~>$ yum install -y jenkins
已安装:
jenkins.noarch 0:2.213-1.1
完毕!
<root@linux0 ~>$ systemctl start jenkins
<root@linux0 ~>$ ps aux |grep jenkins
jenkins 8559 82.5 10.2 2323624 102068 ? Ssl 10:16 0:09 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -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 8606 0.0 0.0 112728 976 pts/2 R+ 10:16 0:00 grep --color=auto jenkins
<root@linux0 ~>$ netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::8080 :::* LISTEN 8559/java
Jenkins相关目录
<root@linux0 ~>$ rpm -ql 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
Jenkins web界面使用和发布代码试验
-
初始登陆需要从服务器上复制密码
-
接着安装插件,使用推荐
-
推荐插件如下
-
部分安装不成功,可之后再处理,接着下一步
-
如下创建管理员用户
-
登陆Jenkins的URL设置
-
主界面如下
-
进入管理,显示之前插件安装的相关问题
-
查看是否有git插件
-
再安装pubulish over ssh插件
-
进入系统配置
-
设置jenkins使用的私钥,以此私钥登陆其他服务器
-
待管理的服务器配置(需要把Jenkins使用私钥对应的公钥放置在此机器上
-
回到主界面,创建任务
-
设置任务名称,哪种类型的任务,自由项目
-
从git上获取源码
-
构建触发器和构建环境留空
-
构建 - 主要设置
此任务对哪些服务器进行设置,把内容放到哪里
**/**
代表全部git的内容
设置目标路径,内容将下载到路径下
另可设置一条命令,复制内容后实施
-
回到主界面,点击build now
-
点击#1查看第一次实施结果
-
服务器上查看更新的内容(目录不存在会新建)
在git改动内容后,再次build,会把内容更新到服务器里