Ansible 如何在剧本中设置变量';s`name`参数?

Ansible 如何在剧本中设置变量';s`name`参数?,ansible,ansible-2.x,Ansible,Ansible 2.x,我有以下剧本,正在努力理解如何将应用程序\u name变量传递给它: --- - name: Initial configuration for a {{ application_name }} server hosts: all vars: - update_apt_cache: yes vars_files: - roles/base/defaults/main.yml tasks: - debug: msg="reading from group

我有以下剧本,正在努力理解如何将
应用程序\u name
变量传递给它:

---

- name: Initial configuration for a {{ application_name }} server
  hosts: all
  vars:
    - update_apt_cache: yes
  vars_files:
    - roles/base/defaults/main.yml

  tasks:
    - debug: msg="reading from group {{ groups }} and application name {{ application_name }}"
问题是第一个
应用程序\u name
(在
name
参数中)永远不会工作,尽管第二个实例(在任务中定义)工作正常。我怎样才能让第一个实例也工作?我尝试过在清单中定义变量

[mygroup:vars]
application_name=my_application_name
…在
组变量中(
/group\u vars/mygroup/vars.yml

…但这两个参数都不填充
名称
参数-只有在剧本的
任务
部分中找到的
{{application\u name}}


是否有办法填写第一个
应用程序\u name
变量?

我不确定您是否可以按照您想要的方式使用playbook名称。在显示剧本名称之前,不会加载组变量。要在playbook名称中填写
应用程序\u名称
,您必须在playbook变量部分中定义它

- name: Initial configuration for a {{ application_name }} server
  hosts: all
  vars:
    - update_apt_cache: yes
    - application_name: foo
- name: 'Initial configuration for a {{ application_name }} server'
或者在命令行上使用额外的变量

ansible-playbook -e "application_name=foo" your_playbook.yml

我不确定你是否能以你想要的方式使用剧本名称。在显示剧本名称之前,不会加载组变量。要在playbook名称中填写
应用程序\u名称
,您必须在playbook变量部分中定义它

- name: Initial configuration for a {{ application_name }} server
  hosts: all
  vars:
    - update_apt_cache: yes
    - application_name: foo
或者在命令行上使用额外的变量

ansible-playbook -e "application_name=foo" your_playbook.yml

只是胡乱猜测,你有试着引用变量吗

- name: 'Initial configuration for a {{ application_name }} server'

只是胡乱猜测,你有试着引用变量吗

- name: 'Initial configuration for a {{ application_name }} server'

Playbook的可能副本是一个文件,其名称存储在文件系统中,并且没有任何参数。Playbook的可能副本是一个文件,其名称存储在文件系统中,并且没有任何参数。