gpt4 book ai didi

ansible - ansible 中的 dict 键中是否允许破折号?

转载 作者:行者123 更新时间:2023-12-04 12:16:05 24 4
gpt4 key购买 nike

我的剧本有问题,想知道问题是否是我使用的字典中的某些关键名称中有破折号。 Ansible 不清楚这是否允许。
我正在使用 nmstatectl 来获取描述 RHEL8 主机上当前网络配置的 json。 json 输出使用带有破折号的键,我想按原样使用输出。
剧本:

- name: check static route using nmstatectl
hosts: rhv


tasks:
- name: collect network config
command:
cmd: nmstatectl show --json
register: nmstate
changed_when: false

- name: set fact with block storage route config
set_fact:
block_storage_route: "{{ nmstate.stdout | from_json | json_query(query) }}"
vars:
query: "routes.config[?destination == '{{ block_storage_cidr }}' ]"

- debug:
var: block_storage_route

- debug:
var: block_storage_route[0].destination

- debug:
var: block_storage_route[0].table-id
输出:
...
TASK [debug] ************************************************************************************************************************
ok: [one.example.com] => {
"block_storage_route": [
{
"destination": "10.201.142.0/24",
"metric": 301,
"next-hop-address": "10.123.231.161",
"next-hop-interface": "bond0.1161",
"table-id": 0
}
]
}

TASK [debug] ************************************************************************************************************************
ok: [one.example.com] => {
"block_storage_route[0].destination": "10.201.142.0/24"
}

TASK [debug] ************************************************************************************************************************
ok: [one.example.com] => {
"block_storage_route[0].table-id": "VARIABLE IS NOT DEFINED!"
}
如您所见,我收到“ undefined variable ”错误。即使存在关键的“table-id”......为什么?

最佳答案

问: “Ansible 的字典键中是否允许破折号?”
答:是的。他们是。实际上,YAML 中对 key 没有任何限制。引自 Mapping (又名 Python 字典)

"The content of a mapping node is an unordered set of key: value node pairs, with the restriction that each of the keys is unique. YAML places no further restrictions on the nodes. In particular, keys may be arbitrary nodes, ..."


使用 bracket notation当键的名称不符合 Ansible Creating valid variable names 时,而不是点符号
    - debug:
var: block_storage_route[0]['table-id']

关于ansible - ansible 中的 dict 键中是否允许破折号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64982308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com