定期执行Ansible Playbook

时间:2019-01-11 22:01:22

标签: ansible

我有一本Ansible剧本myPlayBook.yml。它有两个剧本,每个剧本都有一个或多个任务。

我使用以下命令来运行我的剧本:

ansible-playbook myPlayBook.yml

一切正常,我的任务成功执行。现在,在第一次运行后,我想从第一次播放中再次运行我的剧本(类似于第一次运行,但会自动运行)。有办法吗?

(我发现可以完成特定任务或与includeinclude_tasks一起玩,但是对于剧本呢?)

1 个答案:

答案 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的作业具有预定的发射类型。