ansible 角色作为命令行参数
ansible roles as command line arg
有什么方法可以将角色作为命令行参数传递给 ansible-playbook cli 吗?
这个有效:
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"
但没有成功
感谢
您可以使用 tags 来执行此操作。您可以单独标记每个角色,或使用相同标记标记角色组,然后只需在命令行上指定一个或多个标记以指示您想要的标记 运行.
以下是标记角色的方式:
roles:
- { role: webserver, tags: [ 'web', 'apache' ] }
- { role: webapp, tags: [ 'web', 'app' ] }
在此示例中,如果您在 运行 运行此剧本时指定 --tags=web,则这两个角色中的所有任务都将是 运行。如果仅指定标签 apache
或 app
,则只有适当角色中的任务是 运行。当然,如果没有指定标签,那么所有内容也是 运行。
有什么方法可以将角色作为命令行参数传递给 ansible-playbook cli 吗?
这个有效:
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"
但没有成功
感谢
您可以使用 tags 来执行此操作。您可以单独标记每个角色,或使用相同标记标记角色组,然后只需在命令行上指定一个或多个标记以指示您想要的标记 运行.
以下是标记角色的方式:
roles:
- { role: webserver, tags: [ 'web', 'apache' ] }
- { role: webapp, tags: [ 'web', 'app' ] }
在此示例中,如果您在 运行 运行此剧本时指定 --tags=web,则这两个角色中的所有任务都将是 运行。如果仅指定标签 apache
或 app
,则只有适当角色中的任务是 运行。当然,如果没有指定标签,那么所有内容也是 运行。