jenkins持续集成简介、搭建与使用
一、jenkins简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
这里下载的版本是jenkins-2.237-1.1.noarch.rpm
安装jenkins还需要依赖包:jdk-8u121-linux-x64.rpm
二、jenkins的搭建
安装jenkins:
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@server2 ~]# rpm -ivh jenkins-2.237-1.1.noarch.rpm
[root@server2 ~]# systemctl start jenkins
启动后可以看到配置数据已经出来了:
[root@server2 ~]# cd /var/lib/jenkins/
[root@server2 jenkins]# ls
config.xml jobs secret.key.not-so-secret
failed-boot-attempts.txt logs secrets
hudson.model.UpdateCenter.xml nodeMonitors.xml userContent
identity.key.enc nodes users
jenkins.install.UpgradeWizard.state plugins
jenkins.telemetry.Correlator.xml secret.key
在浏览器输入:172.25.63.2:8080
访问jenkins:
提示输入密码,这个密码保存在/var/lib/jenkins/secrets/initialAdminPassword
文件中:
[root@server2 jenkins]# cat /var/lib/jenkins/secrets/initialAdminPassword
d50c7a5fd6e24fc988a556248d464d66
我们先不急着输密码,由于jenkins的插件源都指向外网,因此我们需要更改:
[root@server2 jenkins]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
[root@server2 jenkins]# cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
[root@server2 updates]# pwd
/var/lib/jenkins/updates
[root@server2 updates]# sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@server2 updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
[root@server2 updates]# systemctl restart jenkins
更改后复制密码登陆:
选择安装推荐的插件,等待安装完成:
之后选择使用admin继续 --开始
jenkins已经搭建完成。
三、jenkins的使用
创建一个新项目:
在server2安装git:
[root@server2 updates]# yum install git -y
添加凭据:
添加每分钟轮询:
构建中选择shell:
之后进行保存。
查看控制台输出:
这样一个项目就搭建完成,但是这样也会有缺点,我们设置的每分钟触发更新可能会不太及时或者做无用功。因此我们可以配合gitlab实现gitlab的触发。