设为首页 收藏本站
查看: 1117|回复: 0

[经验分享] Jenkins + Gitlab + Ansible--playbook 代码上线流程

[复制链接]

尚未签到

发表于 2018-7-29 08:17:33 | 显示全部楼层 |阅读模式
DSC0000.jpg


jenkins 构建是支持 git 选择分支
  安装 Git Parameter 插件
  在系统管理中的插件管理
DSC0001.jpg

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


参数化构建过程
  插件安装成功后,在项目配置中后看到多了一个"参数化构建过程"
  勾选"参数化构建过程",然后添加 Git Parameter , 配置如下
  在源码管理中添加(需要提前将公钥设置好)
DSC0003.jpg

  参数化构建过程添加 git 参数 Git Parameter
  填写 name 为>
DSC0004.jpg

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


Build with Parameters
  Build with Parameters 就可以看到效果
DSC0006.jpg


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

  

#!/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>在 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 <div>  exit 1
  
else
  cd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version 已上线" $BUILD_URL $BUILD_LOG
  
fi
  

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


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-542792-1-1.html 上篇帖子: ansible2.4 api调用 下篇帖子: zabbix系列之使用ansible批量部署zabbix客户端(二)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表