参考链接:https://pypi.org/project/python-netbox/

# python 参考链接

https://ttl255.com/pynetbox-netbox-python-api-client-p1-getting-info/

https://ttl255.com/pynetbox-netbox-python-api-client-part-2-creating-objects/

https://ttl255.com/pynetbox-netbox-python-api-client-part-3-updates-and-deletions/

https://ttl255.com/pynetbox-netbox-python-api-client-part-4-tags-auto-assing-prefixes/

https://pynetbox.readthedocs.io/en/latest/

# 下载python包

pip3 install python-netbox

# golang 示例:

package main

import (
"context"
"github.com/netbox-community/go-netbox/netbox"
"github.com/netbox-community/go-netbox/netbox/client/dcim"
"github.com/netbox-community/go-netbox/netbox/client/ipam"
"github.com/netbox-community/go-netbox/netbox/models" log "github.com/sirupsen/logrus"
) func main() {
//c := netbox.NewNetboxAt("x.x.x.x:9999")
c := netbox.NewNetboxWithAPIKey("x.x.x.x:9999", "1f3c19b9586d875e74a36fe227d3e54d87ecf2be") // List site
req := dcim.NewDcimSitesListParams()
siteList, err := c.Dcim.DcimSitesList(req, nil)
if err != nil {
log.Fatalf("Cannot get sites list: %v", err)
return
}
log.Infof("siteList: %v", siteList) for _, v := range siteList.Payload.Results {
log.Infof("site id : %v", v.ID)
log.Infof("site name: %v", v.Name)
} // create vrf
var vrfID int64
{
tags := []string{""}
name := "test_vrf"
data := &models.WritableVRF{
Tags: tags,
EnforceUnique: true,
Name: &name,
}
p := ipam.NewIpamVrfsCreateParamsWithContext(context.TODO())
p = p.WithData(data)
vrf, err := c.Ipam.IpamVrfsCreate(p, nil)
if err != nil {
log.Fatalf("Cannot create vrf: %v", err)
return
}
log.Infof("vrf: %v", vrf)
vrfID = vrf.Payload.ID
} // create prefix
var prefixID int64
{
prefix := "100.100.100.0/24"
tags := []string{"abcdef"}
data := &models.WritablePrefix{
Prefix: &prefix,
Vrf: &vrfID,
Description: "",
IsPool: true,
Tags: tags,
}
p := ipam.NewIpamPrefixesCreateParams()
p = p.WithContext(context.TODO())
p = p.WithData(data)
pf, err := c.Ipam.IpamPrefixesCreate(p, nil)
if err != nil {
log.Fatalf("Cannot create prefix: %v", err)
return
}
log.Infof("prefix: %v", pf)
prefixID = pf.Payload.ID
} // allocate ip addr
{
tags := []string{""}
data := &models.WritablePrefix{
Vrf: &vrfID,
Tags: tags,
Description: "",
}
p := ipam.NewIpamPrefixesAvailableIpsCreateParamsWithContext(context.TODO())
p = p.WithData(data)
p = p.WithID(prefixID)
addr, err := c.Ipam.IpamPrefixesAvailableIpsCreate(p, nil)
if err != nil {
log.Fatalf("Cannot allocate ip addr: %v", err)
return
}
log.Infof("allocate addr: %v", addr)
} // create ip addr
{
ipAddr := "100.100.100.100/24"
tags := []string{""}
data := &models.WritableIPAddress{
Address: &ipAddr,
Vrf: &vrfID,
Tags: tags,
Description: "",
}
p := ipam.NewIpamIPAddressesCreateParamsWithContext(context.TODO())
p = p.WithData(data)
addr, err := c.Ipam.IpamIPAddressesCreate(p, nil)
if err != nil {
log.Fatalf("Cannot allocate ip addr: %v", err)
return
}
log.Infof("create addr: %v", addr)
}
}

netbox demo的更多相关文章

  1. 通过一个demo了解Redux

    TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象:使用数据流能帮我们明确了行为对应的响应,这和react的状态可预测的思想是不谋而合的. 常见的数据流框架 ...

  2. 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo

    有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...

  3. 在线浏览PDF之PDF.JS (附demo)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址:http://mozilla.gith ...

  4. 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo

    Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...

  5. vue双向数据绑定原理探究(附demo)

    昨天被导师叫去研究了一下vue的双向数据绑定原理...本来以为原理的东西都非常高深,没想到vue的双向绑定真的很好理解啊...自己动手写了一个. 传送门 双向绑定的思想 双向数据绑定的思想就是数据层与 ...

  6. Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决

    前提: 1.安装Android Studio(过程略) 2.官网下载OpenCV for Android 网址:http:opencv.org/downloads.html 我下载的是下图的版本 3. ...

  7. iOS之ProtocolBuffer搭建和示例demo

    这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题! 搭建pb编译器到时没有什么问题,只是在把*.pro ...

  8. 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match

    今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...

  9. 无限分级和tree结构数据增删改【提供Demo下载】

    无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...

随机推荐

  1. form表单两种提交方式的不同

      我们在使用<Form>表单的时候,最常用的提交方式就是Get和Post.我们都知道这两种方式最大的差别就是安全性,除此之外,它们还有哪些其他的区别,你知道吗?   在<Form& ...

  2. DOM事件操作

    DOM事件:对事件做出反应 当事件发生时,可以执行 JavaScript,比如:点击时 onClick="" 例:当用户点击时,会改变 <h1> 元素的内容: < ...

  3. three.js 郭先生制作太阳系

    今天郭先生收到评论,想要之前制作太阳系的案例,因为找不到了,于是在vue版本又制作一版太阳系,在线案例请点击博客原文(加载时间比较长,请稍等一下).话不多说先看效果图. 图片有点多,先放三张,相比于上 ...

  4. PHP array_fill() 函数

    ------------恢复内容开始------------ 实例 用给定的键值填充数组: <?php$a1=array_fill(3,4,"blue");print_r($ ...

  5. Skill 脚本演示 ycSetNetColor.il

    https://www.cnblogs.com/yeungchie/ ycSetNetColor.il 将原理图中某一 netName 的所有连线同时修改为一种 颜色 / 线宽. 回到目录

  6. bzoj 3790 神奇项链 回文串 manacher|PAM

    LINK:神奇项链 存在两个操作:1. 一个操作可以生成所有形式的回文串 2.一个操作可以将两个串给合并起来 如果前缀和后缀相同还可以将其并起来. 多组询问 每次询问合成一个串所需最少多少次2操作. ...

  7. “商家参数格式有误”应用切微信H5支付完美解决方案

    一.业务场景发生 最近在跟一些合作公司作业务对接,在对方的APP中接入我们的H5支付,包括微信和支付宝. 那就开搞,进展顺利,貌似一切都在掌握之中,给到对方一个链接即可调起支付.形如: https:/ ...

  8. 安装ElasticSearch遇到的深坑

    实验需要ES,安装过程中遇到一些奇葩的问题,记录下.下面介绍下安装步骤: 第一步:安装java ES是运行在java虚拟机上面的,所以首先需要安装java环境,安装过程不再赘述,唯一需要注意的是ES对 ...

  9. 题解 [SHOI2002]滑雪

    记忆化搜索$||dp||$剪枝 先讲方法,代码待会上 方法一:记忆化搜索 这个方法不怎么解释,就是每搜索完一个高度的最长路径记录一下,以后搜索其他的点时如果走到了这条路就直接用记录的值计算就是了 方法 ...

  10. [转]Maven类包冲突终极三大解决技巧

    举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖).这 ...