天天看点

playbook管理配置文件

上一篇文章中我们成功的通过playbook安装了nginx,而生产环境中大多时候是需要管理配置文件的,例如修改配置文件然后进行重启服务,修改配置文件时可能会出现误修改的情况,所以我们还需要准备一个回滚的操作。至于安装软件包只是在初始化环境的时候用一下。下面我们来写个管理nginx配置文件的playbook。

1.创建相应的目录:

其中new为更新时用到的,old为回滚时用到的,files下面为nginx.conf和vhosts目录,handlers为重启nginx服务的命令。

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

2.把nginx.conf和vhost目录放到files目录下面,我这里是之前创建了vhost目录的,如果你没有创建过这个目录的话,就只需要拷贝nginx.conf即可:

3.编辑用于定义变量的文件:

4.编辑用于定义重新加载nginx服务的文件:

5.编辑用于执行核心任务的文件:

6.最后是定义总入口配置文件:

7.执行总入口配置文件:

8.然后更改一下配置文件的内容:

9.再次执行以下命令:

10.然后到客户端上查看一下nginx.conf文件,是否有我们加上的那一行内容:

以上的操作是针对于更新、修改配置文件的,下面来介绍一下回滚操作:

1.回滚对应的roles为old,所以首先把new目录下的所有文件同步到old目录下,这一步相当于是备份一份在old目录下,之后回滚就是从old目录下进行拷贝文件:

回滚操作就是把旧的配置覆盖,然后重新加载nginx服务, 每次改动nginx配置文件之前先备份到old里,对应目录为/etc/ansible/nginx_config/roles/old/files。如果你修改nginx配置文件之前没有备份old里,那么你就无法进行回滚操作了。

编辑总入口配置文件:

ok,完成以上操作后,我们来演示一个简单的回滚操作:

1.例如我现在要修改nginx配置文件,我在要这个文件的末尾增加一行注释,但是注意了,在增加这行注释之前需要先将配置文件同步到old目录下:

2.然后才增加这行注释:

3.执行update.yml文件向客户端更新文件:

4.然后到客户端上查看是否有我们增加的那一行注释:

5.确认之后,执行rollback.yml文件进行回滚操作:

6.然后到客户端上查看是否已恢复:

如上,可以看到,之前增加的那一行注释没有了。

所以,所谓的回滚就是在进行改动前,先备份一份,然后如果出现误修改了,就将之前备份的文件覆盖上去,这样就起到了一个回滚的效果。

本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/2067468,如需转载请自行联系原作者

继续阅读