netbox-community / devicetype-library Goto Github PK
View Code? Open in Web Editor NEWA collection of community-sourced DeviceType definitions for import to NetBox
License: Creative Commons Zero v1.0 Universal
A collection of community-sourced DeviceType definitions for import to NetBox
License: Creative Commons Zero v1.0 Universal
Some devices literally have integers for their names. Raritans for example have their power outlets be named 1,2,3 etc instead of Outlet1, Outlet2. Currently, if I submit the template as
power-outlets:
- name: 1
type: iec-60320-c13
power_port: Inlet1
feed_leg: A
It will fail. Instead I have to submit as:
power-outlets:
- name: Outlet1
type: iec-60320-c13
power_port: Inlet1
feed_leg: A
This means its giong to be double work to change it back to what it is. Netbox by itself is fine accepting only integers as names, but the devicetype-library isn't.
Thanks.
We use the Cisco Catalyst 2960S-48TD-L in our network. The information about the device can be found here: https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-2960-s-series-switches/data_sheet_c78-726680.html
---
manufacturer: Cisco
model: Catalyst 2960S-48TD-L
slug: ws-c2960s-48td-l
part_number: WS-C2960S-48TD-L
is_full_depth: false
u_height: 1
interfaces:
- name: FastEthernet0
type: 100base-tx
mgmt_only: true
- name: GigabitEthernet1/0/1
type: 1000base-t
- name: GigabitEthernet1/0/2
type: 1000base-t
- name: GigabitEthernet1/0/3
type: 1000base-t
- name: GigabitEthernet1/0/4
type: 1000base-t
- name: GigabitEthernet1/0/5
type: 1000base-t
- name: GigabitEthernet1/0/6
type: 1000base-t
- name: GigabitEthernet1/0/7
type: 1000base-t
- name: GigabitEthernet1/0/8
type: 1000base-t
- name: GigabitEthernet1/0/9
type: 1000base-t
- name: GigabitEthernet1/0/10
type: 1000base-t
- name: GigabitEthernet1/0/11
type: 1000base-t
- name: GigabitEthernet1/0/12
type: 1000base-t
- name: GigabitEthernet1/0/13
type: 1000base-t
- name: GigabitEthernet1/0/14
type: 1000base-t
- name: GigabitEthernet1/0/15
type: 1000base-t
- name: GigabitEthernet1/0/16
type: 1000base-t
- name: GigabitEthernet1/0/17
type: 1000base-t
- name: GigabitEthernet1/0/18
type: 1000base-t
- name: GigabitEthernet1/0/19
type: 1000base-t
- name: GigabitEthernet1/0/20
type: 1000base-t
- name: GigabitEthernet1/0/21
type: 1000base-t
- name: GigabitEthernet1/0/22
type: 1000base-t
- name: GigabitEthernet1/0/23
type: 1000base-t
- name: GigabitEthernet1/0/24
type: 1000base-t
- name: GigabitEthernet1/0/25
type: 1000base-t
- name: GigabitEthernet1/0/26
type: 1000base-t
- name: GigabitEthernet1/0/27
type: 1000base-t
- name: GigabitEthernet1/0/28
type: 1000base-t
- name: GigabitEthernet1/0/29
type: 1000base-t
- name: GigabitEthernet1/0/30
type: 1000base-t
- name: GigabitEthernet1/0/31
type: 1000base-t
- name: GigabitEthernet1/0/32
type: 1000base-t
- name: GigabitEthernet1/0/33
type: 1000base-t
- name: GigabitEthernet1/0/34
type: 1000base-t
- name: GigabitEthernet1/0/35
type: 1000base-t
- name: GigabitEthernet1/0/36
type: 1000base-t
- name: GigabitEthernet1/0/37
type: 1000base-t
- name: GigabitEthernet1/0/38
type: 1000base-t
- name: GigabitEthernet1/0/39
type: 1000base-t
- name: GigabitEthernet1/0/40
type: 1000base-t
- name: GigabitEthernet1/0/41
type: 1000base-t
- name: GigabitEthernet1/0/42
type: 1000base-t
- name: GigabitEthernet1/0/43
type: 1000base-t
- name: GigabitEthernet1/0/44
type: 1000base-t
- name: GigabitEthernet1/0/45
type: 1000base-t
- name: GigabitEthernet1/0/46
type: 1000base-t
- name: GigabitEthernet1/0/47
type: 1000base-t
- name: GigabitEthernet1/0/48
type: 1000base-t
- name: GigabitEthernet1/0/49
type: 1000base-x-sfp
- name: GigabitEthernet1/0/50
type: 1000base-x-sfp
- name: TenGigabitEthernet1/0/1
type: 10gbase-x-sfpp
- name: TenGigabitEthernet1/0/2
type: 10gbase-x-sfpp
console-ports:
- name: con0
type: rj-45
power-ports:
- name: PSU0
type: iec-60320-c14
maximum_draw: 55
Please add the device to your library, thanks!
Was going to model up the Dell FX2 Chassis, wanted to get people's input. I'm just going the model the 4bay version as its the most common I've seen, if somebody wants the 2, 3, 6, or 8 bay, I'm happy to do those as well.
Like the Dell M1000e Blade Center Chassis, it has bays on the back for networking modules.
Some are just direct passthrough to the network cards on the sled servers ("blades") that get plugged in the front. I think Front/Rear ports would be the best way to model this. This is helpful for tracing the mapping of the rear ports to which actual ethernet interfaces on which sled (a constant problem if you dont have the linked diagram taped to your rack...)
Unfortunately you can also get Network Switches which are intelligent layer 2/3 devices, and would (imo) be better suited for the parent/child device model given they are their own autonomous devices that have their own control planes. Additionally tracking the network interfaces between the sleds and the switching network module allow for better granularity in config management when using Netbox as a source for automatic configuration. But I could be convinced otherwise.
And to complicate maters, the network switch modules dont always have the same number of ports. So just statically setting them on the FX2 chassis device type seems clumsy.
As I'm writing this, I think a Parent/child is good for both, and an additional device type can just be of type patch panel (With front/rear ports).
Thoughts welcome.
NetBox v3.2 introduces module bays and inventory item templates. We can extend the existing schema to support these new models.
Hi,
The management interface is missing from the Juniper equipment. In addition there is a lot of other hardware not listed that I can easily create the templates for (other Juniper, equipment, PDU's etc.). Is there any docs on the format for the templates?
I am a b00b when it comes to github. I assume once I generate the files I can do a pull request?
Component labels were added in NetBox v2.9 and are supported for YAML import. The schema should be extended to allow these.
What is the best way to handle Master / Link PDUs in the devicetype-library and Netbox? I have a number of Servertech PDUs such as model STV-4101C (master) / SEV-4101C (Link). In my netbox deployment I've created a single YAML (attached as PDF for reference) that have both Master and Link power outlets but wondering if there is there a way to create individual device types for the master and link part numbers and then somehow "link" them in Netbox so they appear logically as a single device as they do for mgmt?
Let me know if this is a question better asked in https://github.com/netbox-community/netbox and I'll post there.
Thanks
It would be nice to mark Ethernet interfaces with POE technology.
It could be done by two approaches -
- name: GigabitEthernet1/0/1
type: 1000base-t-poe
- name: GigabitEthernet1/0/1
type: 1000base-t
poe: poe
poe would reflect basic types of POE by common name or by IEEE standard
I preffere the first aproach.
Question is if the same aproach could by applied in netbox itself too
I have done some experiments with the new module-bays option and noticed, that unknown/misspelled properties are currently ignored during schema validation and doesn't raise a failure.
This can be fixed by adding "additionalProperties": false, to the schema.json file.
Currently I have noticed the following unknown properties in use:
comments
comment
power-port
console-server-port
console_ports
power_ports
full_depth
For reference I added my pytest results with modified schema.json.
results.txt
I can open a pull requests to fix this if the issue is accepted.
There are duplicate file names with lower/upper case under Ubiquiti
HI,
Is it possible to also include in the device types the front/back images of the device?
Also i notice if i use the same name for part number/model the "+" sign isn't allowed.
For some cisco part this is use for example:
C4510R+E / WS-X4748-RJ45V+E
I've tried to import the C6807-XL template but I get an error
Invalid YAML data: mapping values are not allowed here in "", line 98, column 65: ... e" content="{"version": "4", "rollouts& ... ^
My Netbox version is 2.11.6
I've tried 3 other templates and get the same error.
Please can anyone help me fix this issue?
Thanks
Upon scripting the imports for all the device types I noticed that there is a Juniper device types with the same model and slug as other devices.
At the moment it appears to be:
device-types/Cisco/WS-C3560-48TS-S.yaml should be for a 48-port FastEthernet switch, yet the interfaces are labeled as GigabitEthernet0/X and type is 100base-tx
Template file name differs from the model and part_number attributes as well.
filename WS-C3560-48TS-S.yaml
model: WS-C3560G-48TS-S
slug: ws-c3560g-48ts-s
part_number: WS-C3560-24TS-S
I plan on submitting a correct WS-C3560-48TS-S but I'm not sure what to do about this template as it needs to be built from scratch
Tried to import the Juniper EX2300-C-12P template, but got the following error:
console-ports[1] all: Console port template with this Device type and Name already exists.
It appears to be due to the USB and serial console ports having the same name.
NetBox v2.8.7
In this repo we have "Catalyst 6506-E". What is the best way add to this chassis these front modules:
Mod Ports Card Type Model
---+-----+--------------------------------------+------------------
1 4 Sup 7-E 10GE (SFP+), 1000BaseX (SFP) WS-X45-SUP7-E
2 12 1000BaseX SFP WS-X4712-SFP-E
3 48 10/100/1000BaseT EEE (RJ45) WS-X4748-RJ45-E
4 48 10/100/1000BaseT EEE (RJ45) WS-X4748-RJ45-E
5 48 10/100/1000BaseT EEE (RJ45) WS-X4748-RJ45-E
Should I create new templates for modules?
model: QFX5120-32C
slug: qfx5120-32c
__
[ https://github.com/netbox-community/devicetype-library/blob/master/device-types/Juniper/QFX5120-32C.yaml ]
I have been working on a large field area network for roadside equipment (predominately Cisco). Equipment covers their ruggedised range of industrial ethernet switches, routers etc. Would these be a welcome addition to the device type library?
To use the full power of this repo, a github page should be generated from this repo via Travis.
This page is primarily used to get a direct overview of the already available devices, but also to get the data from netbox itself or other third party application via json request or similar and to process it dynamically.
Duplicate key in a device
Creating template power-ports with {'name': 'PSU0', 'type': 'iec-60320-c14', 'maximum_draw': 236, 'device_type': 196}
Created new power-ports: PSU0
Traceback (most recent call last):
File ".\netbox_import.py", line 327, in <module>
process_yaml(yfile)
File ".\netbox_import.py", line 318, in process_yaml
device_type = load_yaml(yml_file)
File ".\netbox_import.py", line 180, in load_yaml
return yaml.load(stream)
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\main.py", line 343, in load
return constructor.get_single_data()
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 113, in get_single_data
return self.construct_document(node)
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 123, in construct_document
for _dummy in generator:
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 723, in construct_yaml_map
value = self.construct_mapping(node)
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 440, in construct_mapping
return BaseConstructor.construct_mapping(self, node, deep=deep)
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 257, in construct_mapping
if self.check_mapping_key(node, key_node, mapping, key, value):
File "C:\Users\Brendan\AppData\Local\Programs\Python\Python38-32\lib\site-packages\ruamel\yaml\constructor.py", line 295, in check_mapping_key
raise DuplicateKeyError(*args)
ruamel.yaml.constructor.DuplicateKeyError: while constructing a mapping
in "C:\Users\Brendan\Downloads\devicetype-library-master\__temp__\devicetype-library\device-types\Cisco\cdb-8p.yaml", line 1, column 1
found duplicate key "u_height" with value "0" (original value: "0")
in "C:\Users\Brendan\Downloads\devicetype-library-master\__temp__\devicetype-library\device-types\Cisco\cdb-8p.yaml", line 8, column 1
To suppress this check see:
http://yaml.readthedocs.io/en/latest/api.html#duplicate-keys
Duplicate keys will become an error in future releases, and are errors
by default when using the new API.
What is the policy for submitting a PR(s) to fix deviceType definitions already checked into this repo?
Would it break some "remaining backwards compatible" rule in this repo? Since basically people just import, I don't see it being a problem to change - as the way forward would have the correct definitions.
Last question: There are Ruckus devices listed under the Brocade folder. Ruckus bought out Brocade, and all 7000 series devices are named Ruckus going forward. However, they are listed under that Brocade folder.
/tl;dr
I've recently come in possession of several Brocade and Ruckus (previously Brocade) networking gear.
As I am trying to use Netbox devicetype-library imports, I have noticed that the vast majority are naming the ports and switch assignments completely wrong.
For example, I recently added the Ruckus ICX7150-C12P here: #371
I spoke to the justification of the different naming conventions in that PR. In short, all of the existing Brocade deviceTypes with GigabitEthernet1/2
need to be changed to ge-1/1/1
, ge-1/1/2
and so on to match the switches' OS as well as Brocade's own literature.
Also, Netbox itself suggests ge-1/1/1
- so that's a bonus.
However, I do not know the implications of making such changes to this repo for people with existing Netbox installations.
To be clear: I'm only talking about updating the Brocade/Ruckus deviceTypes that I am personally familiar with. I would not touch any other types I do not know, nor any other manufacturer.
AP8853 definition of what should be power outlet 15 is mislabeled as "Power Outlet 1" which causes import to fail due to duplicate (line 69 of the YML file)
I added a template for Cisco C6840-X-LE-40G.
The DeviceType definition validation test should assert that the defined slug
comprises only allowed slug characters (letters, numbers, hyphens, etc.).
I added templates for the following devices:
Arista DCS-7050SX2-72Q-R
Arista DCS-7050TX-48-R
Arista DCS-7060CX-32S-R
Arista DCS-7148S-R
Arista DCS-7508
Hi,
the name of the file "QFX-5100-48S-3AFO.yaml" is not consistent with the content where the model is: "QFX5110-48S-3afo"
and part_number is "QFX5100-48S-3AFO".
Which of those is correct?
Thanks
When a user duplicates the same name for a particular object like console or interface in their device-type model, it would be good to catch said duplicate in order to prevent import errors.
This might be a github question.
If I have a pull request in progress for device types in a series of manufacturer.
I then start to work on new device types for another manufacturer. If I commit from the original fork these then confuse the pull request.
What is the best way to work on more than one set of device_types at the same time (or more likely the next set whilst waiting in the queue for the pull request to complete)?
From the docs:
Include only components which are fixed to the chassis. Optional modular components should be omitted from the definition. (Note that this does not exclude field-replaceable hardware that is expected to always be present, such as power supplies.)
I have a Tripp-Lite PDU. It has an optional SNMPWEBCARD installed. Should I build it as a parent device, and also create a child for the card?
You have a generic 24p and 48p patch panel. Do you want submissions for specific ones, such as a "Navepoint 24 port" or "Trendnet 48 port"? What about ones that have 110-style punchdown instead of 8p8c?
Is there a specific way to deal with a device that has a shared port? Say a switch that has 24 physical gige ports, and then 4 ports that are SFP+, but are "shared" with ports 21-24?
How would you prefer a device such as a 24 port keystone blank patch panel be added? (there are near infinite options for those, so would it be best to just have a default of rj45 jacks and let people edit them post-install?)
Thanks! This repo is great!
I am working on the template for WS-C3560-8PC and see the is a pair of physical interfaces that represent one logical interface: GigabitEthernet0/1
Is there a way to show it can be either the 1000base-x-sfp or 1000base-t depending on which interface you plug into? Is there a better way to represent this?
In pull request #285, several QNAP devices were added - but an additional yaml file, SX350X-24-K9.yml, was also erroneously added to the device-types folder. As best I can tell, this is a draft of one of the QNAP devices, but I can't tell for sure - so I didn't want to open a pull request to suggest how to fix it unless somebody can tell what it's supposed to be.
The following device type definitions contain duplicate keys, which are illegal as of YAML spec 1.2
device-types/Dell/PowerEdge_R640.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R620.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R630.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R720.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R740.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
device-types/Dell/PowerEdge_R730.yaml:18:1: [error] duplication of key "console-server-ports" in mapping (key-duplicates)
I would be willing to provide a pull request if a fix is appreciated.
NetBox v3.2 will introduce support for device modules (e.g. line cards). I'd like to add a second root directory to this repo named module-types
, which will mirror what exists today for device types.
The YAML definitions for module types are still TBD, and won't be finalized until NetBox v3.2.0 is released, but it should closely replicate the format used for device types. We'll likely need to refactor the tests though.
Every definition file should end with a newline. This is similar in nature to the requirement under PEP8, and ensures tidy output when dumping files at a command prompt.
Newer dell servers have 'slot' cards for onboard nics. multiple card options available. 1gb 10gb etc
If i put the effort into making a replacement yml file for this along with the 3 slot card options would this be accepted as a replacement for the likes of the dell r630 poweredge?
doco: https://qrl.dell.com/Files/en-us/Html/Manuals/R630/Back-panel%20features%20and%20indicators=GUID-C0B66403-F253-407C-B50C-90391617E03A=1=en-us=.html
search for ethernet connections.
hello,
import error when trying to import YML for DCS-7280SR2-48YC6
issue is due to interface definition "Ethernet33" is listed twice -- there is a Type-o where it should be fixed to "Ethernet43" -- changing that import works fine.
Hi can someone give advice or best way to add a Supermicro Server and JBOD to netbox?
I am using Freenas and I am trying to figure out the best way to organize and keep track of the hard drives gptid and serial numbers per each hard drive slot.
SuperMicro SuperServer 6029U-TRTP
connects to the super chassis via External SAS expander
SuperChassis 847DE1C-R2K04JBOD
Or does someone have a template I can upload of the jbod?
Hey guys, I am new to netbox and i work for dell emc. I created some new device types but i am trying to figure out how to test the yaml files before i submit PR.
I would like to contribute my device file for the CCR1036-8G-2S+EM (Rev A/2014?) which differs from the current revision of the CCR1036-8G-2S+EM. How should I name it before shooting it over to the device library? I was thinking about naming it CCR1036-8G-2S+EM (2014) or CCR1036-8G-2S+EM (Rev A) but that certainly would be inaccurate since I do not know what would be a proper way to refer to that model.
Main differences between the original revision and the current revision with the model are
N5K-C5648Q.yaml
and AIR-CT5508-K9.yaml
added at root directory rather than the Cisco vendor subdirectory
NOT AN ISSUE WITH device-type- library, but Netbox documentation.
The devicetype-library does not mention anywhere that the Maximum draw and Allocated draw could/should be included in the device type definition.
If this is not by design, please update the documentation to why it is excluded or include instructions to that this information could/should be added in the template.
Are there any plans on supporting front and rear images for the device types in this library ?
Not sure it is real issue ...
I have a few devices in my NetBox (v2.10.10) and I wanted to include them to this repo.
And I found, that exporting NetBox devices is not that easy ...
You can fail at these tests ...
First you fail on yamlint:
$ yamllint -c tests/yamllint.yaml device-types/Cisco/SG250-10P-K9.yaml
device-types/Cisco/SG250-10P-K9.yaml
1:1 warning missing document start "---" (document-start)
9:1 error wrong indentation: expected 2 but found 0 (indentation)
12:1 error wrong indentation: expected 2 but found 0 (indentation)
17:1 error wrong indentation: expected 2 but found 0 (indentation)
you have to edit file and make it YAML file (see 12dd3d4)
Than you can test if values are correct:
$ pytest -k SG250-10P-K9
NB can have (usually have) empty ('') subdevice_role in meaning "undefined", but DL requires exact value
(see a0431db)
Failed validating 'enum' in schema['properties']['subdevice_role']:
{'enum': ['parent', 'child'], 'type': 'string'}
NB can have empty string ('') power-port type in meaning "undefined", but DL requires exact value (and there is no value "Other")
Failed validating 'enum' in schema['properties']['power-ports']['items']['properties']['type']:
... a long list ...
(see a452128)
Other examples are "allocated_draw: null" - you need to delete it from NB export
(IMHO majority of devices define only maximum_draw in documentation ... I saw only PoE devices to define draw with and without full PoE)
(see 20d1e44)
May be it is minor problem, but for me it is annoying ... IMHO that extra work could prevent some contributors to finish their contribution.
Change tests or NetBox export (ideally both to share the same definition of output)
Is there a way to support multiple OS variation for the same device? Most of the WhiteBox / Bright Box supports different OS.
For example: Dell Devices support various NOSes (OS10, SONiC, Cumulus etc) each have a different interface naming convention. Is there a way to accommodate it? or Create 1 Yaml Per Device Per OS? I prefer extending the Interface section with the additional NOS key.
Hello,
I was wondering if it was possible to document in your readme.md the process for importing this data.
The integrated import feature in netbox only takes text, not full yaml files.
Regards,
part_number consisting of only numbers, without letters does not pass validation
example -
https://hub.digi.com/support/products/infrastructure-management/digi-cm/
part_number: 70001949
Can't find Cisco ASR920 router. Do I overlook it or should I create a PR?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.