网箱易读动态存储脚本

ansible-netbox-inventor的Python项目详细描述


PyPI VersionPython VersionBuild StatusCodacy BadgeCode HealthCoverage Status

简介

这是ansible的netbox动态清单脚本。 Netbox是一个IP地址 管理(IPAM)和数据中心基础设施管理(DCIM)工具。 它很好,很现代,而且有很好的api……所以它是一个很好的选择 作为“真理之源”。

您可以根据自己的需要,根据netbox中的内容对服务器进行分组, 可以将字段选择为组,也可以选择为主机的变量。你可以使用 默认字段或自定义字段。

兼容性

使用netbox = v1.6netbox = 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java附加两个数组   java如何在Extjs的不同页面中使用相同的存储   java Jung,大顶点的布局重叠,图形出现在奇怪的位置   java如何在Android中通过画布绘制圆?   java验证库设计模式选择   java研磨机未知标记“timedTests”   java Android领域子类实例方法   java使用resteasy/jaxrs从请求负载接收两种类型的数据   缓冲策略Java缓冲策略有时不能正确绘制   java跟踪棋子   密度无关像素如何在java中锐化图像缩略图?   java如何在MongoDB更新查询中编写(或)更新   java A*寻路游戏系统退出问题   java在安卓中读取xml的最佳方式是什么?   通过反射调用的方法的java抑制警告   安卓 java。语言错误:信号11(SIGSEGV),代码10(?),故障地址006e006f   java lombok 1.18.2使用DexBuilderForDebug抛出TransformClasses   java JOptionPane CD对话框按钮?   java只返回json中的一些值,而不是完整实体对象   java包不存在错误,请稍后重试