你想让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系列(一)获取资产信息相关推荐

  1. python调用lib_基于python调用libvirt API

    基于python调用libvirt API 1.程序代码 #!/usr/bin/python import libvirt import sys def createConnection(): con ...

  2. python 图表_Python入门学习系列——使用Python调用Web API实现图表统计

    使用Python调用Web API实现图表统计 Web API:Web应用编程接口,用于URL请求特定信息的程序交互,请求的数据大多以非常易于处理的格式返回,比如JSON或CSV等. 本文将使用Pyt ...

  3. python电脑怎么打开任务管理器_利用Python调用Windows API,实现任务管理器功能

    任务管理器具体功能有: 1. 列出系统当前所有进程. 2. 列出隶属于该进程的所有线程. 3. 如果进程有窗口,可以显示和隐藏窗口. 4. 强行结束指定进程. 通过Python调用Windows AP ...

  4. 用Python调用OpenAI API进行文本创作

    文章目录 一.前言 二.使用教程 2.1获取API密钥 2.2 连接API 2.3 文本生成 三.创作示例 3.1 诗歌创作 3.2 推荐书单 3.3 超级百度 四.总结 一.前言 本文将教大家用py ...

  5. 用Python调用OpenAI API做有趣的事

    获取 API KEY 首先需要 可以开全局的梯子,选择日本或韩国节点,可以通过 ipinfo 检查当前 IP 地址是否为日本或韩国地区,然后访问 OpenAI 网站注册账号并完成认证. 如果自己完成账 ...

  6. 利用Python调用Windows API,实现任务管理器功能

    任务管理器具体功能有: 1. 列出系统当前所有进程. 2. 列出隶属于该进程的所有线程. 3. 如果进程有窗口,可以显示和隐藏窗口. 4. 强行结束指定进程. 通过Python调用Windows AP ...

  7. 新浪微博OAuth2.0授权及使用python调用微博API

    通过调用新浪微博API获取数据时数组采集中一个很好的方法,为了获取较新的资讯数据内容,本文主要介绍新浪微博OAuth2.0授权机制.微博开发者平台的使用.python调用微博API等内容,文末提供测试 ...

  8. python调用高德api路径规划_Python调用高德API实现批量地址转经纬度并写入表格的功能...

    本段代码是先将需要转换经纬度的地址爬取在 '地址.csv' 文件里,文件截图示例: 代码展示 # coding=utf-8 # SPL # 时间:2020/12/20 21:15 import csv ...

  9. Python调用WPS API

    Python调用WPS API 完整文档 最佳实践 WPS 在对于Office或WPS的操作场景中,最适合的其实是Pywin32的方式,因为这种方式可以直接调度由原厂商开放的API,目前我们的场景中最 ...

最新文章

  1. 简易在线实验室管理系统
  2. python之模块csv之CSV文件的写入(按行写入)
  3. AtCoder Regular Contest 092 Two Sequences AtCoder - 3943 (二进制+二分)
  4. C指针原理(13)-C指针基础
  5. 安卓Dialog对话框多次显示而闪退的解决办法
  6. java比较equlse_java基础知识要点
  7. Chap-4 Section 4.2.4 指令修正方式
  8. break lab c语言,C语言printf详解
  9. OSPF实验:OSPF认证
  10. 软件工程结对编程博客
  11. SQL Server 存储(5/8):理解IAM 页
  12. DirectShow源码下载
  13. Google--PageRank(网页级别)技术解密[转]
  14. MINA框架客户端的使用
  15. npm安装依赖包 版本冲突怎么办 --legacy-peer-deps的正确使用方法
  16. python爬虫 点击下一页,总结python爬虫抓站的实用技巧 python爬虫怎么获取下一页的url...
  17. 公寓宽带服务器无响应,利用RLDP协议解决网络环路故障
  18. 什么是零知识证明(ZK Proof)?Web2.0通往Web3.0的入口技术
  19. 郭盛华:警惕黑客通过共享充电宝入侵手机
  20. SIGIR2022 | 基于Prompt的用户自选公平性推荐算法

热门文章

  1. mysql 基础选择题_mysql基础12(mysql练习题)
  2. python清洗完数据做什么_Python 数据的清洗和准备
  3. pdf阅读器下载支持win7_福昕PDF阅读器(Foxit Reader)下载|福昕PDF阅读器(Foxit Reader) 9.6.1.25160 官方版...
  4. 初中数学四十二个几何模型_【初中数学】一题贯穿初中几何
  5. java arguments_命令行中执行带参数的java程序(Command-Line Arguments)
  6. 目前电子计算机已经发展到______阶段,《全国高校计算机联合考试广西考区一级笔试试题卷.doc...
  7. Leetcode怎么调试java代码,IDEA2020.1使用LeetCode插件运行并调试本地样例的方法详解...
  8. submodule切换分支_git子模块分支会随主项目的分支切换吗?
  9. mongodb 查多个不等于_高可用架构之商城的mongodb设计分析
  10. 牛顿法的matlab实现,利用matlab基础语句实现牛顿法matlab潮流计算