netbox api的python客户端
netboxapi-client的Python项目详细描述
这是netbox(https://github.com/digitalocean/netbox)api的python客户端。它可以用作python模块/库,也可以直接从命令行使用。 这个项目的目标是提供一种简单的方法,根据netbox这个伟大项目中的rest api自动化基础设施文档。
状态
正在开发中。
当前的开发在netbox v2.2.2及更高版本上进行了测试。
安装
您可以克隆该repo并使用以下命令在本地安装:
python setup.py build && pip install -e .
正确的pypi包就在路上。
用法
从cli,使用配置文件:
将netboxapi.json.example文件复制到netboxapi.json并编辑该文件以匹配您的netbox实例url和令牌。
python netboxapi_client.py-h将为您提供可操作模型的概述。-h在cli的每个深度级别都可用。
下面是一些示例:
netboxapi_client -h netboxapi_client dcim -h category netboxapi_client dcim devices -h netboxapi_client dcim devices list netboxapi_client dcim devices create -d '$(cat mydevice.json)' netboxapi_client dcim devices create \ -d '{ "name": "sw-02-par-eq2", \ "slug": "sw-02-par-eq2", \ "device_role": "1", \ "device_type": "8", \ "site": "184" }' netboxapi_client dcim devices show -n sw-02-par-eq2 netboxapi_client dcim devices show -i 10 netboxapi_client dcim devices delete -n sw-02-par-eq2
源代码:
这是一个非常基本的示例:
frompprintimportpprintfromnetboxapi_clientimportApi,getTOKEN="thetokenyoucangetfromnetboxwebuionauserprofilepage"URL="https://netbox.example.org"api=Api(url=URL,token=TOKEN)res=get(api,model="dcim",obj="devices",name="sw-02-par-eq2")pprint(res)
现在,您必须导入api类和所需的函数(get、get_list、update、create、delete等等)。这将很快得到改善…
如何测试
安装docker和docker compose,然后:
sudo docker-compose run --rm netbox createsuperuser
系统将提示您输入超级用户的用户名、电子邮件和密码。
sudo docker-compose up -d
然后您必须连接到刚刚安装的netbox实例。应该可以在http://localhost:8000访问它。使用您先前选择的凭据登录。在右上角,您可以选择“用户名”>;“配置文件”。然后单击“api tokens”并创建一个,或者使用tests/basic.py中的一个writen,或者选择一个并替换此文件中的一个。(是的,令牌创建可以自动化,它将是…)
然后您可以尝试查询api,如前所述。
运行单元测试:
python tests/basic.py
待办事项
- 如果不需要,禁止发送多个请求/发现模型
- 更好地捕获异常,以便为用户提供更全面的输出
- 在github上设置ci/cd管道和生成状态
- 将docker image推送到公共repo中,并将docker-compose.yml、entrypoint.sh添加到repo中,将测试过程添加到文档中