Yaml代码重复

时间:2018-01-12 14:38:41

标签: ansible yaml

我在代码中重复了几个代码块,如下所示:

 - name: Retrieve VM information
  os_server_facts:
    validate_certs: False ### From this line
    api_timeout: 300
    timeout: 600
    auth:
      auth_url: "{{ cloudstack_auth_url }}"
      username: "{{ cloudstack_login }}"
      password: "{{ cloudstack_password }}"
      project_name: "{{ cloudstack_project }}"
    auth_type: v2password ### To this line
    server: "{{ vm_hostname }}" 

在同一个文件中,我可以使用anchors,但我不知道如何将这段代码分解为不同的文件,任何想法?

1 个答案:

答案 0 :(得分:1)

如果您在许多地方使用了某些任务,则可以使用include从常用的.yml文件中将这些任务包含在您的剧本中。

- include: ../common/tasks/mytasks.yml

然而! Ansible真的希望你使用角色来进行这种类型的常见任务,我会考虑将这些角色放在一个非常简单的角色中,并在你的play_role游戏中使用它。这样做真的是一种更好,更畅销的方式。

- name: Include my tasks as a role
  include_role:
    name: reusedTasks
    tasks_from: simple_role