ansible+jenkins+svn實現生產環境自動發布
阿新 • • 發佈:2018-07-02
檢查 AC ole CA linux下 roles AD ipv root ansible+jenkins實戰
1、部分機器信息:
2、遠程執行用戶:(ansible機器並沒有開通外網哦)
3、ansible用到的兩個重要角色
/etc/ansible/hosts #hosts文件定義主機與和執行權限
/etc/ansible/roles #roles是任務集合,可在roles下面新建多模塊,如tomcat,jdk、yum源,防火墻等,分角色方便管理且靈活
##Jenkins配置
1、新建-自由分格項目
項目名稱:lbbs
Svn配置:(這個svn地址也是內網哦)
地址:svn://172.17.103.10:3391/lbproject/bs/
###構建:
1)、增加構建後的操作-->Invoke Ansible Playbook
Playbook path:/etc/ansible/roles/lbbs/lbbs.yml (備註:該路徑為ansible的roles)
Inventory:選擇File or host list File path or comma separated host list:/etc/ansible/hosts (備註:該路徑為ansible的hosts文件)
Hostsubset:lbbs (備註:此處為hosts文件中ip或者定義的主機組都行
[root@lbzpf bs]# cat /etc/ansible/roles/lbbs/tasks/main.yml - name: copy package to 103.111 copy: src={{ src_path }}/103.111/ne-ops-1.0.0.war dest={{ dest_path }} backup=yes #開啟遠程備份,在遠程主機/ane/update下備份 when: "ansible_nodename == ‘lb_bs1‘ and ansible_eth0.ipv4.address == ‘172.17.103.111‘" #條件判斷 - name: copy package to 103.32 copy: src={{ src_path }}/103.32/ne-ops-1.0.0.war dest={{ dest_path }} backup=yes when: "ansible_nodename == ‘bs-web04‘ and ansible_eth0.ipv4.address == ‘172.17.103.32‘" 備註:加when條件判斷原因是:war包裏有個文件引用了當前的主機ip,沒辦法,只能這樣了 [root@lbzpf bs]# cat /etc/ansible/roles/lbbs/vars/main.yml #vars定義了上面用到的兩個變量路徑 src_path: /var/lib/jenkins/workspace/lbbs #源路徑 dest_path: /ane/update #目標路徑
2)、增加構建後的操作-->(Invoke Ansible Ad-Hoc Command)
###發布
1、Jenkins中點擊立即構建,或者指定定時任務,
2、編寫計劃任務發布
發布時間一般是固定的,所以可以指定定時任務(通linux下的crond),讓其自動構建操作
檢查執行結果
ansible+jenkins+svn實現生產環境自動發布