发布时间:2024-12-22 10:01
gitlab+jenkins
一、jenkins
1.1使用两个项目完成构建等和测试
新建两个项目:test构建等操作,docker_project测试
流程:
步骤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项目解决问题
pipeline+dingding群报警
二、jenkins+ansible
ansible:是自动化运维工具,集合了众多运维工具,实现了批量系统配置、批量程序部署、批量运行命令等功能。
创建普通项目playbook,使用shell手动构建,不设置触发构建
下面deploy是变量可选test和prod
图1:
图2:
图3:
test和prod内容如下:test的值是172.25.254.4;prod的值是172.25.254.5
图4:
playbook.yml文件
template:把index.html.j2内容写到httpd的发布页/var/www/html/index.html中
其中index.html.j2的内容为{{ ansible_hostname }};当deploy选择test时,是172.25.254.4的hostname值即server4。选择prod时值为server5
手动构建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
同理,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