Python 将任何YAML文件转换为Ansible库存
我正在尝试从现有YAML文件创建一个Ansible库存文件。 这是我正在谈论的yaml文件: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” 傲慢
-结构: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”
非常感谢!!!!