ansible运维自动化工具
例如nginx: (1)先把nginx.conf改成nginx.j2(以.j2结尾就行)(2)然后在nginx.j2里面设置一些变量:
worker_processes{{ ansible_processor_vcpus }};CPU数量
listen {{ nginxport }}; 监听端口变量
(3)然后在nginx.yml中配置:(变量可以定义在里面也可以直接-e指定变量)
---
- hosts: web(主机组)
remote_user: root (远程执行命令的用户)
vars: (定义变量)
- rpmname: nginx (rpmname变量是nginx)
nginxport: 8899 (nginxport变量时8899)
tasks: (任务段)
- name: yum install {{ rpmname }}
yum: name={{ rpmname }} state=latest (调用yum模块)
- name: copy {{ rpmname }}.conf
template: src=/app/{{ rpmname }}.j2 dest=/etc/nginx/{{ rpmname }}.conf backup=yes (调用模板,这里不能用copy)
notify:>
tags:> - name: start {{ rpmname }}
service: name={{ rpmname }} state=started (调用service模块)
tags: start{{ rpmname }} (定义标签)
handlers: (与前面的notify一样)
- name:> service: name={{ rpmname }} state=restarted(触动notify时候调用service模块)
(4)执行命令:ansible-playbook nginx.yml
页:
[1]