ansible delegate_to 任务委派
任务委派就是 在playbook中指定 某任务只在指定的主机上执行
比如
我要在192.168.1.1 服务器添加一个hosts 记录 “1.1.1.1 www.abc.com” ,同时也要把这个hosts 记录写到192.168.1.2
ansible hosts 192.168.1.1 文件内容
[all]
192.168.1.1
ansible task 文件内容(192.168.1.1.yml):
name: add host record
shell: “echo “1.1.1.1 www.abc.com” >> /etc/hosts”name: add host record
shell: “echo “1.1.1.1 www.abc.com” >> /etc/hosts”
delegate_to: 192.168.1.2添加上面这一行,就可以了
如果是委派给localhost 请使用local_action
如下结果一样
tasks:
- name: Get config
get_url: dest=configs/ force=yes url=http:///diagnostic/config
delegate_to: localhost
当你委派给本机的时候,还可以使用更快捷的方法local_action,代码如下:
- name: Fetch configuration from all webservers
hosts: webservers
tasks:
- name: Get config
local_action: get_url dest=configs/.cfg url=http:///diagnostic/config