Ansible 在角色名称中使用变量

Ansible 在角色名称中使用变量,ansible,ansible-playbook,Ansible,Ansible Playbook,当我运行此剧本时: vars_prompt: - name: "dessert" prompt: "What dessert would you like?" private: no pre_tasks: - name: debug debug: msg="The variable {{ dessert }} was passed" roles: - role-{{ dessert }} 我得到以下输出: 可变冰淇淋通过了 错误“甜点”没有定义 难道不能

当我运行此剧本时:

vars_prompt:
  - name: "dessert"
    prompt: "What dessert would you like?"
    private: no

pre_tasks:
  - name: debug
    debug: msg="The variable {{ dessert }} was passed"

roles:
  - role-{{ dessert }}
我得到以下输出:

可变冰淇淋通过了
错误“甜点”没有定义


难道不能在playbook名称中使用变量吗?

好的,只有在Ansible解析playbook之前定义了的变量才能使用变量

例如,这将起作用:
ansible playbook-e role\u name=myrole

- hosts: localhost
  gather_facts: no
  roles:
    - role: "{{ role_name }}"

好的,这只有在Ansible解析剧本之前定义的变量才有可能

例如,这将起作用:
ansible playbook-e role\u name=myrole

- hosts: localhost
  gather_facts: no
  roles:
    - role: "{{ role_name }}"