playbook的使用
- 一、使用
-
- 1.把模块写入配置文件
- 2.执行playbook任务
- 3.创建用户:
- 二、循环
-
- 1.编辑while文件
- 2.执行
- 三、条件判断
-
- 1.编辑文件
- 2.执行
- 四、handlers
-
- 1.编辑文件
- 2.执行
一、使用
1.把模块写入配置文件
vi /etc/ansible/test.yml
---
- hosts: 192.168.2.20remote_user: roottasks:- name: test_playbook
shell: touch /tmp/playbook_test.txt
说明:第一行需要三个杠
hosts参数 指定了对哪些主机进行操作,如果是多台机器可以用逗号作为分隔,也可以使用主机组,在/etc/ansible/hosts里定义
user参数 指定了使用什么用户登录远程主机操作
tasks 指定了一个任务,其下面的name参数 同样是对任务的描述,在执行过程中会打印出来
shell 是ansible模块名字
2.执行playbook任务
进入/etc/ansible/目录下执行
ansible-playbook test.yml
3.创建用户:
vi /etc/ansible/create_user.yml
---
- name: create_userhosts: 192.168.2.20user: rootgather_facts: falsevars:- user: "test"tasks:- name: create useruser: name="{
{ user }}"
**说明:**gather_facts参数指定了在以下任务部分执行前,是否先执行setup模块获取主机相关信息,这在后面的task会使用到setup获取的信息时用到;
vars参数,指定了变量,这里指字一个user变量,其值为test ,需要注意的是,变量值一定要用引号引住;
user提定了调用user模块,name是user模块里的一个参数,而增加的用户名字调用了上面user变量的值。
二、循环
1.编辑while文件
---
- hosts: testhostuser: roottasks:- name: change mode for filesfile: path=/tmp/{
{
item }} mode=600with_items:- 1.txt- 2.txt- 3.txt
说明: with_items是循环的对象
2.执行
要先在/tmp创建文件1.txt 2.txt 3.txt
ansible-playbook while.yml
三、条件判断
1.编辑文件
vi /etc/ansible/when.yml
---
- hosts: testhostuser: rootgather_facts: Truetasks:- name: use whenshell: touch /tmp/when.txtwhen: ansible_eno16777728.ipv4.address == "192.168.200.20"
说明:ansible anisble-02 -m setup 可以查看到所有的facter信息
用自己的网卡名字
2.执行
ansible-playbook when.yml
四、handlers
1.编辑文件
vi handlers.yml
---
- name: handlers testhosts: 192.168.2.20user: roottasks:- name: copy filecopy: src=/etc/passwd dest=/tmp/aaa.txtnotify: test handlershandlers:- name: test handlersshell: echo "111111" >> /tmp/aaa.txt
**说明:**只有copy模块真正执行后,才会去调用下面的handlers相关的操作。
2.执行
ansible-playbook handlers.yml
完成