理想情况下,我希望能够执行以下操作:
- include: deregister_from_loadbalancer.yml
delegate_to: loadbalancer
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我仍然可以访问我正在运行整个游戏的主机的变量,但是负载均衡器主机上正在执行操作。
我不能只是将其分解为单独的游戏,因为我一次将机器从负载平衡器轮换中取出。分成多个剧本意味着:
- 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'] }}"
Run Code Online (Sandbox Code Playgroud)
如果您发布的示例...
- include: deregister_from_loadbalancer.yml
delegate_to: loadbalancer
Run Code Online (Sandbox Code Playgroud)
...不起作用,你仍然可以这样做。包含一般可以带参数,所以你可以把它写成:
- include: deregister_from_loadbalancer.yml
delegate_host: loadbalancer
Run Code Online (Sandbox Code Playgroud)
在你的包含中,deregister_from_loadbalancer.yml
你使用那个 var 来委派你的所有任务:
- some: task
delegate_to: "{{ delegate_host | default(omit) }}"
- another: task
delegate_to: "{{ delegate_host | default(omit) }}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6084 次 |
最近记录: |