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 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." 構建環境添加
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
上線後的通知( 點擊詳情可以跳轉到 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 實踐
觀看地址:視頻教程
Jenkins + Gitlab + Ansible--playbook 代碼上線流程(文末有免費視頻)