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的可能副本是一个文件,其名称存储在文件系统中,并且没有任何参数。