基于参数化选择gitlab代码分支或者标签进行构建

2019-11-19  本文已影响0人  Oooyzx

背景基于:jenkins配置docker联合项目的CICD
前项目只部署了一台web服务器即cmdb,此次需要两个web服务器,所以,在前项目上做如下改动:

在jenkins容器中安装ansible

由于该项目的jenkins容器是alpine高山版本,所以,可直接用apk添加

apk add ansible
改写宿主机中docker-compose.yaml文件

注意:改写前先停掉服务docker-compose stop

注意:此处启动时指定了使用两个cmdb

image.png
在新生成的两个cmdb容器上配置ssh

ssh-keygen生成密钥对

image.png
ssh-keygen -A 生成系统密钥
image.png
/usr/sbin/sshd 打开22端口
passwd 设置密码
image.png
在jenkins的容器上建立免密
  > ~/.ssh/known_hosts 
ssh-copy-id root@auto-cmdb_cmdb_1
ssh-copy-id root@auto-cmdb_cmdb_2
image.png
在jenkins的容器上创建一个/etc/ansible/下的hosts文件
bash-4.4# vi /etc/ansible/hosts 
[prod]
auto-cmdb_cmdb_1

[prod:vars]
name=prod-oyzx

[dev]
auto-cmdb_cmdb_2

[test]
127.0.0.1

[dev:vars]
name=dev-user
port=2222

在gitlab项目上创建分支

image.png image.png

在Jenkins中创建一个自由风格的任务:

1. 添加描述信息
添加描述信息.png
2.选择参数化构建过程

Name:事件名称
Description:添加描述信息,加以区分不同参数事件
Parameter Type:选择以分支或标签进行构建(此处以分支为例)

image.png
3.添加一个选项参数模块

在执行时会出现一个下拉选项,可选择自定义选项的内容

选项参数
4.再添加一个文本参数

在执行时会出现一个文本框,可自定义文本参数的默认值


image.png
5.源码管理,配置git仓库

Repository URL:gitlab的ssh链接
注意:@后面写的时gitlab容器的镜像名
添加全局配置:同前一篇文章jenkins配置docker联合项目的CICD

image.png image.png
6.构建触发器和构建环境

此处只为测试参数化构建,所以未使用,若有需要,请根据需求自定义添加


image.png
7. 构建一: 添加shell模块

根据上文定义的参数变量,可自定义shell内容,此处便于观看,echo打印了相应参数

echo "本次构建的版本是 ${build_version}"
echo "本次选择的 gitlab 分支是 ${branch_name}"
echo "本次选择部署的主机组是 ${deploy_hosts}"
image.png
8. 构建二:添加Invoke Ansible Ad-Hoc Command模块
image.png
Host pattern:添加主机组
Inventory:添加资产清单,需指定host文件在jenkins容器的具体目录
Module:指定ansible执行模块,此处用的debug模块
Module arguments or command to execute:等价于ansible命令中-a 后面的具体命令操作
image.png

写完任务配置内容后,保存然后点击参数构建Build with Parameters,填入相应信息

image.png

可在控制台输出查看输出结果,如下:


image.png image.png

可在输出信息中下端看见echo信息:


image.png

以上就是基于参数化选择gitlab代码分支或者标签进行构建的全部内容,如有疑问或漏洞,还请见谅,欢迎私信我嗷,嘻嘻~~

上一篇 下一篇

猜你喜欢

热点阅读