如何将动态角色传递给 Ansible 剧本

How to pass dynamic roles to Ansible playbook

定义带有角色的 Ansible 剧本的标准方法是:

--- 
- hosts: webservers 
  roles:
    - common 
    - webservers

我想为 Ansible 角色传递一个命令行变量。我的意思是说应该有一个单一的 Ansible 角色,它是一个变量,我应该能够从外部传递角色选择(公共或网络服务器)。

请让我知道我们是否以及如何实现这一目标:

roles:
  - {{ choice }}

play.yml

中使用include_role
- hosts: webservers
  tasks:
    - include_role:
        name: "{{ choice }}"

和运行它

# ansible-playbook -e "choice=common" play.yml