playbook管理配置文件

前言:在生产环境中,经常需要更改多台机器配置文件,所以用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目录下面的配置文件一定是未修改之前的,这样才能保证回滚生效。

时间: 2024-08-30 11:28:21

playbook管理配置文件的相关文章

Ansible nginx管理配置文件

l生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下.下面我们来写个管理nginx配置文件的playbook lmkdir  -p /etc/ansible/nginx_config/roles/{new,old}/{files,handlers,vars,tasks} l其中new为更新时用到的,old为回滚时用到的,files下面为nginx.conf和vhosts目录,handlers为重启nginx服务的命令 l关于回滚,需要在执行playbook之前先备份一

【Python】Python用ConfigParser管理配置文件

Python也提供了一个管理配置文件的模块:ConfigParser,有了这个我们在写程序的时候就可以把一些配置信息单独写到配置文件中就可以了,如:数据库的连接信息等. 1.配置文件的格式 配置文件必须按照特定的格式:param.conf [mysqlDB] host = 127.0.0.1 port = 22 username = myname password = 123456 [global] myroot = /home/myname/project/ [input] inputDir

个人理解去搭建SSH三大框架spring管理配置文件(初学第一次接触SSH)

<bean id="dataSuorces" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="oracle.jdbc.OracleDirver"/>(oracle数据库) <property name="url"

最详细的用户和组管理配置文件及其命令使用详解

1. linux系统中用户管理是基于用户名和密码进行管理的,其中包括用户名.用户密码,用户组,用户组密码,四种数据分别保存在四个文件当中,系统在识别用户和组时都是以ID号码来识别的其中(用户id和组id范围都一样,但是分别存在不同的地方): root--->0 普通用户--->1-65535   其中普通用户又分为系统用户和可登陆用户 在rhel7之前的号码范围:1-499是系统用户,500以上为可登录用户 rhel7改成了1-1000是系统用户,1000以上为可登陆用户 2. 关于存放用户相

.Net Core下如何管理配置文件(转载)

原文地址:http://www.cnblogs.com/yaozhenfa/p/5408009.html 一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XXX一系列的类库提供,对应的开源地址为点击这里. 从当前开源的代码来看,在.net core下提供了以下类库给我们: Microsoft.Extensions.Configuration.Abst

Linux用户管理-配置文件分析

Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 配置文件: 用户信息文件:/etc/passwd 密码文件:/etc/shadow 用户组文件:/etc/gro

003-文本处理、排序、统计及bash特性、用户组权限、用户管理配置文件

l  1.文本处理命令 1.)cat(concatenate):连接并显示 tac:倒序显示文件 -n(number):显示行号 -E(show-ends):显示行结束符 2.)more.less:分屏显示 more: 向后翻,翻到尾部退出 less: 与打开man使用相同 3.)head:查看前n行 Tail:查看后n行 -n(lines):指定显示n行 tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容: 4.)cut:文本剪切 -d(delimiter):指定字段分隔

ansible实战与配置 Ⅱ

playbook管理配置文件(总结) - 将我们把一个服务部署到客户机上后(以nginx为例),我们经常需要更改一个配置文件,配置文件改好后我们还需要加载nginx的服务,这时就用到了管理配置文件,有时也会出现这样一个场景当我们更改了一个配置文件,发现改错了,需要回滚到之前的配置,并且对回滚的配置进行加载,这样我们应该怎么实现呢?也可以用playbook实现 - 如下是操作: 基本的目录创建与介绍 [[email protected] nginx_install]# mkdir  -p /etc

ansible管理nginx配置文件

#生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下.下面我们来写个管理nginx配置文件的playbook 一.创建相关目录 mkdir  -p /etc/ansible/nginx_config/roles/{new,old}/{files,handlers,vars,tasks} #其中new为更新时用到的,old为回滚时用到的,files下面为nginx.conf和vhosts目录,handlers为重启nginx服务的命令. #关于回滚,需要在执行playb