我将变量 ACTION 传递给 site.yml,如下所示。
ansible-playbook -v -i sslhost.txt -e "APP_NAME=ssl-perf ACTION=renewal, gen_cert" site.yml
我的 site.yml 具有称为“经理”的 ansible 角色,我将 ACTION 变量作为标签传递给该角色。见下文。
more site.yml
- hosts: "{{APP_NAME}}"
user: "{{USER}}"
roles:
- { role: manager, APPLICATION_NAME: "{{ APP_NAME }}", tags: [ '{{ ACTION }}' ] }
manager 角色的 tasks/main.yml 看起来像这样
more manager/tasks/main.yml
---
# tasks file for manager
- include: manager_pull.yml
tags: renewal
- include: manager_gen.yml
tags: gen_request
- include: manager_gencert.yml
tags: gen_cert
- include: manager_push.yml
tags: install
我期望只有 manager_pull.yml 和 manager_gencert.yml 包含在角色中,但输出显示经理角色中的所有包含都被包含/调用。
我的ansible版本是:2.1.0.0
你能解释一下为什么我不能将 ACTION 变量作为标签传递给 ansible 角色吗?
或者,任何人都可以告诉我是否以及如何将标签而不是 ACTION 变量传递给 site.yml 并让它工作?