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

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

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

ansible-playbook

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

更多详情加技术交流群:238757010

本文转自 xjtuhit 51CTO博客,原文链接:http://blog.51cto.com/51reboot/2052177

Jenkins + Gitlab + Ansible--playbook 代码上线流程相关推荐

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

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

  2. Jenkins+GitLab API进行代码库项目统计分析自助工具建设

    一.底层统计分析脚本(GitLabAPI.sh) #!/bin/bash # 必须优先在脚本运行服务器安装json格式化工具jq: yum install jq echo "get cuur ...

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

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

  4. jenkins+gitlab实现自动化部署平台

    文章目录 jenkins+gitlab实现自动化部署平台 git gitlab gitlab介绍 安装 jenkins jenkins介绍 CI/CD介绍 Jenkins安装 gitlab+jenki ...

  5. Jenkins与网站代码上线

    第1章 引入 1.1 开发写代码的演变 l 一个开发单打独斗,撸代码,开发网站,自由自在: l 多个开发同时开发一个网站,同时改一份代码.但是同时改一个文件会导致冲突. l 采用分支结构,每天上班第一 ...

  6. Jenkins与网站代码上线解决方案

    1.1 前言 Jenkins是一个用Java编写的开源的持续集成工具.在与Oracle发生争执后,项目从Hudson项目独立. Jenkins提供了软件开发的持续集成服务.它运行在Servlet容器中 ...

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

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

  8. jenkins配置记录(2)--代码发布流程

    在我们的日常运维工作中,使用jenkins来完成业务代码发版上线是至关重要的一环. 前面已经提到在jenkins上添加用户权限的操作,今天重点说下如何在jenkins下构建项目工程进行代码发布? 在此 ...

  9. 自动生成html_服务搭建篇二·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化

    今天分享服务搭建第二篇:Jenkins+Jmeter+Ant自动化集成(服务) 一.Ant 服务配置 1.配置报告模板和 ant build 确定脚本的目录,当前放在Jmeter 目录下 #cd /u ...

最新文章

  1. OpenMP用法大全
  2. python时间变量_python的对象 变量
  3. java do while变量无法赋值_Java流是否等同于具有变量赋值的while
  4. linux使关机命令失效,解决Linux系统在设置alias命令重启后失效的问题
  5. 两种求集合全部子集的方法
  6. 牛客题霸 二分查找 C++题解/答案
  7. python数据类型有哪些、分别有什么用途_python中的数据类型有哪些
  8. 调查显示超四成人“讨厌”大数据
  9. css如何调整红心样式_条码软件如何调整条码数据的样式
  10. 通过SecureCRT访问亚马逊Amazon EC2主机
  11. Way to MongoDB
  12. spring中的BeanFactory和FactoryBean的区别与联系
  13. 发送需要smtp认证的邮件
  14. 美观实用的BeautifulReport测试报告
  15. Java数字转换大写
  16. python词云图_Python制作词云图代码实例
  17. CSS进阶 如何实现圆形半圆
  18. gRPC源码阅读及实践之 Resolver
  19. Windows10使用自带表情包
  20. NET 数据结构-单链表

热门文章

  1. Android开发学习——Android Studio配置SVN
  2. CodeForces Round #403 (Div.2) A-F
  3. placeholder插件详解
  4. 自定义ViewGroup 实现拖动跟快速滚动的效果
  5. 再高深的 Python 面试难题,这门课都给你整得明明白白!
  6. java实现rsa欧几里得算法求d_RSA 加密算法的 java 实现
  7. 保存的图数据丢失_自从用了这2个功能,再也没有担心过文档丢失
  8. MySQL 高级 - 存储过程 - 概述
  9. SpringSecurity 案例父工程创建
  10. 引入幂等性后对系统有什么影响?