linux|jenkins

gitlab+jenkins
一、jenkins
linux|jenkins
文章图片

1.1使用两个项目完成构建等和测试
linux|jenkins
文章图片
新建两个项目:test构建等操作,docker_project测试
linux|jenkins
文章图片

流程:
步骤1、test项目中:用户通过git把本地代码(eg:创建nginx镜像)上传到gitlab中,(设置触发方式为gitlab代码中改变或者执行则jenkins开始执行)gitlab触发jenkins来执行项目test,构建镜像,并且把镜像上传到harbor本地仓库中
步骤2、设置test项目完成后触发执行docker_project项目进行测试,在server4上执行,从harbor中拉取nginx镜像,运行容器。
【linux|jenkins】实验
实验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项目解决问题
linux|jenkins
文章图片
pipeline+dingding群报警
linux|jenkins
文章图片
二、jenkins+ansible
ansible:是自动化运维工具,集合了众多运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能。
创建普通项目playbook,使用shell手动构建,不设置触发构建
下面deploy是变量可选test和prod
图1:
linux|jenkins
文章图片
图2:
linux|jenkins
文章图片
图3:

test和prod内容如下:test的值是172.25.254.4; prod的值是172.25.254.5
linux|jenkins
文章图片
图4:
playbook.yml文件
template:把index.html.j2内容写到httpd的发布页/var/www/html/index.html中
linux|jenkins
文章图片

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

图5:
linux|jenkins
文章图片

手动构建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
linux|jenkins
文章图片

同理,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
linux|jenkins
文章图片

    推荐阅读