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 实践
观看地址:视频教程