ansible 任务委派功能
delegate_to
run_noce: true 在一个主机上面只执行一次一个任务. ,如果没有这个参数的话,每个playbook中的组的主机都会执行一次。
我们有的时候有这种需求,在运行一个playbook的时候里面的task是分配到一组服务器中去分别执行的,但是如果我们想要在其中某一个task执行的时候是在另外一个不属于这个组里面的机器
中去执行。这个时候就需要用到ansible的委派功能。 delegate_to
比如:
1.a b c d e 5个机器是一个组local
我需要在a b c d e 这四个机器中创建一个/root/test目录 ,然后在这个目录下分别建一个以各自主机名为名字的文件,在创建test目录的同时要在ansible-04机器中的/root/a.txt文件中写入一个1
[python@heaven-00 0130]$ cat test20.yml
---
- hosts: local
tasks:
- name: mkdir document /root/test
file:
path: /root/test
state: directory
owner: root
mode: "755"
- name: jiluyi
shell: echo "1" >> /root/a.txt
delegate_to: ansible-04
- name: toush file
file:
path: /root/test/{{ ansible_hostname }}
state: touch
mode: "755"
owner: root