ansible的兩篇博客,本來是打算合二為一的,發現只用一篇寫,嗯,好鬼長。。。。 一向秉承簡單為美的我於是忍痛割愛,一分為二了
ansible實現升級發布、回滾功能
1、應用場景
在實際生產環境中,每天都會更改很多次配置文件,要批量地重啟服務 , how ???
機器少可以手動改,再reload一下


5、定義核心任務
vim tasks/main.yml
6、定義總的入口文件 ——》 主機,用戶,roles


(2)生效條件:主配置文件打開
include vhosts/*.conf;
(3)執行 ——》 已准備好升級發布
ansible-playbook update.yml ——》 在 nginx_conf 下執行該命令

(4)測試1 ——》 純啟動

(5)測試2 ——》 測restart

(b)ansible-playbook update.yml

(c)web3: cat /usr/local/nginx/conf/vhosts/1.conf
#######################################
(iii)完成回滾功能
web1 做備份
1、cd /etc/ansible/nginx_config/roles
2、rsync -av new/ old/
3、rsync -av new/files/ old/files/
目的:更改 new/files 文件前,先拷貝到 old/files
回滾的時候,就是把 old/files/ 里面的配置再發布一次
舊的還原過來,再重新加載或重啟服務
4、進入 nginx_config 目錄下
(1)cp update.yml backup.yml
(2)vim backup.yml
5、測試
(1)編輯 roles/new/files/vhosts/1.conf
再加多一行
(2)發布
ansible-playbook update.yml
說明:修改完后nginx重啟了
但發現線上服務沒有生效,或者出現異常
需要把之前old/files下的配置文件覆蓋一下,實現回滾
(3)做回滾前,先驗明下(剛剛發布時做的)
(4)回滾來了
ansible-playbook backup.yml
(5)web3現在看只有未發布前的2行,而不是3行了
cat /usr/local/nginx/conf/vhosts/1.conf