理想情况下,我希望能够做到这样的事情:
- include: deregister_from_loadbalancer.yml delegate_to: loadbalancer
在这种方式下,我仍然可以访问主机的variables,但是负载均衡器主机正在进行操作。
我不能把它分解成单独的游戏,因为我一次只能从负载平衡器中取出机器。 分成多个戏剧意味着像这样:
- hosts: loadbalancers tasks: - include: remove_from_loadbalancer.yml vars: machine: "{{ item }}" with_items: "{{ groups['webservers'] }}" # at this point in the play I'm being fired for gross incompetence - hosts: webservers tasks: # ... update them - hosts: loadbalancers tasks: - include: add_to_loadbalancer.yml vars: machine: "{{ item }}" with_items: "{{ groups['webservers'] }}"
如果你发布的例子…
- include: deregister_from_loadbalancer.yml delegate_to: loadbalancer
…不起作用,你仍然可以这样做。 一般包括可以带参数,所以你可以把它写成:
- include: deregister_from_loadbalancer.yml delegate_host: loadbalancer
而在你的包括deregister_from_loadbalancer.yml你使用该委派所有的任务,然后:
- some: task delegate_to: "{{ delegate_host | default(omit) }}" - another: task delegate_to: "{{ delegate_host | default(omit) }}"