自动化运维之Ansible详解(4)

关于回滚,需要在执行playbook之前备份一下旧的配置,所以对于老配置文件的管理一定要严格,千万不要随便去修改线上机器的配置,并且要保证new/files下面的配置和线上的配置一致

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

cd /usr/local/nginx/conf/

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

详细步骤:

1.级联创建所需要的目录:

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

2.将Nginx的配置文件拷贝到指定目录:

cp /usr/local/nginx/conf/nginx.conf /etc/ansible/nginx_config/roles/new/files/

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

3.定义vars:

vim /etc/ansible/nginx_config/roles/new/vars/main.yml

nginx_basedir: /usr/local/nginx

4.定义handlers:

vim /etc/ansible/nginx_config/roles/new/handlers/main.yml

- name: restart nginx

 shell: /etc/init.d/nginx reload

5.定义tasks:

vim /etc/ansible/nginx_config/roles/new/tasks/main.yml

- name: copy conf file

 copy: src=https://www.linuxidc.com/Linux/2017-03/{{ item.src }} dest=https://www.linuxidc.com/Linux/2017-03/{{ 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.定义一个update程序的入口文件:

vim /etc/ansible/nginx_config/update.yml

---

- hosts: 192.168.147.138

 user: root

 roles:

   - new

7.执行更新:ansible-playbook /etc/ansible/nginx_config/update.yml

上面实现了更新,即在服务端修改配置文件,执行playbook即可同步到客户端。

回滚的实现更简单:在每次更新之前,先将new/目录下的配置文件备份到old/目录下,定义一个rollback程序的入口文件:

vim /etc/ansible/nginx_config/rollback.yml

---

- hosts:  192.168.147.138

 user: root

 roles:

   - old

如果更新失败,可以执行回滚:ansible-playbook /etc/ansible/nginx_config/rollback.yml

ansible样例库:

git clone git://github.com/dl528888/ansible-examples.git

git命令需要yum安装一下:yum install -y git

下面关于Ansible的文章您也可能喜欢,不妨参考下:

使用Ansible批量管理远程服务器 

在 CentOS 7 中安装并使用自动化工具 Ansible 

CentOS 7上搭建Jenkins+Ansible服务 

Linux下源码编译安装Ansible及排错记录 

Ansible基础—安装与常用模块 

Ansible配置及使用 

自动化运维工具之 Ansible 介绍及安装使用 

Ansible入门notify和handlers 

CentOS 6.5安装自动化工具Ansible和图形化工具Tower 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ce60ef5658922091167275395d1b1484.html