在ansible任务中引用字典变量值
referencing dictionary variable value in ansible task
团队,
我的任务是尝试从我的值文件中定义的字典中引用值。但是低于错误,有什么提示吗?我正在做这个练习,以便稍后在我的其他任务中使用这个参考,但第一个调试步骤本身失败了。
我提到了这个 link [ansible dict 参考][1]
values.yaml
loop_device: "loop"
available_device_default_config:
- device: any
partitions:
- number: 1
start: 0%
end: 100%
storage_class: services
任务
- name: lookup dictionary vars
debug:
var: available_device_default_config.device
任务输出错误
34 TASK [local_volume_mount : lookup dictionary vars] *****************************
Wednesday 28 April 2021 21:51:34 +0000 (0:00:04.915) 0:00:05.052 *******
ok: [node1] => {
"available_device_default_config.device": "VARIABLE IS NOT DEFINED!"
}
预期输出:
ok: [node1] => {
"any"
}
我在下面尝试过但没有成功
var: "{{ available_device_default_config.device }}"
var: "{{ available_device_default_config['device'] }}"
变量available_device_default_config
被定义为字典列表。所以你不能直接访问属性 device
,因为它是available_device_default_config
中第一项的属性。您需要通过 available_device_default_config[0]
进行调查
- name: "set facts"
set_fact:
available_device_default_config:
- device: any
partitions:
- number: 1
start: 0%
end: 100%
storage_class: services
- name: "lookup dictionary vars"
debug:
msg: "{{ available_device_default_config }}"
- name: "lookup dictionary vars"
debug:
msg: "{{ available_device_default_config[0].device }}"
结果会是
TASK [set facts] ****************************************************************
ok: [localhost]
TASK [lookup dictionary vars] ***************************************************
ok: [localhost] =>
msg:
- device: any
partitions:
- end: 100%
number: 1
start: 0%
storage_class: services
TASK [lookup dictionary vars] ***************************************************
ok: [localhost] =>
msg: any
团队, 我的任务是尝试从我的值文件中定义的字典中引用值。但是低于错误,有什么提示吗?我正在做这个练习,以便稍后在我的其他任务中使用这个参考,但第一个调试步骤本身失败了。
我提到了这个 link [ansible dict 参考][1]
values.yaml
loop_device: "loop"
available_device_default_config:
- device: any
partitions:
- number: 1
start: 0%
end: 100%
storage_class: services
任务
- name: lookup dictionary vars
debug:
var: available_device_default_config.device
任务输出错误
34 TASK [local_volume_mount : lookup dictionary vars] *****************************
Wednesday 28 April 2021 21:51:34 +0000 (0:00:04.915) 0:00:05.052 *******
ok: [node1] => {
"available_device_default_config.device": "VARIABLE IS NOT DEFINED!"
}
预期输出:
ok: [node1] => {
"any"
}
我在下面尝试过但没有成功
var: "{{ available_device_default_config.device }}"
var: "{{ available_device_default_config['device'] }}"
变量available_device_default_config
被定义为字典列表。所以你不能直接访问属性 device
,因为它是available_device_default_config
中第一项的属性。您需要通过 available_device_default_config[0]
- name: "set facts"
set_fact:
available_device_default_config:
- device: any
partitions:
- number: 1
start: 0%
end: 100%
storage_class: services
- name: "lookup dictionary vars"
debug:
msg: "{{ available_device_default_config }}"
- name: "lookup dictionary vars"
debug:
msg: "{{ available_device_default_config[0].device }}"
结果会是
TASK [set facts] ****************************************************************
ok: [localhost]
TASK [lookup dictionary vars] ***************************************************
ok: [localhost] =>
msg:
- device: any
partitions:
- end: 100%
number: 1
start: 0%
storage_class: services
TASK [lookup dictionary vars] ***************************************************
ok: [localhost] =>
msg: any