我将变量ACTION传递给site.yml,如下所示。
ansible-playbook -v -i sslhost.txt -e "APP_NAME=ssl-perf ACTION=renewal, gen_cert" site.yml
我的site.yml有一个名为" manager"的ansible角色。我将ACTION变量作为标签传递给它。见下文。
more site.yml
- hosts: "{{APP_NAME}}"
user: "{{USER}}"
roles:
- { role: manager, APPLICATION_NAME: "{{ APP_NAME }}", tags: [ '{{ ACTION }}' ] }
经理角色的任务/ 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,并将其用于工作?
答案 0 :(得分:0)
您无法将标签作为参数传递到Playbook中的角色。您在这里有效做的是为您的经理角色添加另一个标记(renewal, gen_cert
)。
不使用变量定义标记,而是使用--tags
标记。
ansible-playbook -v -i sslhost.txt -e "APP_NAME=ssl-perf" --tags=renewal,gen_cert site.yml