我有一本Ansible剧本myPlayBook.yml
。它有两个剧本,每个剧本都有一个或多个任务。
我使用以下命令来运行我的剧本:
ansible-playbook myPlayBook.yml
一切正常,我的任务成功执行。现在,在第一次运行后,我想从第一次播放中再次运行我的剧本(类似于第一次运行,但会自动运行)。有办法吗?
(我发现可以完成特定任务或与include
或include_tasks
一起玩,但是对于剧本呢?)
答案 0 :(得分:2)
现在,第一次运行后,我想再次从 第一次播放(类似于第一次播放,但会自动播放)。
您可以将任务作为角色来构成,并通过include_role从剧本中多次执行:
- name: 'Include role'
include_role:
name: '{{ app_role}}'
- debug:
msg: "{{ inventory_hostname }}"
通过以下由path任务组成的one roles/inventory_role
创建角色。在剧本中,您可以执行角色,只需多次调用即可:
- name: 'Include role inventory_role'
include_role:
name: 'inventory_role'
- name: 'Include role inventory_role'
include_role:
name: 'inventory_role'
或者您可以使用类似这样的内容:
- { role: 'inventory_role' }
- { role: 'inventory_role' }
注意:
Ansible仅允许角色执行一次,即使已定义 多次(如果角色上定义的参数不是 每个定义都不同。
有关更多详细信息,请参见:Role Duplication and Execution。
定期执行Ansible Playbook
Ansible Tower
的作业具有预定的发射类型。