NetBoxを使ってみよう 3回: データの登録 (Organization & Device)

# 概要

NetBoxを使ってみようの第3回で、今回はデータの登録を行っていきます。
NetBoxでは組織のデータやデバイスの情報などを登録してそれらの情報の関係をつなぎ合わせることで、各情報へスムーズにアクセスを行うことができるようになります。
その登録方法として大きく以下4つがあり、今回はUIから手動で登録を行っていきます。

- UI上で手動で登録
- 一括インポート (CSV, YAML)
- スクリプト
- REST API
## 全記事
- [1回: Netboxとは](https://qiita.com/strawberryjam/items/671e006d427aac8bfe79)
- [2回: 構築をしてみる](https://qiita.com/strawberryjam/items/3ff4436036c7f1cd0916)
- 3回: データの登録 (organization & Device) ← 今ココ
- [4回: 仮想マシンの登録](https://qiita.com/strawberryjam/items/41a8b47b423e9e2d10bc)
- [5回: IPAM (IPアドレス管理)](https://qiita.com/strawberryjam/items/79432a2d4cc566e25b0e)
- [6回: プラグイン導入](https://qiita.com/strawberryjam/items/1af613105ff4a1d9517f)


## データの種類について
NetBoxでは非常に多くのデータを登録して管理することができます。
例えばデータセンターやデータセンターの地理情報、データセンター内のラックや、ラックに搭載されているデバイスの所在などなど非常に多いです。

今回はその中でも以下のデータを登録して関連付けていきます。

| データ名         | 大区分          | 概要                            |
| ------------ | ------------ | ----------------------------- |
| Tenant       | Organization | 所有組織や所有者を指すパラメータ              |
| Region       | Organization | 国や県(州)などの大まかな地理               |
| Site         | Organization | データセンターやオフィスなどの物理的な場所         |
| Location     | Organization | サイト内の具体的な区画や部屋などの場所           |
| Device       | Device       | 特定の1台のハードウェア機器                |
| Device Type  | Device       | デバイスの型番とかのデータ                 |
| Device Role  | Device       | ルーターやスイッチ、サーバーなどといったDeviceの役割 |
| Manufacturer | Device       | メーカー名                         |
| Interface    | Device       | Deviceが所有しているInterface        |

# Organization

## Tenantの登録

一番最初に設定すべきパラメータとしてTenatというものがあります。
これは他のデータに対しての所有組織や所有者を指すパラメータになっています。
1つのデータに対して1つ設定可能で、所有がどこかを明確にすべきDeviceやSite、IPアドレスなどほぼ全てのパラメータに関連付けることができます。
※RegionやDevice Type、Device Roleといった特定組織に限定されないようなものは設定対象外

今回は”Stjam-Dev”というパラメータで登録していきます。

| 項目     | 名称        |
| ------ | --------- |
| Tenant | Stjam-Dev |


登録方法は基本的にはどのデータにおいても、netbox左の欄から”+”マークを押すことで追加画面に移れます。
Tenantは“Organization”の区分に含まれています。

作成画面ではNameを入力してそのままCreateを選択して作成します。
Nameを入力すると自動で”Slug”は反映されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/9a9eb28b-7576-0509-9362-6449065872ee.png)



作成を行うと以下のようにTenantが確認できるようになります。
まだ何も関連付けていませんが、Tenantを関連付けると右側の”Related Objects”から数等が見れたり、リンクで各データの詳細画面に飛んだりできるようになります。
基本的にはこのあと作成するデータでTenantの関連付けができるものは全てこのTenantを設定していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/a1b82b52-1289-ea7a-671c-77689e50fd12.png)

なお、今回は実施していませんが、Tenantは”Tenant Group”という単位でまとめることもできます。
この”Group”レベルの管理は他のパラメータでも存在していたりしますが、基本的に今回はすべて無しで単一で進めていきます。

## Site関連の登録

NetBoxではDeviceなどを登録するにあたり、所在を明確にするためのデータをあらかじめ用意して関連付けて管理します。
所在を明確にするためのデータとして大きく以下3つがあり、これらを作成していく形になります。

- Region
    - 国や県などの大枠の地理を表す
    - 例: JP, East
    - 親子関係を作成可能
- Site
    - データセンターやオフィスなどの物理的な場所
    - 例: Tokyo-DC, Osaka-Office
- Location
    - Site内での更に詳細な場所
    - 例: 1F, Area-01
    - 親子関係を作成可能

以下のようなイメージでそれぞれ関連付けがされていく形です。
この場合だと、”JP”の”East”の”Reagion”に”Tokyo-DC”が”Site”としてあり、その中の”1F”に”Area-01”などの”Location”があることが明確です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/c5523ced-8186-aec6-79f8-1e9bcaeaac2e.png)


今回はそこまで大規模でもないため、親子関係等は作成せず以下のようにシンプルな構成で作成を行っていきます。

| 項目       | 名称     |
| -------- | ------ |
| Region   | JP     |
| Site     | Home   |
| Location | Living |


Tenantの時と同様に左の欄からReagionの”+”マークを押して、名前を入力して作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/3c2f6960-9bd6-3cef-d2e0-d30fd53b135a.png)



作成後、Reagionの画面が表示されます。
そのまま、”Add Suite”を選択して、Siteの作成も行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/06aca84b-4439-8d07-3439-86af9fe2a20d.png)

Siteの作成では、今回は名前の入力とテナントを選択して作成をします。
今回Reagionの画面から遷移しているため、Reagionは自動で選択されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/ebfc7bd8-f4d6-8c17-a00a-315b0257e2c1.png)

作成後Siteの画面が表示されます。
このまま、右下の”Add Locatoin”を選択してLocationの作成画面に移ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/8567ff9a-c105-cb0d-0be3-497ba801e07f.png)

こちらもSiteと同様に名前の入力とTenantを選択して作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/d274b53a-40da-295f-cda3-aa39fcb84ff9.png)

以上でOrganizationの準備は完了となります。
今回はかなりシンプルなデータとしましたが、親子関係を作ったり、グループを用いたり、更に細かいパラメータも設定しておくこともできますので、ぜひ試してみてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/3a23a75d-c67b-410b-cba9-e75f712edf9e.png)

一応今回の構成を図にするとこんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/32596da6-5c02-8dc7-8783-c7d8436cf8fa.png)





# Device
## Deviceの登録

続いてDevice関連のデータの登録を行っていきます。
Deviceの登録はかなり多くのデータがありますため、今回は登録予定の以下データの関係性にまず触れます。

- Manufacturer
    - メーカー名
- Device Type
    - デバイスの型番とかのデータ
- Device Role
    - ルーターやスイッチ、サーバーなどといったDeviceの役割
- Device
    - 特定の1台のハードウェアを指す
- Interface
    - Deviceが所有しているInterface

Deviceが保有するパラメータとしてDevice Type、Device Roleなどがあります。
そのDevice TypeとPlatformに関してはManufacturerというパラメータも持っている形になります。
更にDeviceにInterfaceを関連付けることもできます。

例えばCiscoのCatalyst 9000のSwitchを1台登録する場合、以下のような感じになります。
Switch01は、「CiscoメーカーのCatalyst 9000であり」「役割はSwitching Hubである」といったことがわかるような関連付けですね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/b7f977a8-b202-a9d7-bda2-8d436c649291.png)





今回は以下図のようにRouter、Switch、Serverを1台ずつ計3台登録していく形にしてみます。
それに関連するデータも以下図に示す通りに作成していきます。
※Switch-01のInterfaceはスペースの都合上、一部省略した図になっています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/9ce33800-b1a1-34fc-3b14-6081f52d1a8f.png)



まずManufacturerの登録を行っていきます。
ここは名前だけの設定のため、あらかじめ決めておいた名前でそれぞれ作成しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/073206c2-3a83-8af1-cbea-0c4fb8c2cfda.png)



続いてDevice Typeの作成を行います。
今回は名前とManufacturerの関連付けだけ行っておきます。
なお、ラックマウント型想定でサイズや重さなどを指定したり、画像を添付したりもすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/ac8e0c9d-84c1-41c9-713b-9cf54a1e8c0f.png)



あらかじめ決めておいた3種類全部登録しておきました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/cfc94593-2393-cf51-76ee-72bee276989b.png)



続いてDevice Roleの登録を行います。
名前の入力と色決めを求められるため、決めておいた3つをそれぞれ登録しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/111ea8e0-2c75-f1fb-b9ed-fb4e13189473.png)



そしていよいよDeviceの登録となります。
ここまでに準備しておいた”Device Type”と”Device Role”を紐づける形になります。
また、LocationやTenantの関連付けも忘れず行っておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/7e00b450-c7fc-8fbf-d0c2-7fbf9e9d9043.png)



3種類終えた感じは以下のようになります。
この時点でもどのようなDeviceかがすぐわかることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/2ba77e06-48a5-6807-188d-670ef72c9cad.png)



それではDeviceにInterfaceも追加します。
Deviceを開き、”Add Components”から”Interfaces”を選択して作成画面に遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/cfa483d6-3d7f-8699-cbfc-516a3bf74ab4.png)



作成画面では名前と関連付けるDeviceとType(1000-BASE-Tとかの規格)を入力及び選択する形になります。少し数が多いですが、それぞれのDeviceに関連付けて登録を行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/e231c00f-6c3e-f499-6892-ae543fd29b8b.png)



登録完了すると、このようにInterfaceが一覧で確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/1fa9cf84-16e3-6405-5808-5095cf9fbde8.png)

以上がDeviceの登録になります。


## ケーブルの接続

先ほど登録したInterface同士をCableで接続させることができます。
これを行うことで、SwitchのどのPortに何が刺さっているか、Portの空き状況はどうかなどを確認できるようになります。

Interfaceを開き、”Connect”を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/840b928e-753f-e00c-9a6e-edb3ae60528a.png)



Cableの作成画面に遷移します。
ここでは接続する2つのDeviceとそのInterfaceを指定します。
また、利用するCableの種類 (CAT6等)も登録しておくこともできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/feb2c588-4bab-0590-0208-e393aacb27f4.png)



関連付けを行うと以下のCONNECTION列のようにどこに刺さっているかが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/ecb02f06-bc4f-df0e-71c6-f94d0fec4386.png)



つながっている状態を図として表示させることもできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/956189b6-0459-cf7a-d68f-52310a8c0a0d.png)



# まとめ

今回はデータの登録を行っていきました。
登録してのDevice登録等はかなり大規模向けの管理な印象です。
まだまだ他にも関連付けられるデータもありますが、自宅環境程度であれば一旦今回の内容ぐらいで大丈夫かなという感じです。

**次の記事はこちら**

https://qiita.com/strawberryjam/items/41a8b47b423e9e2d10bc


## おまけ

私は全てTower型のPCをサーバーとして利用しているため用いていませんが、netboxではラック管理も行えます。
例えば、以下はnetboxの公開デモから持ってきた図ですが、このようにラックのどこに何があるかまで管理して、可視化できるもようです。
デバイスの登録時にパラメータとして機器のサイズやラックの配置場所も登録できるようになっていたりします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/406495/f6fccfea-4b9b-73c0-d839-11eba140b9a0.png)