在我的Ansible设置中,我使用了一些只能运行一次的API调用。但是,如何确保命令仅运行一次? 我已经尝试了以下代码,但无法正常工作:
name: network config | Create MAAS default space
block:
- name: Create Space
command: 'maas {{ maas__profile }} spaces create name=default'
register: default_space_created_status
- name: Set status
set_fact:
default_space_created_status
when: not default_space_created_status.changed
我也尝试过使用run_once标志,但这也不起作用。该命令可以多次运行。
编辑:使用“ ansible_hostname == ansible_play_hosts [0]”的建议解决方案,我也无法使其正常工作。
答案 0 :(得分:0)
directive run_once
可能不是您所需要的,因为它将所有结果和事实应用于同一批中的所有主机。
尝试using ansible_hostname when: ansible_hostname == ansible_play_hosts[0]
(假设您首先收集了事实,gather_facts: True
)
name: network config | Create MAAS default space
block:
- name: Create Space
command: 'maas {{ maas__profile }} spaces create name=default'
register: default_space_created_status
- name: Set status
set_fact:
default_space_created_status
when: ansible_hostname == ansible_play_hosts[0]