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

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

作者: Oooyzx | 来源:发表于2019-11-19 09:17 被阅读0次

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

    在jenkins容器中安装ansible

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

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

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

    • 将ports改为expose,不指定哪台cmdb,避免端口冲突
    • container_name关闭,让默认生成
      image.png
    • 改写完后再启动 docker-compose up --scale cmdb=2

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

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

    ssh-keygen生成密钥对

    image.png
    ssh-keygen -A 生成系统密钥
    image.png
    /usr/sbin/sshd 打开22端口
    passwd 设置密码
    image.png
    在jenkins的容器上建立免密
    • 避免出现cmdb密钥重复,可先清空known_hosts中已有的密钥
      > ~/.ssh/known_hosts 
    
    • 建立免密:
    ssh-copy-id root@auto-cmdb_cmdb_1
    ssh-copy-id root@auto-cmdb_cmdb_2
    
    image.png
    • 查看/root/.ssh/known_hosts,可发现此时已添加成功
      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代码分支或者标签进行构建的全部内容,如有疑问或漏洞,还请见谅,欢迎私信我嗷,嘻嘻~~

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/dlxiictx.html