ansible实践4- 管理配置文件

生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下。下面我们来写个管理nginx配置文件的playbook

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

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

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

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

cd /usr/local/nginx/conf/

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

vim /etc/ansible/nginx_config/roles/new/vars/main.yml //定义变量

nginx_basedir: /usr/local/nginx

vim /etc/ansible/nginx_config/roles/new/handlers/main.yml  //定义重新加载nginx服务

- name: restart nginx

shell: /etc/init.d/nginx reload

vim /etc/ansible/nginx_config/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

vim /etc/ansible/nginx_config/update.yml // 最后是定义总入口配置

---

- hosts: testhost

user: root

roles:

- new

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

而回滚的backup.yml对应的roles为old

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

回滚操作就是把旧的配置覆盖,然后重新加载nginx服务

时间: 2024-08-28 08:55:11

ansible实践4- 管理配置文件的相关文章

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之前先备份一

基于Ansible实现批量管理

基于Ansible实现批量管理 Ansible提供一种最简单的方式用于发布.管理和编排计算机系统的工具,可在数分钟内搞定,Ansible本身是一种python程序,只需要配置一个节点,只要ssh连接ok 被控制节点不需要安装任何工具,就可以实现远程连接执行任何操作支持多节点发布.远程任务执行. 如果想熟练使用Ansible 还需了解Ansible的模块机制,下面我们来介绍ansible的日常使用,从而达到我们批量管理的目的 安装ansible 只需要将管理节点安装ansible ,被管理节点不需

Ansible批量自动化管理工具

批量管理服务器的工具,无需部署代理,通过ssh进行管理,是python写的 ansible 常用模块 : (1)shell命令模块执行命令 (2)copy模块批量下发文件或文件夹 (3)script模块批量运行脚本  Python3与ansible的安装 使用源码安装Python3.5 #安装支持包 yum -y install lrzsz vim net-tools gcc gcc-c++ ncurses ncurses-devel unzip zlib-devel zlib openssl-

自动化运维Ansible实践(一)

第 1 章 Ansible概述 1.1 IT自动化的好处1.1.1 团队影响? 节省时间,提高工作效率? 消除重复任务? 更少的错误风险? 改善协作和工作满意度1.1.2 企业影响? 克服复杂性? 更多创新资源? 加强问责制和合规性1.2 Ansible是什么Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新.Ansible适用于管理企业IT基础设施,从具有少数主机的小规模到数千个实例的企业环境.Ansible也是一种简单的自动化语言,可

【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

运维工具Ansible—主机分组管理(hosts)

ansible主机分组管理: ansible配置 说明:关于ansible hosts文件中可用参数: ansible_ssh_port=22                  #远程主机登陆端口 ansible_ssh_user=root                #远程主机登陆用户名 ansible_ssh_pass=chekir              #远程主机登陆用户名的密码 ansible_ssh_private_key_file=/etc/ansible/hosts   #指

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

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

Linux 运维工作中的经典应用ansible(批量管理)

一 Ansible自动化运维工具 Python 在运维工作中的经典应用 ansible(批量管理操作) 1.安装ansible(需要bese epel 2种源) wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum

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.co