目前使用jenkins上线流程图

jenkins构建时支持git选择分支

1.安装Git Parameter插件

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

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

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

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

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

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

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

填写描述 版本号

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

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

4. 构建环境使用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
thencd /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下载地址

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."
构建环境添加

if [ $? -ne 0 ];thencd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version <div class=\"highlight\">上线失败,请关注</div>"  $BUILD_URL $BUILD_LOGexit 1
elsecd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version 已上线" $BUILD_URL $BUILD_LOG
fi
6. 上线后的通知(点击详情可以跳转到build url)

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

../test_online.yml

---
- hosts: '{{ group }}'remote_user: workbecome: Truebecome_method: sudovars:work_root_dir: /data/wwwmodule_name: testwork_repo: git@gitlab_host/devops/test.gitmodule_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

Jenkins+Gitlab+ansible-playbook上线流程相关推荐

  1. Jenkins + Gitlab + Ansible--playbook 代码上线流程

    jenkins 构建是支持 git 选择分支 安装 Git Parameter 插件 在系统管理中的插件管理 然后点击选插件,在右上角输入 Git Parameter,找到 Git Parameter ...

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

    Jenkins+Gitlab+Ansible自动化部署(2021-08-11) 一.Jenkins Linux Shell 集成 登录Jenkins web管理页,点击新建任务 添加描述信息 添加构建 ...

  3. jenkins + gitlab 自动化构建全流程记录。

    文章目录 1.jenkins (windows 版本 Jenkins 2.346.3) 2.gitLab (linux 版本:GitLab Community Edition 15.3.5 3.可能出 ...

  4. jenkins结合ansible用shell实现自动化部署和回滚

    最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...

  5. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

    项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...

  6. 末学者笔记--Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站

    Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站 一.Jinkens安装                                                ...

  7. 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统

    新blog地址:http://hengyunabc.github.io/deploy-system-build-with-jenkins-ansible-supervisor/ 一步一步用jenkin ...

  8. 基于Jenkins+Gitlab的自动化部署实战

    故事背景 一个中小型企业,是典型的互联网公司,当初期的时候可能运维只能标配到2~3人,此时随着公司的发展,项目会逐渐增多.前期部署项目可能都是手动的, 俗称"人肉部署",这简直是无 ...

  9. Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)

    实现流程: 手动部署Java项目至后端Web集群 1.搭建Nginx+Tomcat集群架构. 2.开发提交Java源代码至Gitlab仓库. 3.手动获取Java源代码,然后使用Maven进行编译. ...

  10. 持续集成Jenkins+Gitlab

    2019独角兽企业重金招聘Python工程师标准>>> 持续集成Jenkins+Gitlab 请叫我大宝贝 0.1 2018.04.21 15:11* 字数 1203 阅读 760评 ...

最新文章

  1. 在Ubuntu 14.04 64bit上升级安装ATS 5.3.2/6.1.1实录
  2. 通过注册表开启“终端服务”
  3. java poi excel读写_JAVA-POI操作Excel读写
  4. 【图】一只Android开发程序猿对IMの所有痴情,你会懂?
  5. Union-Find 算法应用
  6. 微力同步linux,云端同步软件-微力同步下载 v2.4.3 官方版 - 下载吧
  7. 允許Linux的snmp服務被查詢
  8. Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突...
  9. Github项目|几行代码即可实现人脸检测、目标检测的开源计算机视觉库
  10. 华为云云原生首次在太空验证,提升“天算星座“卫星计算精度
  11. 500并发相当于多少人_linux开发技术之线程池accept处理高并发connect(含源码)
  12. pyCharm第三方库安装
  13. 说说命令提示符:tcping命令、tcp协议和ping命令
  14. cplex java_cplex-Java-样例代码解析
  15. Java学习手册:Java网络编程面试问题
  16. 9针15针VGA接口引脚定义
  17. 计算机无法启动print,本地计算机无法启动print spooler服务,错误1069怎么处理
  18. CC2430基础——LED控制实验
  19. java时钟时针绘制代码_java实现时钟效果
  20. Mac QQ聊天记录迁移方法(Mac to Mac)

热门文章

  1. 日语口语中需要注意的问题~ 不定期更新
  2. 这世上有个词叫Crush,有多少人误把它当做Love
  3. windows10更新后网络无法连接的问题
  4. 【Hive】数据导出
  5. 【EXCEPTION_INIT】自定义错误名称并关联错误号
  6. iframe中src参数过长问题解决
  7. visual C++ 项目和解决方案的区别
  8. 确定数组是否包含值[重复]
  9. 如何将字节数组转换为十六进制字符串,反之亦然?
  10. 详解电脑蓝屏怎么回事