0
我將變量ACTION傳遞給site.yml,如下所示。將變量作爲標籤傳遞給角色不起作用
ansible-playbook -v -i sslhost.txt -e "APP_NAME=ssl-perf ACTION=renewal, gen_cert" site.yml
我的site.yml有一個叫做「經理」的角色,我將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
能否請您解釋一下爲什麼我不能夠傳球動作變量作爲標籤ansible作用?
另外任何人也可以告訴我是否以及如何將標籤而不是ACTION變量傳遞給site.yml並讓它工作?
我想你的命令,但它仍然是包括經理/任務/ main.yml而不是僅僅兩個所有YMLs。我必須做出什麼樣的改變才能使其發揮作用?我如何將-tags = renewal,gencert傳遞給名爲manager/task/main.yml的角色? – shifahim
您是否仍將具有'ACTION'變量的標籤添加到您的Playbook中的經理角色?是否有任何標籤附加到manager_pull.yml,manager_gen.yml,manager_gencert.yml或manager_push.yml中的任務? – kfreezy
你是對的。隨着你的建議命令,我不得不從site.yml刪除標籤[],使其工作。問題解決之後,這就是現在在site.yml中角色的樣子 - {role:manager,APPLICATION_NAME:「{{APP_NAME}}」} – shifahim