网箱易读动态存储脚本
ansible-netbox-inventor的Python项目详细描述
简介
这是ansible的netbox动态清单脚本。 Netbox是一个IP地址 管理(IPAM)和数据中心基础设施管理(DCIM)工具。 它很好,很现代,而且有很好的api……所以它是一个很好的选择 作为“真理之源”。
您可以根据自己的需要,根据netbox中的内容对服务器进行分组, 可以将字段选择为组,也可以选择为主机的变量。你可以使用 默认字段或自定义字段。
兼容性
使用netbox = v1.6和netbox = v2.0.4测试的脚本, 但最有可能的是它将适用于所有的netbox v1.0及以上版本。
分组
服务器可以按netbox中的任何部分进行分组。 例如,您可以按“站点”、“机架”、“角色”、“平台”对主机进行分组, 或者上网本的其他部分。 请记住:对于分组,应使用api名称而不是ui名称。
所以如果你有一个叫做“美国东部”的网站,在Ansible你会得到一个 hosts组称为“us east”,其中包含该站点中的所有主机。
如果该部分是默认的 group_by.default如果是自定义节(自定义字段),则 把它放在group_by.custom下面。
下面是一个如何根据服务器的platform对其进行分组的示例。
group_by: default: - platform
所以如果你用“ubuntu”和“centos”作为上网本的平台, 您将有两组使用该系统的服务器。
宿主变量
netbox部分可以用作主机的变量!你可以用 netbox中主机的ip为ansible_ssh_host,或使用自定义 现场也是。
这里有三个部分,第一个是IP,第二个是 General,最后是Custom。
变量定义为Key: Value。关键是里面会有什么 ansible和value来自netbox。
hosts_vars: ip: ansible_ssh_host: primary_ip
这里primary_ip将用作ansible_ssh_host的值。
选项
$ netbox.py -h usage: netbox.py [-h] [-c CONFIG_FILE] [--list] [--host HOST] optional arguments: -h, --help show this help message and exit -c CONFIG_FILE, --config-file CONFIG_FILE Path for script's configuration. Also "NETBOX_CONFIG_FILE" could be used as env var to set conf file path. (default: netbox.yml) --list Print all hosts with vars as Ansible dynamic inventory syntax. (default: False) --host HOST Print specific host vars as Ansible dynamic inventory syntax. (default: None)
还可以通过环境变量NETBOX_CONFIG_FILE设置配置文件路径。
用法
$ ansible all -i netbox.py -m ping