Ansible Dynamic Inventory 介绍
Ansible Inventory实际上是包含静态Inventory和动态Inventory两部分,静态Inventory指的是在文件/etc/ansible/hosts中指定的主机和组,Dynamic Inventory指通过外部脚本获取主机列表,并按照ansible 所要求的格式返回给ansilbe命令的。这部分一般会结合CMDB资管系统、zabbix 监控系统、crobble安装系统、云计算平台等获取主机信息。由于主机资源一般会动态的进行增减,而这些系统一般会智能更新。我们可以通过这些工具提供的API 或者接入库查询等方式返回主机列表。 一、最简单示例 由于Ansible在接受脚本动态获取主机信息时支持的是json格式,这里我也不从其他系统中取了,向通过一段代码打印一个段json格式的主机信息: #!/usr/bin/env python # coding=utf-8 import json host1ip = ['10.212.52.252','10.212.52.14'] host2ip = ['10.212.52.16'] group = 'test1' group2 = 'test2' hostdata = {group:{"hosts":host1ip},group2:{"hosts":host2ip}} print json.dumps(hostdata