持续集成与持续交付—jenkins持续集成
1.jenkins的简介Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。CD(Continuous D
1.jenkins的简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
2.jenkins的安装
【实验环境】:
主机server1:192.168.43.10 gitlab开启
主机server3:192.168.43.12用来安装jenkins
安装jenkins需要准备jdk和jenkins的rpm包。
软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
安装jenkins:
rpm -ivh jdk-8u181-linux-x64.rpm ##先安装jdk
rpm -ivh jenkins-2.225-1.1.noarch.rpm ##安装jenkins
systemctl start jenkins ##打开jenkins服务
浏览器访问一下:http://192.168.43.12:8080
安装jenkins需要安装一些插件,如果用他自带的插件源,下载会很慢,容易卡住。所以我们需要更新插件源:
首先我们需要保证虚拟机能够上网:
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml ##再编辑这个更新中心
浏览器中我们要使用初始密码登陆:
cd /var/lib/jenkins/updates ##进入到这个目录中
ls ##查看一下里面的文件
sed -i.bak 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json ##将default.json文件中默认的下载地址用清华下载站给替换掉
sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json ##将default.json文件中的谷歌浏览器访问用baidu.com替换掉
安装插件,使用默认推荐的就好。
3.jenkins的使用
新建一个自由风格的任务:
添加访问git的私钥:
定义轮询间隔,有更新时触发jenkins构建
构建选择执行shell命令
git提交代码到gitlab上,jenkins轮询检测到代码仓库的变更,触发构建。
用容器化来构建
首先需要在server3上面安装docker容器
systemctl start docker ##再开启docker
docker info ##查看容器信息
cd /etc/sysctl.d
vim bridge.conf
sysctl --system ##使刚才的设置生效一下
我们在server1的demo工作目录下上创建一个Dockerfile文件:
这时由于git向gitlab推送了新的内容,jenkins轮询检测到代码仓库的变更,触发构建。
上面能看到Dokcerfille文件已经在server3的/var/lib/jenkins/workspace/demo/目录下了。现在我们还需要让jenkins自动构建docker镜像。
因为上面叫输入docker仓库,所以这里我们先来搭建一个docker的私有仓库。
docker pull registry ##首先在github上拉取一个私有仓库
dcoker images ##查看一下docker的镜像
docker run -d --name registry -p 5000:5000 registry ##运行registry容器,-d是打入后台,-p 是做一个端口映射
netstat -nplt ##查看一下端口
docker ps ##查看一下正在运行的容器
上面docker私有仓库就搭建好了,这时我们可以向里面上传镜像。
这时需要修改docker.sock权限,不然jenkins无法直接执行docker命令:
chmod 777 /var/run/docker.sock
我们来创建一个docker任务。
visudo ##编辑这个
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)