jenkins 构建是支持 git 选择分支

安装 Git Parameter 插件
在系统管理中的插件管理

然后点击选插件,在右上角输入 Git Parameter,找到 Git Parameter 后点击左下方的的直接安装 。

参数化构建过程

插件安装成功后,在项目配置中后看到多了一个"参数化构建过程"

勾选"参数化构建过程",然后添加 Git Parameter , 配置如下

在源码管理中添加(需要提前将公钥设置好)

参数化构建过程添加 git 参数 Git Parameter

填写 name 为 release_version,下面使用 Ansible 时需要填写描述 版本号

参数化构建过程添加选择型参数 Choice Parameter

Build with Parameters

Build with Parameters 就可以看到效果

构建环境使用 shell 方式

构建环境使用 shell 方式 ,然后执行 ansible-playbook。

#!/bin/bash
echo $module
echo $release_version
BUILD_LOG=`git tag -n | grep $release_version | awk '{print $2$3}'` #获取tag注释信息

version="{\"release_version\":\"$release_version\",\"group\":\"$module\"}"

if test ! -z $release_version
then
    cd /home/work/ansible_script/ && /bin/ansible-playbook -i host test_online.yml --extra-vars="$version"
fi

线后发送信息

上线后为了能及时通知相关人员,可以使用触发脚本的方式发送相关信息

Jenkins 获取运行 job 的用户名

需要安装 user build vars plugin 插件,然后就可以取到 $BUILD_USER 变量。

user build vars plugin下载地址: https://wiki.jenkins-ci.org/display/JENKINS/Build+User+Vars+Plugin 可以使用的用户变量:

Property Default
BUILD_USER Full name (first name + last name)
BUILD_USER_FIRST_NAME First name
BUILD_USER_LAST_NAME Last name
BUILD_USER_ID Jenkins user ID
BUILD_USER_EMAIL Email address

在 jenkins 任务中使用构建变量:注意需要勾选 "Set jenkins user build variables." 构建环境添加

 ];then
   cd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version <div class=\"highlight\">上线失败,请关注</div>"  $BUILD_URL $BUILD_LOG
   exit
else
   cd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version 已上线" $BUILD_URL $BUILD_LOG
fi

上线后的通知( 点击详情可以跳转到 build url)

ansible-playbook

ansible-playbook (目前是 php 的环境 laravel 框架)

../test_online.yml

---
- hosts: '{{ group }}'
  remote_user: work
  become: True
  become_method: sudo
  vars:
    work_root_dir: /data/www
    module_name: test
    work_repo: git@gitlab_host/devops/test.git
    module_dir: ./

  roles:
      - test_online

../roles/test_online 目录结构
.

.
├── defaults
│   └── main.yml
├── meta
│   └── main.yml
├── README.md
├── tasks
│   ├── deploy.yml   # git相关操作
│   ├── directory.yml   # 创建目录
│   ├── main.yml
│   └── symlinks.yml    # 需要软连的log 等其他目录
└── vars
    └── main.yml

ansible-playbook 内容可以查看 https://github.com/Blacklight-Design/ansible-laravel5-deploy

更多详情加技术交流群:238757010

这里有几份免费视频资料送大家

《Python 开发环境搭建》
一:环境介绍
二:安装软件并启动 VM
三:安装 Python
四:初始化 Django 配置

Jenkins+Ansible+Gitlab自动化部署(CI/CD)
Django REST FrameWork 实践

观看地址:视频教程

最新文章

  1. 从scheduler is shutted down看程序员的英文水平
  2. qt qml qchart 图表组件
  3. eclipse working sets 视图 解决Other Projects不见问题
  4. c++学习笔记——字面值常量类
  5. 通过位运算生成ID
  6. Bengio最新博文:深度学习展望
  7. Java和.NET的GZIP压缩功能对比
  8. Swift数据类型之整型和浮点型-备
  9. pfsense下的流量管理(转)
  10. 【实用Windows双系统一键备份还原工具】Winclone Pro for Mac
  11. Kafka各个版本差异汇总
  12. win7 80端口被iis占用
  13. CSS3美化网页!!
  14. IOS获取资源路径
  15. ELK实时日志分析平台环境部署--完整记录
  16. ActiveMQ的安装与配置
  17. POJ-2251.DungeonMaster(三维BFS)
  18. Linux内核分析——构造一个简单的Linux系统MenuOS
  19. Linux基础命令---more
  20. 转--log4j.properties 详解与配置步骤

热门文章

  1. GIT学习---GIT&amp;github的使用
  2. Coursera-AndrewNg(吴恩达)机器学习笔记——第二周编程作业(线性回归)
  3. 剑指offer 07斐波那契数列
  4. mysql数据库配置文件
  5. SMTP服务器设置
  6. mode=&quot;r&quot; 和 函数末尾调用 regist()!!!!
  7. 021.13 IO流 RandomAccessFile对象
  8. CSS 构造表格
  9. 看懂shebang吧,只需一点点shell知识,从此再也不犯强迫症
  10. 2018 - 2019 CTU Open Contest E. Locker Room 【后缀数组】