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,则这两个角色中的所有任务都将是 运行。如果仅指定标签 apacheapp,则只有适当角色中的任务是 运行。当然,如果没有指定标签,那么所有内容也是 运行。