Ansible之动态Inventory
动态Inventory python代码
#! /usr/bin/env python3
import os
import sys
import argparse
try:
import json
except ImportError:
import simplejson as json
class ExampleInventory(object):
# 读取并分析读入的选项和参数
def read_cli_args(self):
parser = argparse.ArgumentParser()
parser.add_argument('--list', action='store_true')
parser.add_argument('--host', action='store')
self.args = parser.parse_args()
# 用于展示效果的JSON格式的Inventory文件内容
def example_inventory(self):
return {
'songxin': {
'hosts': ['10.3.150.199', '10.3.150.200','10.3.150.201','10.3.152.78'],
},
'_meta': {
'hostvars': {
'10.3.150.199': {
"ansible_ssh_user": "cedar",
"ansible_ssh_port": "52222"
},
'10.3.150.200': {
"ansible_ssh_user": "cedar",
"ansible_ssh_port": "52222"
},
'10.3.150.201': {
"ansible_ssh_user": "cedar",
"ansible_ssh_port": "52222"
},
'10.3.152.78': {
"ansible_ssh_user": "root",
"ansible_ssh_port": "22"
}
}
}
}
# 返回仅用于测试的空Inventory
def empty_inventory(self):
return {'_meta': {'hostvars': {}}}
def __init__(self):
self.inventory = {}
self.read_cli_args()
#定义'--list'选项
if self.args.list:
self.inventory = self.example_inventory()
#定义'--host[hostname]'先项
elif self.args.host:
self.inventory = self.empty_inventory()
#如果没有主机组或变量要设置,就返回一个空Inventory
else:
self.inventory = self.empty_inventory()
print(json.dumps(self.inventory))
ExampleInventory()
同类资源
- 动态菜单制作简洁快捷启动
易语言动态菜单制作简洁快捷启动例子源代码,自己用的快捷启动,灵感来自系统的开始菜单。...
- 易语言汇编内核sockt、send、recv+动态创建线程
易语言汇编内核sockt、send、recv+动态创建线程例子源代码,此方法非常直接的防止了HOOK与抓包。...
- 动态/内存调用加载任意32/64模块源码汇编进程读写
易语言动态/内存调用加载任意32/64模块源码汇编进程读写例子源代码,只是适用于64位的部分函数,模块中以相同...
- 软件加一个动态秘钥
软件加一个动态秘钥例子源代码,自行添加客户和服务端组件联网获取动态秘钥。...
- eWOW64Ext v1.21加载任意32/64模块,动态调用64位汇编进程读写
eWOW64Extv1.21加载任意32/64模块,动态调用64位汇编进程读写例子源代码,没有任何实质性内容更新,仅内部架构...
- 4399桌面版,自定义动态菜单
读取一个xml作为菜单数据来刷新菜单,4399桌面版,自定义动态菜单例子源代码。...
- 动态图片生成工具
易语言动态图片生成工具例子源代码,自己尝试做了一下。...
- 动态验证码思路,拼图去干扰
动态验证码思路,拼图去干扰例子源代码,适用于某种动态验证码,验证码实际上为6位数,但无论怎么截图截图只能获...
- 软件动态按钮切换效果
易语言软件动态按钮切换效果例子源代码,闲来无事,做了这个切换效果。...
- ArcGIS动态表格扩展模块Mapping and Charting Solutions10.2
ArcGIS动态表格扩展模块MappingandChartingSolutions10.2本文件感兴趣的可以参考一下,可用于插入动态表格...
- 高效内存池,动态内存池,单元内存池
易语言高效内存池,动态内存池,单元内存池例子源代码,模块提供2个类,包括单元内存池、动态内存池;使用内存池能...
- 动态调用DLL演示
动态调用DLL演示例子源代码,之前在网上下载的调用都有很大的问题。...