我的Infoblox(IPAM)服务器中有一组网络对象,并希望根据对 extattr 的搜索,从其中一个分配IP地址字段。
每个网络对象都有一个名为 CITYCODE 的扩展属性,并且许多网络对该代码具有相同的值。我想从任何一个网络分配IP地址。
如何使用next_available_ip函数创建记录:host 对象,其中 IPV4ADDR 由next_available_ip函数决定?
答案 0 :(得分:0)
回答我自己的问题,因为我花了一些其他的示例代码,我找到了一个完全适合我的代码。
首先,您需要一个JSON主体,它指定新记录的完全限定的名称:host 。为了我的目的,我只是生成随机值。请注意,该域必须已存在(可能是 zone:auth 对象)。
如果该域名尚不存在,您将收到错误消息:“不允许该操作。未找到父级。”
而不是指定实际的 ipv4addr ,而是指定目标对象以及将针对它运行的函数。由于我们要运行next_available_ip函数,因此对象是 network 。
我们想要进行的搜索是针对可扩展属性的,因此_object_parameters设置为“查找具有可扩展属性的网络,名为-CITYCODE-,值为-MZAPPKAK-。星号很重要,必须保留。” / p>
BODY='
{
"name" : "staticip-d4260ed7-3101-4034-0f79-056b72b2c5f0.some-domain-that-exists.com",
"ipv4addrs : [
{
"ipv4addr" : {
"_object" : "network",
"_object_function" : "next_available_ip",
"_object_parameters" : {"*CITYCODE" : "MZAPPKAK"},
"_object_field" : "value",
"_result_field" : "ips",
"_parameters" : {"num" : 1}
}
}
]
}
curl \
'https://1.2.3.4/wapi/v2.2.1/record:host' \
-H 'Content-Type: application/json' \
-d "$BODY"
结果代码应为201,结果正文将是创建的记录:host 的REF。在返回的REF上进行标准GET,以了解找到的IP并将其放在记录中。