博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jenkins+Gitlab+ansible-playbook上线流程
阅读量:6576 次
发布时间:2019-06-24

本文共 2058 字,大约阅读时间需要 6 分钟。

目前使用jenkins上线流程图

image

jenkins构建时支持git选择分支

1.安装Git Parameter插件

1.1在系统管理中的插件管理

image

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

image

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

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

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

image

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

填写name为release_version,下面使用ansible时需要

填写描述 版本号

image

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

image

3. Build with Parameters 就可以看到效果

image

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

image

#!/bin/bashecho $moduleecho $release_versionBUILD_LOG=`git tag -n | grep $release_version | awk '{print $2$3}'` #获取tag注释信息version="{\"release_version\":\"$release_version\",\"group\":\"$module\"}"if test ! -z $release_versionthen    cd /home/work/ansible_script/ && /bin/ansible-playbook -i host test_online.yml --extra-vars="$version"fi
5. 上线后为了能及时通知相关人员,可以使用触发脚本的方式发送相关信息

5.1 Jenkins获取运行job的用户名

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

user build 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."

构建环境添加

if [ $? -ne 0 ];then   cd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version 
上线失败,请关注
" $BUILD_URL $BUILD_LOG exit 1else cd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version 已上线" $BUILD_URL $BUILD_LOGfi
6. 上线后的通知(点击详情可以跳转到build url)

image

7. 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内容可以查看

转载地址:http://pswno.baihongyu.com/

你可能感兴趣的文章
如果这都不算爱?百度知道实战经验分享
查看>>
oracle 中查询一个表的所有字段名以及属性的sql语句应该怎么写?
查看>>
DAVINCI DM3730开发攻略——序
查看>>
2012年的目标和执行情况跟踪记录
查看>>
Introduction to the Build Lifecycle
查看>>
游戏运营数据解读之---->CCU
查看>>
jruby下使用nokogiri、xslt - Ruby - ChinaUnix.net -
查看>>
Android开发四 开发第一个Android应用
查看>>
Sql Server常用时间段查询汇总
查看>>
android 源码
查看>>
添加(创建)和删除及判断是否存在桌面快捷方式
查看>>
入静和入世
查看>>
去年一个百万级的小软件项目经验分享,20来个功能模块,项目不太好做有些棘手...
查看>>
文件备份,同步工具rsync服务器端的安装及配置
查看>>
c# 窗体加载
查看>>
jQuery之事件触发trigger
查看>>
多语言字的保存
查看>>
将不确定变为确定~从DBML文件中是否可以快速定位到指定类?
查看>>
对makefile中,变量定义中 通配符的理解
查看>>
第二十三模板 13模板成员
查看>>