一个复杂的.yaml
文件来自这个链接 https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml需要输入到 bash 脚本中,该脚本作为在 Amazon Linux 2 的 EC2 实例上运行的自动化程序的一部分运行。请注意.yaml
上面链接中的文件包含许多对象,我需要提取在文件中定义的许多对象之一中定义的环境变量之一。
具体来说,我怎样才能提取192.168.0.0/16
的值CALICO_IPV4POOL_CIDR
变量变成bash变量?
- name: CALICO_IPV4POOL_CIDR
value: "192.168.0.0/16"
我读过很多关于解析更扁平、更简单的其他帖子和博客文章.yaml
文件,但这些其他示例都没有显示如何提取像这样的嵌套值value
of CALICO_IPV4POOL_CIDR
在这个问题中。
正如其他人评论的那样,建议使用yq
(随着jq
) 如果可供使用的话。
那么请尝试以下操作:
value=$(yq -r 'recurse | select(.name? == "CALICO_IPV4POOL_CIDR") | .value' "calico.yaml")
echo "$value"
Output:
192.168.0.0/16
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)