#1
- hosts: test
user: root
tasks:
- name: create nginx group
group: name=nginx system=yes gid=208
- name: create nginx user
user: name=nginx system=yes uid=208 group=nginx
- hosts: test
user: root
tasks:
- name: copy file to test
copy: src=/etc/inittab dest=/tmp/inittab.ans
handlers 处理器 由某事件触发执行的操作
#2
- hosts: test
user: root
tasks:
- name: install httpd package
yum: name=httpd state=present
- name: install configuation file for httpd
copy: src=/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf
- name: start httpd service
service: enabled=true name=httpd state=started
#3 修改文件,才会触发重启
- hosts: test
user: root
tasks:
- name: install httpd
yum: name=httpd state=present
- name: install configuation file for httpd
copy: src=/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf
notify:
- restart httpd
- name: start httpd service
service: enabled=true name=httpd state=started
handlers:
- name: restart httpd
service: name=httpd state=restarted
#4 playbook 使用变量
- hosts: test
user: root
vars:
- package: httpd
- service: httpd
tasks:
- name: install httpd
yum: name={{ package }} state=present
- name: install configuation file for httpd
copy: src=/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf
notify:
- restart httpd
- name: start httpd service
service: enabled=true name={{ service }} state=started
handlers:
- name: restart httpd
service: name=httpd state=restarted
#5 when 条件测试
- hosts: test
user: root
vars:
- user: user100
tasks:
- name: create {{ user }} user
user: name={{ user }}
when: ansible_hostname == "mongo_slave1"
- hosts: test
user: root
tasks:
- name: copy file
copy: content={{ ansible_os_family }} dest=/tmp/vars.test
- hosts: test
user: root
tasks:
- name: copy file
copy: content='{{ ansible_os_family }},{{ httpd_port }}' dest=/tmp/vars.test
#迭代循环
- hosts: test
tasks:
- name: "install httpd"
yum : name={{ item }} state=present
with_items:
- httpd
- httpd-devel
- name: "chkconfig"
service: name=httpd state=started enabled=yes
- hosts: test
tasks:
- name: create user
user: name={{ item }}
with_items:
- ysl01
- ysl02
- ysl03
- ysl04
- ysl05
- ysl06
#template 模版
#[test]
#192.168.2.100 httpd_port=100 maxClient=1000
#192.168.2.106 httpd_port=106 maxClient=2000
- hosts: test
user: root
tasks:
- name: install http
yum: name=httpd state=present
- name: copy file
template: src=/root/templates/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
notify:
- restart httpd
- name: restart httpd
service: name=httpd state=started
handlers:
- name: restart httpd
service: name=httpd state=restarted
# tags 在playbook可以为某个任务定义一个标签, 在执行此playbook时,通过为ansible-playbook命令使用--tags选项能实现仅运行指定的tasks 而非所有
- hosts: test
remote_user: root
vars:
- package: httpd
- service: httpd
tasks:
- name: install httpd package
yum: name={{ package }} state=latest
- name: install configuation file for httpd
template: src=/root/templates/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
tags:
- conf
notify:
- restart httpd
- name: start httpd service
service: enabled=true name={{ service }} state=started
handless:
- name: restart httpd
service: name=httpd start=restarted
- name: install configuation file for httpd
template: src=/root/templates/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf
tags:
- conf