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
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 代码上线流程相关推荐
- Jenkins+Gitlab+Ansible自动化部署(四)
Jenkins+Gitlab+Ansible自动化部署(2021-08-11) 一.Jenkins Linux Shell 集成 登录Jenkins web管理页,点击新建任务 添加描述信息 添加构建 ...
- Jenkins+GitLab API进行代码库项目统计分析自助工具建设
一.底层统计分析脚本(GitLabAPI.sh) #!/bin/bash # 必须优先在脚本运行服务器安装json格式化工具jq: yum install jq echo "get cuur ...
- jenkins结合ansible用shell实现自动化部署和回滚
最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚.然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现. 环境: cent ...
- jenkins+gitlab实现自动化部署平台
文章目录 jenkins+gitlab实现自动化部署平台 git gitlab gitlab介绍 安装 jenkins jenkins介绍 CI/CD介绍 Jenkins安装 gitlab+jenki ...
- Jenkins与网站代码上线
第1章 引入 1.1 开发写代码的演变 l 一个开发单打独斗,撸代码,开发网站,自由自在: l 多个开发同时开发一个网站,同时改一份代码.但是同时改一个文件会导致冲突. l 采用分支结构,每天上班第一 ...
- Jenkins与网站代码上线解决方案
1.1 前言 Jenkins是一个用Java编写的开源的持续集成工具.在与Oracle发生争执后,项目从Hudson项目独立. Jenkins提供了软件开发的持续集成服务.它运行在Servlet容器中 ...
- Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken
项目前言 在上一篇博客<Jenkins+Git+Gitlab+Ansible实现持续化集成一键部署静态网站(一)--技术流ken>中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个 ...
- jenkins配置记录(2)--代码发布流程
在我们的日常运维工作中,使用jenkins来完成业务代码发版上线是至关重要的一环. 前面已经提到在jenkins上添加用户权限的操作,今天重点说下如何在jenkins下构建项目工程进行代码发布? 在此 ...
- 自动生成html_服务搭建篇二·Jenkins+Jmeter+Gitlab持续集成实现接口流程自动化
今天分享服务搭建第二篇:Jenkins+Jmeter+Ant自动化集成(服务) 一.Ant 服务配置 1.配置报告模板和 ant build 确定脚本的目录,当前放在Jmeter 目录下 #cd /u ...
最新文章
- OpenMP用法大全
- python时间变量_python的对象 变量
- java do while变量无法赋值_Java流是否等同于具有变量赋值的while
- linux使关机命令失效,解决Linux系统在设置alias命令重启后失效的问题
- 两种求集合全部子集的方法
- 牛客题霸 二分查找 C++题解/答案
- python数据类型有哪些、分别有什么用途_python中的数据类型有哪些
- 调查显示超四成人“讨厌”大数据
- css如何调整红心样式_条码软件如何调整条码数据的样式
- 通过SecureCRT访问亚马逊Amazon EC2主机
- Way to MongoDB
- spring中的BeanFactory和FactoryBean的区别与联系
- 发送需要smtp认证的邮件
- 美观实用的BeautifulReport测试报告
- Java数字转换大写
- python词云图_Python制作词云图代码实例
- CSS进阶 如何实现圆形半圆
- gRPC源码阅读及实践之 Resolver
- Windows10使用自带表情包
- NET 数据结构-单链表
热门文章
- Android开发学习——Android Studio配置SVN
- CodeForces Round #403 (Div.2) A-F
- placeholder插件详解
- 自定义ViewGroup 实现拖动跟快速滚动的效果
- 再高深的 Python 面试难题,这门课都给你整得明明白白!
- java实现rsa欧几里得算法求d_RSA 加密算法的 java 实现
- 保存的图数据丢失_自从用了这2个功能,再也没有担心过文档丢失
- MySQL 高级 - 存储过程 - 概述
- SpringSecurity 案例父工程创建
- 引入幂等性后对系统有什么影响?