Jenkins使用文档(二)
Jenkins+Docker+Gitlab
项目大体构建流程
把Java源码上传到gitlab上,maven编译,docker镜像构建,而后推送到harbor私有镜像中心,再自动下载docker镜像,使用rancher控制docker运行服务,最后测试访问。node
用容器的形式打包、交付、运行应用程序。能够在任何地方构建、管理、安全运行应用程序。linux
容器与系统其它部分分隔离开的一系列进程,容器具备可移植性和一致性git
docker就是把应用打包到一个轻量的可移植的容器里面,而后去交付,运行github
目录docker
1、Docker安装(全部主机安装)apache
2、docker-compose安装(只须要在主机1上安装)json
3、Rancher安装(只须要在主机1上安装)centos
四、Harbor私有仓库部署—docker容器管理平台浏览器
五、开始构建Jenkins Pipeline + Docker + Git—Java项目
六、验证
总体安装环境说明
本文档共涉及两台服务器。部分环境在前一篇文章中有所说明及安装过程,此文档为了简化就不作累赘。
本文档所使用的各软件版本及系统说明
名称 |
主机1 |
主机2 |
系统 |
centos 7.2 |
|
主机名 |
www.jenkins.com |
s2.jenkins.com |
IP |
192.169.1.100 |
192.168.1.101 |
CPU |
2核 |
|
内存 |
4G |
|
磁盘 |
40G |
|
Git version |
1.8.3.1 |
|
Java version |
1.8.0_65 |
|
Maven version |
3.6.3 |
|
Jenkins version |
2.210 |
|
Gitlib |
10.3.2 |
|
Docker |
19.03.5 |
|
docker-compose |
1.25.1 |
|
Harbor |
19.03.3 |
1、Docker安装(全部主机安装)
Docker 是一个开源的应用容器引擎,基于 Go 语言 并听从 Apache2.0 协议开源。
Docker 可让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。
容器是彻底使用沙箱机制,相互之间不会有任何接口(相似 iPhone 的 app),更重要的是容器性能开销极低。官网:https://www.dcoker.com
1、配置Docker源
yum-config-manager--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2、安装依赖包
yuminstall -y yum-utils device-mapper-persistent-data lvm2
3、安装与启动docker
yuminstall docker-ce -y
systemctlstart docker
systemctlenable docker
4、验证
docker --version
5、配置Docker加速器(可选)
cat /etc/docker/daemon.json<<-'EOF'
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
EOF
配置完成后重启服务。
sudo systemctl daemon-reload
sudo systemctl restart docker
docker version
2、docker-compose安装(只须要在主机1上安装)
Docker是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已是 Docker的最大优点,过去须要用数天乃至数周的任务,在Docker容器的处理下,只须要数秒就能完成。
1、下载安装
wgethttps://github.com/docker/compose/releases/download/1.25.1/docker-compose-Linux-x86_64
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
chmod+x /usr/local/bin/docker-compose
2、验证
docker-compose --version
3、Rancher安装(只须要在主机1上安装)
Rancher是一个开源的企业级容器管理平台。经过Rancher,企业不再必本身使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台
Rancher支持多种容器引擎: swarm k8s mesos,还有自带引擎cattle ,文档中使用的是cattle引擎。
1、安装启动Rancher
dockerrun -d --restart=unless-stopped -p 18080:8080 rancher/server
2、验证
浏览器输入http://192.168.1.100:18080
3、添加主机
如:小编的客户机是 192.168.1.101(注意图片中是100改成101)
4、添加主机验证
4、Harbor私有仓库部署—docker容器管理平台(只须要在主机1上安装)
Harbor 是由VMware公司开源的企业级的Docker Registry管理项目
官网:https://github.com/vmware/harbor/
Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操做审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm经过chart方式下载,管理,安装K8s插件,而chartmuseum能够提供存储chart数据的仓库
注意:Harbor的全部服务组件都是在Docker中部署的,全部官方安装使用Docker-compose快速部署,因此咱们须要安装Docker、Docker-compose。Docker Registry V2版本, 故Docker版本不小于 1.10,docker-compose不小于1.16
1、Habor下载
wgethttps://github.com/goharbor/harbor/releases/download/v1.9.4/harbor-offline-installer-v1.9.4.tgz
2、解压
tar-zxvf harbor-offline-installer-v1.9.4.tgz
3、修改配置文件并安装
修改 harbor/harbor.yml中的hostname ,修改成主机名或者本机IP,大约在第五行
修改 harbor/harbor.yml中的harbor_admin_password,设置密码,大约在第27行
4、安装Harbor
shharbor/ install.sh
5、修改docker启动项文件并重启dcoker服务(在主机2上修改)
/usr/lib/systemd/system/docker.service修改以下配置
ExecStart=/usr/bin/dockerd--insecure-registry=192.168.1.100
systemctldaemon-reload
systemctlrestart docker
6、登陆验证Docker registry
dockerlogin -u admin 192.168.1.100 -pxiaowei@1234 # xiaowei@1234 是以前设置的密码
5、开始构建Jenkins Pipeline + Docker + Git—Java项目
构建此项目所涉及到的Jenkins插件以下:
git
pipeline
extended choice parameter
docker
rancher
1、构建Pipeline项目
登陆jenkins,点击“新建”,任务名称自定义(个人叫作pipeline-docker-java)
选择“构建一个流水线(pipeline)项目”
点击“肯定”
描述,自定义
构建触发器、高级项目选项都默认
流水线(pipeline) 定义选择pipeline scrpt
其pipeline脚本内容以下:脚本生成详见 pipeline语法
node{ stage('拉取代码') { git credentialsId: 'd560a335-5a3e-4f47-bfde-82f0137c2c30', url: 'http://192.168.1.100:9527/root/hello_world.git' } stage('Maven编译') { dir('./') { sh '/opt/apache-maven-3.6.3/bin/mvn clean install -DskipTests=true' } }
stage('构建镜像') { dir('./') { sh 'docker login -u admin 192.168.1.100 -p12345678' docker.build("192.168.1.100/project/pipeline-docker-java:${BUILD_ID}").push()
} } stage('发布-部署docker镜像至rancher') { rancher confirm: false, credentialId: 'a76db31e-12b8-4e75-877c-66e77a71efad', endpoint: 'http://192.168.1.100:18080/v2-beta', environmentId: '1a5', environments: '', image: '192.168.1.100/project/pipeline-docker-java:${BUILD_ID}', ports: '', service: 'java/pipeline-docker-java', timeout: 50 } } |
发布-部署docker镜像至rancher段pipeline命令
git credentialsId: 为jenkins中保存凭据的登陆用户id
3、构建前的准备工做
打开浏览器登录 http://192.168.1.100
在Harbor中建立项目小编这里的项目名是projectà公开
2、开始构建发布Pipeline-Docker项目
点击构建按钮开始构建项目
6、验证
①、执行结果验证
②、在客户机中验证
一、配置端口自动映射(升级应用)
待应用构建两次后再升级应用
登陆Rancher—>选择应用—>所有—>java—>升级
添加映射端口—>升级—>升级完成
验证:
至此:Jenkins+Pipeline+docker项目构建完成。
本文分享自微信公众号 - 小伟运维开发(xiaowei-dev)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。