24.29/24.30 playbook管理配置文件
写一个管理Nginx配置文件的playbook,当有配置文件更新了可以远程管理其他机器的配置文件
准备工作
创建对应的目录框架
1 | [root@kun01 ~]# cd /etc/ansible/ |
new
为更新目录,old
为回滚目录,说白了就一个备份目录,files
目录下放配置文件nginx.conf和vhosts,handlers
目录用于重启nginx服务
new目录
1.把nginx.conf和vhosts拷贝到files目录下
1 | [root@kun01 ~]# cd /usr/local/nginx/conf/ |
2.创建定义变量的yml文件
1 | [root@kun01 roles]# cd /etc/ansible/nginx_config/roles/new/ ##回去new目录下 |
3.创建重新加载Nginx服务的yml文件
1 | [root@kun01 new]# vim handlers/main.yml |
4.创建拷贝配置文件的yml文件
1 | [root@kun01 new]# vim tasks/main.yml |
{{ item.src }} 表示循环体里面的src
{{ item.dest }} 表示循环体里面的dest
{{ nginx_basedir }} 表示变量 指/usr/local/nginx
更新总入口
1 | [root@kun01 new]# cd ../.. |
执行更新远程机器的yml
1 | [root@kun01 nginx_config]# ansible-playbook update.yml |
old目录
一般每次把配置文件更新完后都要把最新的配置文件拷贝一份到old目录下的files中,用于回滚
把new目录下的文件拷贝到old目录下
1 | [root@kun01 roles]# rsync -av new/ old/ |
此操作每次都要在更新配置文件后做
回滚总入口
1 | [root@kun01 nginx_config]# vim rollback.yml |
执行回滚yml
1 | [root@kun01 nginx_config]# ansible-playbook rollback.yml |
在看看总框架
1 | [root@kun01 nginx_config]# tree |