我有以下的剧本,并努力了解如何将application_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 }}"
问题是第一个application_name
(在name
参数中)永远不会起作用,尽管第二个实例(在任务中定义)工作正常。我怎样才能让第一个实例工作?我已经尝试过在库存中定义变量......
[mygroup:vars]
application_name=my_application_name
...并在group_vars
(./group_vars/mygroup/vars.yml
)...
application_name: my_application_name
...但这两个都没有填充name
参数 - 只有在剧本{{ application_name }}
部分找到的tasks
。
有没有办法填写第一个application_name
变量?
答案 0 :(得分:2)
我不确定您是否可以按照您想要的方式使用剧本名称。在显示播放簿名称之前,不会加载group_vars。要填写剧本名称中的application_name
,您必须在剧本变量部分中定义它
- name: Initial configuration for a {{ application_name }} server
hosts: all
vars:
- update_apt_cache: yes
- application_name: foo
或在命令行上使用extra-vars
ansible-playbook -e "application_name=foo" your_playbook.yml
答案 1 :(得分:0)
只是一个疯狂的猜测,你试图引用变量吗?
- name: 'Initial configuration for a {{ application_name }} server'