2015-10-04 28 views
0

是否有任何方法將角色作爲命令行arg傳遞給ansible-playbook cli?作爲命令行的角色arg

這工作:

roles: 
    - common 
    - web 

當我運行:

ansible-playbook -i hosts site.yml 

我想:

roles: 
     - $role1 
     - $role2 

然後跑:

ansible-playbook -i hosts site.yml --extra-vars="roles=common" 

ansible-playbook -i hosts site.yml --extra-vars "roles=common" 

,但沒有成功

感謝

回答

0

您可以使用tags做到這一點。您可以單獨標記每個角色,也可以標記具有相同標記的角色組,然後只需在命令行中指定一個或多個標記以指示要運行哪些標記。

這裏是你如何標記一個角色:

roles: 
    - { role: webserver, tags: [ 'web', 'apache' ] } 
    - { role: webapp, tags: [ 'web', 'app' ] } 

在這個例子中,如果您在這兩個角色中運行這個劇本時,則所有的任務將運行指定--tags =網絡。如果只指定標籤apacheapp,則只運行適當角色中的任務。當然,如果沒有指定標籤,那麼一切都運行。

+0

謝謝布魯斯P – Anan

相關問題