はじめに
NetBox はオープンソースの IPAM、DCIM です。
たとえば、ネットワーク機器の情報を登録して、インターフェースへ IP アドレスを登録したりできます。
デフォルトでも様々な設定項目がありますが、必要に応じて追加できます。それがカスタムフィールドです。
この記事ではかんたんなサンプルで、カスタムフィールドの追加方法を紹介します。
- 動作確認環境
- NetBox 2.8.9
カスタムフィールドを追加する
ここでは admin
ユーザーで作業します。ログイン後、右上のメニューから Admin
をクリックします。
Admin 画面の Custom fields
の Add
をクリックします。
カスタムフィールドの追加画面が表示されます。
Object(s)
では、カスタムフィールドを追加したい対象のオブジェクトを選択します。複数選択もできます。
ここではデバイスに追加するものとして、dcim > device
を選択します。
例1: 数値項目の追加
デバイスに bgp_asn
というカスタムフィールドを追加します。
AS番号は数値なので、Type
は Integer
を選択します。
なお Type
は以下から選択できます。
- Text (デフォルト)
- Integer
- Boolean (true/false)
- Date
- Selection
入力を終えたら、ページ下部の Save and another
ボタンをクリックして、次のカスタムフィールドを追加する画面にうつります。
例2: 選択項目の追加
デバイスに、select_hoge
というカスタムフィールドを追加します。 選択肢としていくつか追加します。
Type
は Selection
を選択すます。
あわせて、ページ下部の CUSTOM FIELD CHOICES
欄で選択肢を入力します。
ページ下部の Save
ボタンをクリックして、カスタムフィールドの追加作業をおえます。
デバイスへのカスタムフィールドの値の設定
ここまでで、カスタムフィールドの追加ができました。データベースの列を追加したイメージです。まだ各行(ここではデバイスごと)に実際の値は入っていません。
ここから実際に、既存のデバイスにカスタムフィールドの値を設定します。
Admin 画面を抜け、通常の NetBox の画面から、対象のデバイス設定変更画面を開きます。
Customom fields
欄に、追加カスタムフィールドが2つ表示されます。(新規追加画面にも表示されます)
カスタムフィールド設定画面で設定した Label
と Descirption
は画面でも確認できます。Name
については画面には表示されずウラで管理のために利用さているイメージのようです。
select_hoge
の方は Name
のに設定して、Label
や Desciption
は設定しませんでしたが、微妙に整形されて Select hoge
というラベルととして表示されました。
ためしに、適当な値を入力、選択して保存します。
確認
設定したカスタムフィールドの値を確認します。
デバイスの情報表画面には以下のように表示されます。
API でこのデバイスの情報を GET すると、以下のようになりました。JSON 上のキーは、カスタムフィールドの Name
が使用されています。されています。選択肢の項目は、value
と label
に分かれるようです。value
はなんでしょうこれは・・。インデックスだと思うのですが、0オリジンでも1オリジンでもなく、2オリジンのように見えます。value
ではなく label
だけ意識すればよさそうです。
{ "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "name": "rt01", "display_name": "rt01", // (略) "custom_fields": { "bgp_asn": 65001, "select_hoge": { "value": 3, "label": "piyo2" } }, // (略) } ] }
おわりに
NetBox を使ってみたいけど、ちょっとだけ管理項目が足りないというときに、カスタムフィールドは便利そうです。