2015-10-04 29 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

相关问题