有没有办法将角色传递给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 :(得分:1)
您可以使用tags执行此操作。您可以单独标记每个角色,或使用相同的标记标记角色组,然后在命令行上指定一个或多个标记以指示您要运行的那些。
以下是标记角色的方式:
roles:
- { role: webserver, tags: [ 'web', 'apache' ] }
- { role: webapp, tags: [ 'web', 'app' ] }
在此示例中,如果在运行此playbook时指定--tags = web,则将运行这两个角色中的所有任务。如果仅指定了标记apache
或app
,则仅运行相应角色中的任务。当然,如果没有指定标签,那么一切都会运行。