Jenkins + Gitlab + Ansible--playbook 代码上线流程(文末有免费视频)

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 实践
观看地址:视频教程
Jenkins + Gitlab + Ansible--playbook 代码上线流程(文末有免费视频)的更多相关文章
- Jenkins+Gitlab+Ansible自动化部署(六)
Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...
- Jenkins+Gitlab+Ansible自动化部署(五)
Freestyle Job实现静态网站部署交付(接Jenkins+Gitlab+Ansible自动化部署(四)https://www.cnblogs.com/zd520pyx1314/p/102445 ...
- Jenkins+Gitlab+Ansible自动化部署(三)
接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...
- Jenkins+Gitlab+Ansible自动化部署(一)
首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab ...
- Jenkins+Gitlab+Ansible自动化部署(四)
接Jenkins+Gitlab+Ansible自动化部署(三)https://www.cnblogs.com/zd520pyx1314/p/10235394.html Jenkins应用 Jenkin ...
- Jenkins+Gitlab+Ansible自动化部署(二)
接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...
- 源码分析 Kafka 消息发送流程(文末附流程图)
温馨提示:本文基于 Kafka 2.2.1 版本.本文主要是以源码的手段一步一步探究消息发送流程,如果对源码不感兴趣,可以直接跳到文末查看消息发送流程图与消息发送本地缓存存储结构. 从上文 初识 Ka ...
- i春秋官网4.0上线啦 文末有福利
爱瑞宝地(Everybody)期待了很久的 i春秋官网4.0上线啦 除了产品的功能更加完善 性能和体验也将大幅度提高 清新.舒适的视觉感受 搭配更加便捷的操作流程 只需一秒,扫码立即登录 即刻进入网络 ...
- 实用代码|javaMail发送邮件(文末重磅资源!)
每天进步一点点,距离大腿又近一步!阅读本文大概需要5分钟 JavaMail发送邮件,简单实用,了解一下呗~ 1.开启邮箱MAP/SMTP服务,获取第三方授权码 以QQ邮箱为例 2.主要代码 maven ...
随机推荐
- Python(二)列表的增删改查
一,列表的增删改查 列表中增加元素: 1,从列表的末尾增加一个元素:append("") 2,从列表中插入一个元素:insert(下标位置,插入的元素) 合并列表: 1,name. ...
- Redis学习---Redis操作之Set
Set操作,Set集合就是不允许重复的列表 sadd(name,values) name对应的集合中添加元素 --------------------------------------------- ...
- springmvc 拦截器的使用小结
/** * * * * 拦截器的作用: * 每个请求到达Controller之前,或者每个响应到达view之前,都可以进行拦截. * 1.全局日志(谁提交了请求,要做什么事) * 2.权限管理(每个请 ...
- November 8th 2016 Week 46th Tuesday
When he can't, he tries a new way to share a new pair. 当他做不到时,他尝试一种新的方式:分享. To share, your failing e ...
- Ubuntu通过Pyenv管理python版本
网上安装使用Pyenv的教程很多,但是实测有很多教程有坑,经过多家比较发现下面的教程可用,内容全面,与大家分享. 首先安装pyenv全家桶 curl -L https://raw.githubuser ...
- memcache分布式 存取
Memcached分布式 Memcached虽然称为“分布式“缓存服务器,但服务器端并没有“分布式”的功能.Memcached的分布式完全是由客户端实现的.memcached是怎么实现分布式缓存的呢? ...
- Java8系列之重新认识HashMap(转)
原文出处: 前利 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap.Hashtable.LinkedHashMap和Tree ...
- ubuntu下以16进制形式查看class文件、反编译class文件
参考:https://blog.csdn.net/xyh930929/article/details/83860464 1.vim HelloWorld.class 2.输入英文状态下的冒号:,然后输 ...
- 3942: [Usaco2015 Feb]Censoring
3942: [Usaco2015 Feb]Censoring Time Limit: 10 Sec Memory Limit: 128 MB Submit: 964 Solved: 480 [Subm ...
- POJ 3294 Life Forms [最长公共子串加强版 后缀数组 && 二分]
题目:http://poj.org/problem?id=3294 Life Forms Time Limit: 5000MS Memory Limit: 65536K Total Submiss ...