gpt4 book ai didi

python - 努力在Python脚本中传递ansible变量

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:01 24 4
gpt4 key购买 nike

最近我开始寻找 Ansible 来自动化服务器配置,但我似乎无法将 yml 文件中的特定变量导入到我的 .py 脚本中以供使用。我正在寻找的示例:

.yml
var:
server_name: ml-apitest-t1

然后将该变量server_name导入到我在Python中的变量,所以它看起来像这样:

self.server_name = .yml server_name

最佳答案

如果您的 .yml. 文件看起来有点像这样:

- server:
var:
server_name: ml-apitest-t1

那么你应该使用PyYaml,试试这个

import yaml
try:
from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
from yaml import Loader, Dumper

with open('test.yml', 'r') as f:
cont = yaml.load(f.read(), Loader=Loader)

print (cont)

在我的例子中,它将输出这个

[{'server': {'var': None, 'server_name': 'ml-apitest-t1'}}]

要从我的测试.yml文件中获取server_name,我需要这样做,但在你的情况下,它看起来会有所不同,因为你的.yml 文件结构不同

import yaml
try:
from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
from yaml import Loader, Dumper

with open('test.yml', 'r') as f:
cont = yaml.load(f.read(), Loader=Loader)

print (cont[0]['server']['server_name'])

这是输出

ml-apitest-t1

这里还有 PyYaml documentation

关于python - 努力在Python脚本中传递ansible变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56864459/

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