自动化运维(2)—经过jenkins+Pipeline+Docker实现一键构建与发布。

Jenkins使用文档(二)

Jenkins+Docker+Gitlab

PS:续前一篇文章(自动化运维(1))java


项目大体构建流程

      把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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索