jenkins

gitlab+jenkins

一、jenkins
jenkins_第1张图片
1.1使用两个项目完成构建等和测试
jenkins_第2张图片新建两个项目:test构建等操作,docker_project测试
jenkins_第3张图片

流程:
步骤1、test项目中:用户通过git把本地代码(eg:创建nginx镜像)上传到gitlab中,(设置触发方式为gitlab代码中改变或者执行则jenkins开始执行)gitlab触发jenkins来执行项目test,构建镜像,并且把镜像上传到harbor本地仓库中
步骤2、设置test项目完成后触发执行docker_project项目进行测试,在server4上执行,从harbor中拉取nginx镜像,运行容器。

实验
实验1:server2上安装gitlab,server3上安装jenkins和依赖,docker用来做构建和测试
实验2:server2上安装gitlab,server3上安装jenkins和依赖用来做构建,server4上安装的docker用来测试,
实验3:把jenkins构建和管理分开
server2上安装gitlab,server3上安装jenkins和依赖用来管理,server5上只安装java-openjdk(jenkins的依赖包)和docker用来构建,server4上安装的docker用来测试,

1.2使用流水线pipeline,一个pipeline项目解决问题
jenkins_第4张图片pipeline+dingding群报警

jenkins_第5张图片二、jenkins+ansible
ansible:是自动化运维工具,集合了众多运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能。

创建普通项目playbook,使用shell手动构建,不设置触发构建
下面deploy是变量可选test和prod
图1:
jenkins_第6张图片图2:
jenkins_第7张图片图3:

test和prod内容如下:test的值是172.25.254.4;prod的值是172.25.254.5
jenkins_第8张图片图4:

playbook.yml文件

template:把index.html.j2内容写到httpd的发布页/var/www/html/index.html中

jenkins_第9张图片

其中index.html.j2的内容为{{ ansible_hostname }};当deploy选择test时,是172.25.254.4的hostname值即server4。选择prod时值为server5

图5:
jenkins_第10张图片

手动构建deploy图5选择左边Build with Parameters,接着选择test构建时,对应的值为172.25.254.4,执行playbook.yml,在172.25.254.4(server4虚拟机)上安装httpd,在其/www/html/index.html中写入(deploy=test)时的index.html.j2值,即server4,运行httpd。curl 172.25.254.4时输出为/www/html/index.html发布页的值,即server4

jenkins_第11张图片
同理,deploy选择prod构建时,对应的值为172.25.254.5,执行playbook.yml,在172.25.254.5(server5虚拟机)上安装httpd,在其/www/html/index.html中写入(deploy=prod)时的index.html.j2值,即server5,运行httpd。curl 172.25.254.5时输出为/www/html/index.html发布页的值,即server5
jenkins_第12张图片

你可能感兴趣的