所以我有一组nginx服务器:
[nginx_internal_servers]
n01.local
n02.local
n03.local我有个预部署任务要运行。我是在serial:1模式下运行的,我只想让这个预部署任务在除我之外的所有人身上运行。
目前,我的任务如下所示,它完美地运行在所有nginx服务器上:
pre_tasks:
- name: Take service out of nginx upstream pools
local_action: command {{ playbook_dir }}/scripts/nginx-upstream-management.sh -s {{ item[0] }} -r {{ item[2] }} -g {{ item[1] }}
with_nested:
- groups['nginx_internal_servers']
- services_endpoints.keys()
- ansible_all_ipv4_addresses|last如何将当前节点从列表groups['nginx_internal_servers']中排除,有什么想法吗?
发布于 2015-05-18 22:24:09
明白了!使用时间:)
pre_tasks:
- name: Take service out of nginx upstream pools
local_action: command {{ playbook_dir }}/scripts/nginx-upstream-management.sh -s {{ item[0] }} -r {{ item[2] }} -g {{ item[1] }}
with_nested:
- groups['nginx_internal_servers']
- services_endpoints.keys()
- ansible_all_ipv4_addresses|last
when: item[0] != inventory_hostname发布于 2015-06-02 17:47:41
通用任务版本
- name: run on all but the first host in a play
some_module: some_param=some_value
when: inventory_hostname != play_hosts[0]https://serverfault.com/questions/692883
复制相似问题