Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将任何YAML文件转换为Ansible库存_Python_Yaml_Ansible Inventory - Fatal编程技术网

Python 将任何YAML文件转换为Ansible库存

Python 将任何YAML文件转换为Ansible库存,python,yaml,ansible-inventory,Python,Yaml,Ansible Inventory,我正在尝试从现有YAML文件创建一个Ansible库存文件。 这是我正在谈论的yaml文件: -结构:AAA 傲慢者:20 设备名称:AAA-BAT1 角色:BGW 莎莉:“1” Travee:4 反装备类型:N9K-C9YTR -傲慢者:20 设备名称:BBB-BAT2 角色:SP 莎莉:“1” Travee:4 反装备类型:N9K-C9YTR 在本清单中: 全部: 主持人: AAA-BAT1: 反装备类型:“N9K-C9YTR” 面料:“AAA” 安置: 莎莉:“1” 特拉维:“4” 傲慢

我正在尝试从现有YAML文件创建一个Ansible库存文件。 这是我正在谈论的yaml文件:

-结构:AAA
傲慢者:20
设备名称:AAA-BAT1
角色:BGW
莎莉:“1”
Travee:4
反装备类型:N9K-C9YTR
-傲慢者:20
设备名称:BBB-BAT2
角色:SP
莎莉:“1”
Travee:4
反装备类型:N9K-C9YTR
在本清单中:

全部:
主持人:
AAA-BAT1:
反装备类型:“N9K-C9YTR”
面料:“AAA”
安置:
莎莉:“1”
特拉维:“4”
傲慢者:“20”
角色:“BGW”
BBB-BAT2:
反装备类型:“N9K-C9YTR”
面料:“BBB”
安置:
莎莉:“1”
特拉维:“4”
傲慢者:“20”
角色:“SP”

有没有办法用Python实现这一点呢?

您甚至可以用Ansible playbook在本地控制器节点上运行它来实现所有这些

根据剧本:

-hosts:localhost
收集事实:不
变量:
伪造数据:
-面料:AAA
傲慢者:20
设备名称:AAA-BAT1
角色:BGW
莎莉:“1”
Travee:4
反装备类型:N9K-C9YTR
-面料:BBB
傲慢者:20
设备名称:BBB-BAT2
角色:SP
莎莉:“1”
Travee:4
反装备类型:N9K-C9YTR
任务:
-设定事实:
主机:{hosts}默认({})组合({item[\'Nom de l'equipment\\']:转换的{u item}})
循环:{{faking_data}}”
变量:
已转换的项目:
“物资类型”:“{item['Type de materials']}”
结构:{{item.Fabric}}
安置:
Salle:{{item.Salle}}
Travee:“{{item.Travee}}”
傲慢:{{item.Hauteur}}”
角色:“{item.Role}}”
-副本:
内容:“{{{'all':{'hosts':hosts}}}| to_nice_yaml(indent=2)}”
dest:hosts.yml
这将最终创建一个hosts.yml文件,其中包含

全部:
主持人:
AAA-BAT1:
面料:AAA
角色:BGW
反装备类型:N9K-C9YTR
安置:
傲慢者:“20”
莎莉:“1”
特拉维:“4”
BBB-BAT2:
面料:BBB
角色:SP
反装备类型:N9K-C9YTR
安置:
傲慢者:“20”
莎莉:“1”
特拉维:“4”

非常感谢!!!!