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 代码上线流程(文末有免费视频)的更多相关文章

  1. Jenkins+Gitlab+Ansible自动化部署(六)

    Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs. ...

  2. Jenkins+Gitlab+Ansible自动化部署(五)

    Freestyle Job实现静态网站部署交付(接Jenkins+Gitlab+Ansible自动化部署(四)https://www.cnblogs.com/zd520pyx1314/p/102445 ...

  3. Jenkins+Gitlab+Ansible自动化部署(三)

    接Jenkins+Gitlab+Ansible自动化部署(一)https://www.cnblogs.com/zd520pyx1314/p/10210727.html 和(二)https://www. ...

  4. Jenkins+Gitlab+Ansible自动化部署(一)

    首先准备实验环境 虚拟机 主机名 IP地址 服务 系统版本 内核版本 Vmware Workstation 14 gitlab.example.com 192.168.244.130 gitlab  ...

  5. Jenkins+Gitlab+Ansible自动化部署(四)

    接Jenkins+Gitlab+Ansible自动化部署(三)https://www.cnblogs.com/zd520pyx1314/p/10235394.html Jenkins应用 Jenkin ...

  6. Jenkins+Gitlab+Ansible自动化部署(二)

    接Jenkins+Gitlab+Ansbile自动化部署(一):https://www.cnblogs.com/zd520pyx1314/p/10210727.html Ansible的配置与部署 工 ...

  7. 源码分析 Kafka 消息发送流程(文末附流程图)

    温馨提示:本文基于 Kafka 2.2.1 版本.本文主要是以源码的手段一步一步探究消息发送流程,如果对源码不感兴趣,可以直接跳到文末查看消息发送流程图与消息发送本地缓存存储结构. 从上文 初识 Ka ...

  8. i春秋官网4.0上线啦 文末有福利

    爱瑞宝地(Everybody)期待了很久的 i春秋官网4.0上线啦 除了产品的功能更加完善 性能和体验也将大幅度提高 清新.舒适的视觉感受 搭配更加便捷的操作流程 只需一秒,扫码立即登录 即刻进入网络 ...

  9. 实用代码|javaMail发送邮件(文末重磅资源!)

    每天进步一点点,距离大腿又近一步!阅读本文大概需要5分钟 JavaMail发送邮件,简单实用,了解一下呗~ 1.开启邮箱MAP/SMTP服务,获取第三方授权码 以QQ邮箱为例 2.主要代码 maven ...

随机推荐

  1. EditPlus 自动格式化js、html、css,以EditPlus 文本编辑器v3.41(1145)为例

    工具/原料   edtools.rar 方法/步骤     下载工具包:edtools.rar ,解压后放到磁盘的一个目录,如D:/edTools   打开ED,打开“工具”-“配置用户工具”,在弹出 ...

  2. Gerrit安装配置

    环境: CentOS 1611 + gerrit-2.11.4 (review.openstack.org) 1. 安装java1.8 (>1.7) [root@review ~]# yum i ...

  3. Linux 系统其他重要文件

    其他重要目录 /usr /usr/local 通过源码安装,没有特别指定,就在这个文件下用户自编译软件存放地方 /usr/src 源代码程序 + 内核源代码程序存放目录 /var /var/log/m ...

  4. springmvc 拦截器的使用小结

    /** * * * * 拦截器的作用: * 每个请求到达Controller之前,或者每个响应到达view之前,都可以进行拦截. * 1.全局日志(谁提交了请求,要做什么事) * 2.权限管理(每个请 ...

  5. 张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...

  6. 最新版本2018.1.1webstorm安装、汉化、破解教程

    一.安装(下载与激活) 1.官网下载安装包https://www.jetbrains.com/webstorm/ 2.开始安装 3.选择安装目录,点击下一步 4.勾选64位,点击下一步 5.继续下一步 ...

  7. was集群下基于接口分布式架构和开发经验谈

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/luozhonghua2014/article/details/34084935    某b项目是我首 ...

  8. 【洛谷】【treap/堆】P2073 送花

    [题目描述:] 这些花都很漂亮,每朵花有一个美丽值W,价格为C. 小明一开始有一个空的花束,他不断地向里面添加花.他有以下几种操作: 操作 含义 1 W C 添加一朵美丽值为W,价格为C的花. 3 小 ...

  9. c++——对象的构造和析构函数、构造函数的分类及调用

    1构造函数和析构函数的概念 有关构造函数 1构造函数定义及调用 1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数: 2)构造函数在定义时可以有参数: 3)没有任何 ...

  10. java 控制流

    一:     块作用域 块(即复合语句):是指由一对花括号括起来的若干条简单的java语句.块决定了变量的作用域,一个块可以嵌套在另一个块中,如下: public class print_In { p ...