Ansible包括基于条件的任务文件

时间:2016-06-28 10:19:34

标签: ansible ansible-playbook ansible-2.x

刚进入ansible并想知道您是否可以根据main.yml中传递的变量在--extra-vars任务中添加文件?

实施例

main.yml - 来自角色/任务

# Upload latest json to s3
- include: upload-code.yml

playbook.yml - 来自剧本

- name: Launch cloudformation stack
  hosts: 127.0.0.1
  connection: local
  roles:
    - launch.cloudformation

正如您所看到的,playbook.yml包含rolemain.yml包含upload-code.yml

如何根据下面的条件包含upload-code.yml

ansible-playbook playbook.yml --extra-vars "include=upload"

1 个答案:

答案 0 :(得分:2)

您可以通过将when条件应用于包含任务来完成此操作。

- include: upload-code.yml
  when:
    - include is defined
    - include == "upload"

或者,如果您有多个包含文件,也可以使用include作为名称的一部分。

- include: "{{ include }}-code.yml"
  when: include is defined
相关问题