ansible动态inventory 获取自定义的主机列表

简介:

一、简单说明

    Ansible,默认是调用“/etc/ansible/hosts”配置的主机组或者主机,同时也可以通过 -i 参数指定自定义的hosts文件。

    Ansible Inventory实际上是包含静态Inventory和动态Inventory两部分,静态Inventory指的是在文件/etc/ansible/hosts中指定的主机和组,Dynamic Inventory指通过外部脚本获取主机列表,并按照ansible 所要求的格式返回给ansilbe命令的。这部分一般会结合CMDB资管系统、zabbix 监控系统、crobble安装系统、云计算平台等获取主机信息。由于主机资源一般会动态的进行增减,而这些系统一般会智能更新。我们可以通过这些工具提供的API 或者接入库查询等方式返回主机列表。


二、代码

1
2
3
4
5
6
#!/usr/bin/env python
import  json
 
hostlist  =  { 'db' :[ 'vm1' , 'vm2' ], 'web' :[ 'vm3' , 'vm4' ], 'zabbix' :[ 'vm5' ]}
 
print  json.dumps(hostlist)


三、解析

1、在上面的代码中,定义为一个字典,且将这个字典输出为json格式的字符串

2、定义了三个主机组,分别为:db、web、zabbix


四、执行

ansible -i my_host_list.py db -m shell -a "uname -a"

ansible -i my_host_list.py web -m shell -a "uname -a"

ansible -i my_host_list.py zabbix -m shell -a "uname -a"

ansible -i my_host_list.py db:zabbix -m shell -a "hostname" #同时执行db和zabbix组,用冒号分隔



本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1880007

相关文章
|
7月前
|
运维 Kubernetes 网络安全
Ansible自动化运维工具之主机管理与自定义配置文件(2)
Ansible自动化运维工具之主机管理与自定义配置文件(2)
|
9天前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
|
9天前
|
网络协议 Shell
Ansible 学习笔记 - 定位主机和组的模式
Ansible 学习笔记 - 定位主机和组的模式
|
9月前
|
运维 监控
【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)
【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)
119 0
|
9月前
|
运维 Ubuntu 应用服务中间件
【运维知识进阶篇】Ansible自动化运维-Ansible安装与主机列表
【运维知识进阶篇】Ansible自动化运维-Ansible安装与主机列表
130 0
|
11月前
Ansible 自定义变量与 role 默认变量的合并方法
如果你遇到 failed to combine variables, expected dicts but got a 'NoneType' and a 'dict' 这样的报错,你可以看看本文。
238 0
|
网络安全 数据安全/隐私保护
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
101 0
Ansible中的inventory主机清单(预祝你我有数不尽的鲜花和浪漫)
|
运维 项目管理
金鱼哥戏说RHCE认证:部署ansible--构建ansible主机清单
第二章 部署ansible--构建ansible主机清单
124 0
金鱼哥戏说RHCE认证:部署ansible--构建ansible主机清单
|
存储 网络安全
ansible简单管理其它主机和常用模块示例
ansible简单管理其它主机和常用模块示例
ansible简单管理其它主机和常用模块示例
|
7月前
|
运维 Shell Linux
Ansible自动化运维工具之常用模块使用实战(5)
Ansible自动化运维工具之常用模块使用实战(5)