我有一些配置可以根据需要进行格式化,我想以我可以使用的方式加载到ansible中。
举个例子,我有
[hosttype1]
values
values2
[hosttype2]
values3
values4
我也尝试过
的格式hosttype1:
- value1
- value2
hosttype2:
- value3
- value4
我已将该配置保存到文件中,并设法将第一个条目存储到变量中
- hosts: localhost
vars_files:
- config.yml
- debug:
var_list: "{{ hosttype1 }}"
我已将值括在引号中
'
,并且使用双引号"
并且没有引号,但总是出现错误
错误!发现无效的 vars_files 条目:{u'debug':无,u'var_list': [u'value1', u'value2']} var_files 条目应该是字符串 模板扩展后的类型或字符串类型列表
所以我首先想要的是hosttype1不是变量的名称,这样最终的代码可以更加通用。 我希望能够在链中定义更高的东西,以便主机类型是变量的组件。
但错误消息也表明值不是字符串,但它们显然用引号引起来,所以我完全不知道错误的实际含义。
有谁能够帮助我并让我了解我做错了什么,或者向我指出一些描述如何做的文档?
您在问题中发布的剧本存在一些严重的缩进问题,这会导致其无效。假设您有一个文件
config.yml
包含:
hosttype1:
- value1
- value2
hosttype2:
- value3
- value4
您可以像这样将其读入 Ansible:
- hosts: localhost
vars_files:
- config.yml
tasks:
- debug:
msg:
- "type 1: {{hosttype1}}"
- "type 2: {{hosttype2}}"
该剧本将产生输出:
TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": [
"type 1: ['value1', 'value2']",
"type 2: ['value3', 'value4']"
]
}