做房产推广那个网站好,怎么制作安卓app,电子商务有限公司怎么注册,长春疾控最新消息在使用ansible的过程中#xff0c;如果能结合python语言#xff0c;则如虎添翼#xff0c;带来更多的灵活性#xff0c;实现更复杂的功能。以下代码使用python语言#xff0c;获取inventory信息。
#!/usr/bin/env python
# -*- coding: utf-8 -*-import sys
# 核心类
# 用… 在使用ansible的过程中如果能结合python语言则如虎添翼带来更多的灵活性实现更复杂的功能。以下代码使用python语言获取inventory信息。
#!/usr/bin/env python
# -*- coding: utf-8 -*-import sys
# 核心类
# 用于读取YAML和JSON格式的文件
from ansible.parsing.dataloader import DataLoader
# 用于导入资产文件
from ansible.inventory.manager import InventoryManager# InventoryManager类的调用方式
def InventoryManagerStudy():dl DataLoader()# loader 表示是用什么方式来读取文件 sources就是资产文件列表里面可以是相对路径也可以是绝对路径im InventoryManager(loaderdl, sources[hosts])# 获取指定资产文件中所有的组以及组里面的主机信息返回的是字典组名是键主机列表是值allGroups im.get_groups_dict()print(allGroups)# 获取指定组的主机列表print(im.get_groups_dict().get(test))# 获取指定主机这里返回的是host的实例host im.get_host(172.31.170.225)print(host)# 获取该主机所有变量print(host.get_vars())# 获取该主机所属的组print(host.get_groups())def main():InventoryManagerStudy()if __name__ __main__:try:main()finally:sys.exit()
以下代码用于定义变量信息这些变量会传递给yml文件使用
#!/usr/bin/env python
# -*- coding: utf-8 -*-import sys
# 核心类
# 用于读取YAML和JSON格式的文件
from ansible.parsing.dataloader import DataLoader
# 用于存储各类变量信息
from ansible.vars.manager import VariableManager
# 用于导入资产文件
from ansible.inventory.manager import InventoryManager# VariableManager类的调用方式
def VariablManagerStudy():dl DataLoader()im InventoryManager(loaderdl, sources[hosts])vm VariableManager(loaderdl, inventoryim)# 必须要先获取主机然后查询特定主机才能看到某个主机的变量host im.get_host(172.16.48.242)# 动态添加变量vm.set_host_variable(hosthost, varnameAAA, valueaaa)# 获取指定主机的变量print(vm.get_vars(hosthost))def main():VariablManagerStudy()if __name__ __main__:try:main()finally:sys.exit()