码迷,mamicode.com
首页 > 其他好文 > 详细

playbook管理配置文件

时间:2017-12-16 13:18:45      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:file   date   role   copy   col   文件的   upd   local   update   

前言:在生产环境中,经常需要更改多台机器配置文件,所以用playbook来实现nginx配置文件的管理

一、更新nginx配置文件并重新加载

1. 创建对应目录结构

mkdir  -p /etc/ansible/nginx_config/roles/{new,old}/{files,handlers,vars,tasks}

PS:new用于配置文件更新,old用户配置文件回滚,files下面为nginx.conf和vhosts目录,handlers为重启nginx服务的命令

 

2.把nginx.conf和vhosts目录放到files目录下面

cd /usr/local/nginx/conf
cp -r nginx.conf vhosts /etc/ansible/nginx_config/roles/new/files/

 

3.定义变量

cd /etc/ansible/nginx_config
vim roles/new/vars/main.yml  //内容如下:
nginx_basedir: /usr/local/nginx

 

4.在handlers中定义重新加载nginx服务

vim roles/new/handlers/main.yml   //内容如下:

- name: restart nginx
  shell: /etc/init.d/nginx reload

 

5. 定义配置文件,实现nginx配置文件的更新

vim roles/new/tasks/main.yml   //内容如下:

- name: copy conf file
  copy: src={{ item.src }} dest={{ nginx_basedir }}/{{ item.dest }} backup=yes owner=root group=root mode=0644
  with_items:
    - { src: nginx.conf, dest: conf/nginx.conf }
    - { src: vhosts, dest: conf/ }
  notify: restart nginx

 

6. 定义一个入口配置文件

vim /etc/ansible/nginx_config/update.yml //内容如下:

---
- hosts: 127.0.0.1
  user: root
  roles:
    - new

 

7. 执行nginx配置文件更新

ansible-playbook /etc/ansible/nginx_config/update.yml

PS:执行之前,一定要先把files目录下面未修改的配置文件先复制到/etc/ansible/nginx_config/roles/old/files目录下面。

 

二、恢复nginx配置文件并重新加载

1. 恢复其实也是更新,相当于把旧配置文件更新到目标机器上面

rsync -av /etc/ansible/nginx_config/roles/new/ /etc/ansible/nginx_config/roles/old/

 

2. 定义一个入口配置文件

vim /etc/ansible/nginx_config/rollback.yml //内容如下:

---
- hosts: 127.0.0.1
  user: root
  roles:
    - old

PS: files目录下面的配置文件一定是未修改之前的,这样才能保证回滚生效。

 

playbook管理配置文件

标签:file   date   role   copy   col   文件的   upd   local   update   

原文地址:http://www.cnblogs.com/654wangzai321/p/8046044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!