Jenkins+Gitlab+ansible-playbook上线流程

简介:

目前使用jenkins上线流程图

image

jenkins构建时支持git选择分支

1.安装Git Parameter插件

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

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

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

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

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

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

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

填写描述 版本号

image

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

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

image

4. 构建环境使用shell方式,然后执行ansible-playbook

image

#!/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
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 ];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 1
else
   cd /home/work/ansible_script && python wechat_alert.py @all $BUILD_USER "$module $release_version 已上线" $BUILD_URL $BUILD_LOG
fi
6. 上线后的通知(点击详情可以跳转到build url)

image

7. 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

目录
相关文章
|
1月前
|
安全 jenkins 持续交付
使用Jenkins自动化上网时间监测软件的发布流程
在当前互联网时代,人们对上网时间的监测变得愈发重要。为了满足这一需求,我们可以利用Jenkins来自动化发布上网时间监测软件,以确保高效、可靠地监测用户的在线活动。本文将介绍如何使用Jenkins搭建自动发布流程,并通过代码示例展示关键步骤。
224 0
|
1月前
|
存储 网络安全 数据安全/隐私保护
docker 安装gitlab,配置邮件,备份全流程
docker 安装gitlab,配置邮件,备份全流程
172 0
|
10天前
|
jenkins Java 持续交付
蓝易云 - 从零开始配置Jenkins与GitLab集成:一步步实现持续集成
以上就是从零开始配置Jenkins与GitLab集成的步骤,希望对你有所帮助。
29 2
|
1月前
|
jenkins 持续交付 API
上传gitlab代码后jenkins自动进行发布的配置
上传gitlab代码后jenkins自动进行发布的配置
34 1
|
1月前
|
监控 前端开发 jenkins
Jenkins在前端项目持续部署中的应用,介绍了Jenkins作为自动化部署工具的基本概念和流程
【4月更文挑战第29天】本文探讨了Jenkins在前端项目持续部署中的应用,介绍了Jenkins作为自动化部署工具的基本概念和流程。前端持续部署涉及代码提交、构建、测试和部署四个步骤。实现过程中需配置代码仓库、构建、测试和部署任务,安装相关插件并确保环境一致性。注意事项包括代码质量控制、环境一致性、监控预警和安全管理。通过Jenkins,可提升前端开发效率和质量,但需不断学习以应对技术发展。
|
1月前
|
存储 jenkins 持续交付
百度搜索:蓝易云【Docker+Rancher+Harbor+GitLab+Jenkins搭建CI/CD环境】
请注意,上述步骤仅为一个示例,实际搭建过程可能因环境和需求的不同而有所变化。因此,在实际操作中,请参考相应工具的官方文档和指南,以确保正确地配置和集成这些工具。
73 3
|
7月前
|
jenkins 应用服务中间件 持续交付
gitlab、jenkins、tomcat内存限制
gitlab、jenkins、tomcat内存限制
65 0
|
7月前
|
jenkins Java Linux
Jenkins打包Gitlab代码发布到远程Linux服务器
Jenkins打包Gitlab代码发布到远程Linux服务器
125 0
|
8月前
|
前端开发 Java jenkins
Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自动发布与基于tag版本回退
Jenkins+Gitlab+Nginx+SonarQube+Maven编译Java项目自动发布与基于tag版本回退
274 0
|
8月前
|
Java jenkins 应用服务中间件
Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)
Jenkins+Gitlab+Nginx+Maven编译Java项目自动发布与基于tag版本回退(重复构建问题已解决)