ansible-动态inventory及内置函数

一. 简述:

   关于inventory的基本用法可以参考上一篇文章:ansible-inventory定义-优快云博客 

  在实际线上环境中,单纯的靠配置文件管理,是一件很麻烦的事情(比如一致性问题),特别是规模较大的场景下,会有大量主机/节点列表(如本公司项目分组60多个,主机2500多台),涉及到日常的增加/回收/维修等情况,如果手动维护相关列表将会是一个非常繁琐的工作。ansible默认是基于静态的文件来获取主机列表的,但同时还支持script方法,即:通过脚本从其他资源(如cmdb系统)获取后按照特有格式定义好组及主机,然后输出,相当于变相的实现动态功能。

二. 实现方法:

  ansible实现script方法,需要将inventory值定义为script的名字,脚本不限制语言。但需要支持两个参数:

       1. -l(--list)  显示所有主机及主机组信息(json格式)

       2. -H(--host) 参数后面需要指定一个host,返回主机的信息(认证,主机变量等) ,同样json格式。

这里通过zabbix api 获取了相关主机/分组列表的信息(其他环境中均可参考)作为例子,具体代码如下:

#!/usr/bin/python
import json
import argparse
import api_authcheck

def data_req():  #获取主机列表并json格式化
    hosts = {}
    method='hostgroup.get'
    params={
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值