我正在使用 ansible.builtin.slurp 来做到这一点。这是我的 Ansible 角色的相关部分:
- name: Load config
slurp:
src: "/etc/mlnx_snap/mlnx_snap.json"
register: imported_config
- name: Debug
debug:
var: imported_config
我希望调试打印我的文件,但是,发生了一些不同的事情。这是文件内容:
root@ratchet01-snic:~# cat /etc/mlnx_snap/mlnx_snap.json
{
"ctrl": {
"sqes": 0x6,
"cqes": 0x4,
"cq_period": 3,
"cq_max_count": 6,
"nr_io_queues": 32,
"mn": "Mellanox BlueField NVMe SNAP Controller",
"sn": "MNC12",
"mdts": 4,
"oncs": 0,
"offload": false,
"max_namespaces": 0,
"quirks": 0x0
},
"backends": [ {
"type": "spdk_bdev",
"paths": [{}]
} ]
}
这是调试输出的样子:
Debug...
retchet01-snic.mtr.labs.mlnx ok: {
"changed": false,
"imported_config": {
"changed": false,
"content": "LyoKICogcHJ...CiAgICB9IF0KfQo=",
"encoding": "base64",
"failed": false,
"source": "/etc/mlnx_snap/mlnx_snap.json"
}
}
内容实际上有数千个字符长,我只是为了便于阅读而缩短了它。
想象一下,我在这个角色中还有以下任务:
- name: Do x
module_name:
var_name: value
when: imported_config.ctrl.quirks >= 0
如何正确导入 JSON 文件以便这样的任务可以工作?我究竟做错了什么?