我在代码中重复了几个代码块,如下所示:
- 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,但我不知道如何将这段代码分解为不同的文件,任何想法?
答案 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