netbox demo
参考链接: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的更多相关文章
- 通过一个demo了解Redux
TodoList小demo 效果展示 项目地址 (单向)数据流 数据流是我们的行为与响应的抽象:使用数据流能帮我们明确了行为对应的响应,这和react的状态可预测的思想是不谋而合的. 常见的数据流框架 ...
- 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo
有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触 ...
- 在线浏览PDF之PDF.JS (附demo)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址:http://mozilla.gith ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
- vue双向数据绑定原理探究(附demo)
昨天被导师叫去研究了一下vue的双向数据绑定原理...本来以为原理的东西都非常高深,没想到vue的双向绑定真的很好理解啊...自己动手写了一个. 传送门 双向绑定的思想 双向数据绑定的思想就是数据层与 ...
- Android Studio-—使用OpenCV的配置方法和demo以及开发过程中遇到的问题解决
前提: 1.安装Android Studio(过程略) 2.官网下载OpenCV for Android 网址:http:opencv.org/downloads.html 我下载的是下图的版本 3. ...
- iOS之ProtocolBuffer搭建和示例demo
这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题! 搭建pb编译器到时没有什么问题,只是在把*.pro ...
- 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match
今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...
- 无限分级和tree结构数据增删改【提供Demo下载】
无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...
随机推荐
- 自动化不知如何参数化(二)?xlrd来帮你解决
在昨天的博文中介绍了普通单元格数据的获取,以及单元格数据类型的转换,详细见博文:自动化不知如何参数化(一)?xlrd来帮你解决. 昨天的那篇博文中,还有个获取合并单元格数据的问题没解决,今天就专门来讲 ...
- [Abp vNext 源码分析] - 23. 二进制大对象系统(BLOB)
一.简介 ABP vNext 在 v 2.9.x 版本当中添加了 BLOB 系统,主要用于存储大型二进制文件.ABP 抽象了一套通用的 BLOB 体系,开发人员在存储或读取二进制文件时,可以忽略具体实 ...
- PHP array_key_exists() 函数
实例 检查键名 "Volvo" 是否存在于数组中: <?php $a=array("Volvo"=>"XC90","B ...
- Python List sort()方法
描述 sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数.高佣联盟 www.cgewang.com 语法 sort()方法语法: list.sort(cmp=None, ...
- static关键字设计原理
语法只是表象,原理才是关键!!! 灵魂static关键字 Java规定:方法只能由对象来调用. 换句话来说,在面向对象的思维下,方法与对象存在一种强耦合. 方法在没有对象的情况下无法调用,于是上帝派来 ...
- Spring 方法替换 了解一下
其实说简单的就是一个A Bean 在执行本方法的时候并不执行,而是调用另一个B Bean方法 要求B implements MethodReplacer @Override public ...
- .Net Core 3.0依赖注入替换 Autofac
今天早上,喜庆的更新VS2019,终于3.0正式版了呀~ 有小伙伴问了一句Autofac怎么接入,因为Startup.ConfigureServices不能再把返回值改成IServiceProvide ...
- 【NOIP2017】跳房子 题解(单调队列优化线性DP)
前言:把鸽了1个月的博客补上 ----------------- 题目链接 题目大意:机器人的灵敏性为$d$.每次可以花费$g$个金币来改造机器人,那么机器人向右跳的范围为$[min(d-g,1),m ...
- 【JZOJ4726】种花 题解(贪心+堆)
题目大意:在一个长度为$n$的环型序列中取出$m$个数使这$m$个数的和最大,且要求这$m$个数互不相邻. ---------------------- 考虑维护$nxt$和$lst$,即一个数的前驱 ...
- 借助GPU Boost和K80 Autoboost提高性能
原网站:https://devblogs.nvidia.com/increase-performance-gpu-boost-k80-autoboost/ 由于我主要使用nvidia-smi,故nvc ...