Python调用ansible API系列(一)获取资产信息
生活随笔
收集整理的這篇文章主要介紹了
Python调用ansible API系列(一)获取资产信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
你想讓ansible工作首先就需要設置資產信息,那么我們如何通過使用Python調取Ansible的API來獲取資產信息呢?
要提前準備一個hosts文件
獲取組或者主機
#!/usr/bin/env python # -*- coding: utf-8 -*-import sys from collections import namedtuple # 核心類 # 用于讀取YAML和JSON格式的文件 from ansible.parsing.dataloader import DataLoader # 用于存儲各類變量信息 from ansible.vars.manager import VariableManager # 用于導入資產文件 from ansible.inventory.manager import InventoryManager# InventoryManager類的調用方式 def InventoryManagerStudy():dl = DataLoader()# loader= 表示是用什么方式來讀取文件 sources=就是資產文件列表,里面可以是相對路徑也可以是絕對路徑im = InventoryManager(loader=dl, sources=["hosts"])# 獲取指定資產文件中所有的組以及組里面的主機信息,返回的是字典,組名是鍵,主機列表是值allGroups = im.get_groups_dict()print(allGroups)# 獲取指定組的主機列表print(im.get_groups_dict().get("test"))# 獲取指定主機,這里返回的是host的實例host = im.get_host("172.16.48.242")print(host)# 獲取該主機所有變量print(host.get_vars())# 獲取該主機所屬的組print(host.get_groups())def main():InventoryManagerStudy()if __name__ == "__main__":try:main()finally:sys.exit()獲取變量
#!/usr/bin/env python # -*- coding: utf-8 -*-import sys from collections import namedtuple # 核心類 # 用于讀取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(loader=dl, sources=["hosts"])vm = VariableManager(loader=dl, inventory=im)# 必須要先獲取主機,然后查詢特定主機才能看到某個主機的變量host = im.get_host("172.16.48.242")# 動態添加變量vm.set_host_variable(host=host, varname="AAA", value="aaa")# 獲取指定主機的變量print(vm.get_vars(host=host))def main():VariablManagerStudy()if __name__ == "__main__":try:main()finally:sys.exit()?
轉載于:https://www.cnblogs.com/rexcheny/p/10677040.html
總結
以上是生活随笔為你收集整理的Python调用ansible API系列(一)获取资产信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解析xml数据存入bean映射到数据库的
- 下一篇: 数据结构线性表博客作业总结