1. jenkins简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
CI(Continuous integration持续集成)持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
CD(Continuous Delivery持续交付) 是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
2. 安装jenkins
软件下载:https://jenkins.io/zh/download/
国内镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
安装jenkins 以及jdk 并且开启服务
查看端口,使用的是8080端口
网页访问172.25.10.5:8080
查看初始密码
使用初始密码登陆,选择插件安装
先不安装插件,以后需要使用什么再安装什么,选择无
使用默认账号登陆
修改密码和时区
重新登陆账号
3 . 开始安装插件
创建目录,下载jenkins需要的证书
通过命令测试哪个源的下载速度最快
curl -sSL https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/speed-test.sh | bash 测试速度
下载证书:
mkdir /var/lib/jenkins/update-center-rootCAs
wget https://cdn.jsdelivr.net/gh/lework/jenkins-update-center/rootCA/update-center.crt -O /var/lib/jenkins/update-center-rootCAs/update-center.crt
chown jenkins.jenkins -R /var/lib/jenkins/update-center-rootCAs
选择dashboard,manage,plugins
选择advanes,修改下载插件的源地址为速度最快的地址,我清华源较快
相当于修改了这个文件
各个源对应的地址如下:
安装一个中文插件
成功
安装流水线插件
安装完成
4 . 结合gitlab创建项目
(1)轮询方式监控gitlab
新建一个自由风格任务:
为项目配置gitlab私有仓库,安装gitlab插件
本机安装git
生成一个密钥
查看公钥
把公钥给gitlab,使jenkins可以调用gitlab
配置demo,添加私有仓库地址
无法连接,需要提交凭据
查看私钥
添加即可
查看gitlab的分支
指定分支
选择触发器的类型为轮询,* * * * * 表示每分钟查看一次gitlab的代码变化
构建一个简单的shell命令查看
一分钟后查看控制台输出
进入/var/lib/jenkins/workspace目录,在这里面也可以同步gitlab的文件
在gitlab主机上新建文件,并且上传
jenkins上已经同步
成功
(2)实时监控gitlab
在gitlab中允许外发请求
进入jenkins,更换触发器类型,有变动就重新拉取,可以看到URL,复制下来等会用
点击高级,在下面点击Genreate,生成的token需要保存下来,等会用
demo项目,设置webhooks,填写jenkins地址和令牌。
开始测试:
在gitlab端:
jenkins端同步:
5 . 结合dockfile自动构建镜像并上传到本地仓库registry
在gitlab端编写上传文件
jenkins端已经同步了文件
安装docker-ce并开启
修改内核参数并且重载
上传镜像myapp
jenkins端安装docker插件
上传registry本地仓库镜像,后台启动,开启的是5000端口
给权限,使得jenkins能用套接字使用docker
配置项目demo,使用docker bulid,设定上传镜像的名字和标签(构建版本号),使用docker套接字,设定仓库地址
在高级里面,关闭强制拉取,保存配置
查看控制台正常输出
在jenkins端测试,已经上传
6 .结合dockfile自动构建镜像并上传镜像到网络仓库harbor
打开之前搭建的harbor仓库,已经有myapp的镜像了
所有主机添加解析
将harbor仓库端的证书和daemon文件拷贝到jenkins端的docker目录下
编辑文件
重启docker后查看 docker info 仓库信息
进入jenkins,修改demo项目的配置,上传镜像的名称要对应harbor仓库的目录,标签和构建版本号一致,设定套接字,修改仓库地址,由于harbor是加密认证的,所以还需要证书
添加harbor仓库的账号密码
选择证书然后保存
控制台输出正常,demo标签显示27
harbor仓库也是27
7、从harbor仓库拉取镜像并运行
新建任务
配置项目,修改触发器类型,当demo项目稳定运行后,运行docker项目,具体操作是运行一个容器,是一个流水线
保存,查看容器运行成功
访问测试,是dockerfile之前设置的v1版本
控制台输出OK
在gitlab上修改Dockerfile文件,修改版本
在jenkins上并为修改
jenkins端修改docker项目的配置,执行命令改为删除以前的镜像,运行最新版本的镜像
控制台输出
重新访问本地,版本修改