持续集成与持续交付—jenkins持续集成

1.jenkins的简介

Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 知足任何项目的须要。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码以后,马上进行构建、(单元)测试。
在这里插入图片描述
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
在这里插入图片描述linux

2.jenkins的安装

【实验环境】:
主机server1:192.168.43.10 gitlab开启
主机server3:192.168.43.12用来安装jenkinsgit

安装jenkins须要准备jdk和jenkins的rpm包。
软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/github

安装jenkins:web

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须要安装一些插件,若是用他自带的插件源,下载会很慢,容易卡住。因此咱们须要更新插件源:
首先咱们须要保证虚拟机可以上网:
在这里插入图片描述docker

vim /var/lib/jenkins/hudson.model.UpdateCenter.xml ##再编辑这个更新中心

在这里插入图片描述
浏览器中咱们要使用初始密码登录:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述shell

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替换掉

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装插件,使用默认推荐的就好。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述json

3.jenkins的使用

新建一个自由风格的任务:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加访问git的私钥:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
定义轮询间隔,有更新时触发jenkins构建
在这里插入图片描述
构建选择执行shell命令
在这里插入图片描述
在这里插入图片描述
git提交代码到gitlab上,jenkins轮询检测到代码仓库的变动,触发构建。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用容器化来构建
首先须要在server3上面安装docker容器
在这里插入图片描述vim

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命令:bash

chmod 777 /var/run/docker.sock

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
咱们来建立一个docker任务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

visudo  ##编辑这个

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述