用于python的infoblox wapi模块
pyinfoblox的Python项目详细描述
pyinfoblox-用于python的infoblox wapi模块
pyinfoblox是一个用于与infoblox wapi接口的python模块。
有关infoblox wapi的更多信息,请参阅 Infoblox WAPI documentation。
PyInfoblox是开源的,并根据 BSD License。
贡献
pyinfoblox托管在 Github。请捐款 通过报告问题、建议功能或发送修补程序 使用拉取请求。
安装
安装pyinfoblox最简单的方法是使用pip:
$ pip install pyinfoblox
为了从 github存储库只需执行以下命令即可:
$ git clone https://github.com/dnaeon/pyinfoblox.git
$ cd pyinfoblox
$ python setup.py install
示例
当使用pyinfoblox时,我们要做的第一件事是实例化 新建InfobloxWAPI对象。
>>>from__future__importprint_function>>>frompyinfobloximportInfobloxWAPI>>>infoblox=InfobloxWAPI(...username='admin',...password='p4ssw0rd',...wapi='https://localhost/wapi/v1.1/'...)
获取infoblox网络与执行以下操作一样简单:
>>>networks=infoblox.network.get()>>>print(networks)
在infoblox中获得特定的网络也很容易:
>>>network=infoblox.network.get(network='192.168.1.0/24')>>>print(network)
另一个将获得所有infobloxipv4address对象的示例。
>>>ipv4address=infoblox.ipv4address.get()>>>print(ipv4address)
下面是如何创建新的infoblox网络:
>>>objref=infoblox.network.create(...network='192.168.1.0/24',...comment='This is my test network'...)>>>print(objref)u'network/ZG5zLm5ldHdvcmskMTkyLjE2OC4xLjAvMjQvMA:192.168.1.0/24/default'
创建新对象将返回对新创建的 infoblox中的对象。
我们也可以更新对象。当我们更新infoblox中的对象时 也需要传递对象引用。这就是我们能做的 更新我们在前面示例中创建的network。
>>>infoblox.network.update(...objref='network/ZG5zLm5ldHdvcmskMTkyLjE2OC4xLjAvMjQvMA:192.168.1.0/24/default',...comment='This is my updated network'...)u'network/ZG5zLm5ldHdvcmskMTkyLjE2OC4xLjAvMjQvMA:192.168.1.0/24/default'>>>network=infoblox.network.get(network='192.168.1.0/24')>>>print(network[0]['comment'])Thisismyupdatednetwork
当我们不再需要infoblox对象时,我们总是可以删除它。 删除对象时请确保传递对象引用。
>>>infoblox.network.delete(...objref='network/ZG5zLm5ldHdvcmskMTkyLjE2OC4xLjAvMjQvMA:192.168.1.0/24/default'...)u'network/ZG5zLm5ldHdvcmskMTkyLjE2OC4xLjAvMjQvMA:192.168.1.0/24/default'
作为最后一个例子,我们将看到如何在 infoblox对象。
下面是如何在 network对象以获取下3个可用的IP地址:
>>>infoblox.network.function(...objref='network/ZG5zLm5ldHdvcmskMTkyLjE2OC4xLjAvMjQvMA:192.168.1.0/24/default',..._function='next_available_ip',...num=3...){u'ips':[u'192.168.1.21',u'192.168.1.22',u'192.168.1.23']}
下面的示例调用 grid对象:
>>>from__future__importprint_function>>>frompyinfobloximportInfobloxWAPI>>>infoblox=InfobloxWAPI(...username='admin',...password='p4ssw0rd',...wapi='https://localhost/wapi/v1.1/'...)>>>grids=infoblox.grid.get()>>>print(grids)[{'_ref':'grid/b25lLmNsdXN0ZXIkMA:com'}]>>>grid=grids[0]['_ref']>>>infoblox.grid.function(...objref=grid,..._function='restartservices',...member_order='SEQUENTIALLY',...restart_option='RESTART_IF_NEEDED',...sequential_delay=10,...service_option='ALL'...)