Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 如何解析Ansible group_vars字典中的变量?_Variables_Dictionary_Ansible_Inventory - Fatal编程技术网

Variables 如何解析Ansible group_vars字典中的变量?

Variables 如何解析Ansible group_vars字典中的变量?,variables,dictionary,ansible,inventory,Variables,Dictionary,Ansible,Inventory,我以前一直将所有变量放在清单文件中,例如 dse_dir=/app/dse dse_bin_dir={{ dse_dir }}/bin dse_conf_dir={{ dse_dir }}/resources/dse/conf dse_yaml_loc={{ dse_conf_dir }}/dse.yaml cass_conf_dir={{ dse_dir }}/resources/cassandra/conf cass_yaml_loc={{ cass_conf_dir }}/cassandr

我以前一直将所有变量放在清单文件中,例如

dse_dir=/app/dse
dse_bin_dir={{ dse_dir }}/bin
dse_conf_dir={{ dse_dir }}/resources/dse/conf
dse_yaml_loc={{ dse_conf_dir }}/dse.yaml
cass_conf_dir={{ dse_dir }}/resources/cassandra/conf
cass_yaml_loc={{ cass_conf_dir }}/cassandra.yaml
cass_bin_dir={{ dse_dir }}/resources/cassandra/bin
我不需要在清单文件中对这些变量使用任何引号,而且效果很好

现在,我尝试使用group_vars功能,将每个主机组的变量分开。这是一个不同的格式,作为一个字典。所以现在我有:

dse_dir: "/app/dse"
dse_bin_dir: "{{ dse_dir }}/bin"
dse_conf_dir: "{{ dse_dir }}/resources/dse/conf"
dse_yaml_loc: "{{ dse_conf_dir }}/dse.yaml"
cass_conf_dir: "{{ dse_dir }}/resources/cassandra/conf"
cass_yaml_loc: "{{ cass_conf_dir }}/cassandra.yaml"
cass_bin_dir: "{{ dse_dir }}/resources/cassandra/bin"
为了避免解析投诉,我需要在这些参数周围加引号。但现在,当我有一个剧本,如以下:

---
# Copy CQL files across
- include: subtasks/copy_scripts.yml

- name: Create users
  command: '{{ cass_bin_dir })/cqlsh'
我得到以下错误。省略单引号或用双引号替换它们也不起作用

ERROR: There was an error while parsing the task 'command {{ cass_bin_dir })/cqlsh'.
Make sure quotes are matched or escaped properly
我能找到的所有文档都只显示字典中的硬编码值,即没有包含其他变量的变量,但我假设Ansible会支持这一点


有没有关于如何正确解析这些内容的建议?

请参阅“Gotchas”部分,了解为什么需要在
组变量中添加引号。(这是yaml/ansible组合。)

要解决
命令中的错误
,请修复输入错误:您有一个
}
而不是
}