我正在使用收集事实变量来获取有关主机的大小信息。对于某些服务器,我得到了变量"ansible_devices": { "sda"
,而对于少数服务器,我得到了"ansible_devices": { "cciss!c0d0"
.
问题:-当我{{ ansible_devices.sda.size }}
在我的剧本中使用变量时,如果sda
在变量中找不到键,ansible_device
那么显然它会给我错误
fatal: [xyz101] =>One or more undefined variables: dict object has no element sda
ansible_device
在变量中获取值,如下所示
"ansible_devices": {
"sda": {
"size": "68.33 GB",
........
}
},
"item": ""
或者
"ansible_devices": {
"cciss!c0d0": {
"size": "68.33 GB",
........
}
},
"item": ""
我也可以在第一种情况下访问大小,但在第二种情况下{{ ansible_devices.sda.size }}
无法获取值。{{ ansible_devices.cciss!c0d0.size }}
可能是 json 键中的特殊字符,这就是我无法获取其值的原因。
有没有办法通过键索引访问这个变量{{ ansible_devices[0].size }}
?或任何其他更好的方式来访问它。