はじめに
NetBox には、各オブジェクトの画面ごとにカスタムリンクを作成できます。
他のシステムへのリンクも作成できます。また、リンクやテキストにはオブジェクトの名前やJinja2構文を使って動的に変えることもできます。
活用例
例えば、以下のようなことが実現できます。
この記事では、カスタムリンクの作成方法をご紹介します。
- 動作確認環境
- NetBox 2.8.9
■ 基本的なカスタムリンクの作成方法
デバイスの管理画面に、そのデバイスのコンフィグを表示するためののリンク(GitHub リポジトリ上)を作る例をもとに、カスタムリンクの作成方法を説明します。
カスタムフィールド追加画面を開く
ここでは、カスタムフィールドの追加と同様に admin
ユーザーで作業します。ログイン後、右上のメニューから Admin をクリックします。
全体の管理画面で、Custom links
をクリックします。
カスタムフィールド一覧画面で ADD CUSTOM LINK
をクリックします。
カスタムフィールド追加画面が表示されます。
カスタムリンクの内容を入力する
カスタムフィールド追加画面で内容を追加します
Content type
Content type
では、カスタムリンクを作成したい対象のオブジェクトの種類を選択します。
例えばデバイスの画面に作成したい場合は dcim > devie
を、IP アドレス画面に作成したい場合は、ipam > IP Address
を選択します。
ここでは、dcim > devie
を選択します。
Name
Name
では、カスタムリンクの名前を入力します。リンクのテキストではなく、カスタムリンクそのものを区別するための名前です。
ここでは、config
と入力します。
Group name
(任意)
Group name
では、このリンクを含めるグループの名前を入力します。
同じグループのリンクは、同じドロップダウンリストの 1つの項目になります。
以下の図は 、Group name
に Select link
を入力して複数のカスタムリンクをまとめた場合の例です。
Group name
を入力しない場合は、横並びの独立したリンクになります。
ここでは、未入力にします。
Weight
Weight
では、同じ画面に複数のカスタムリンクを作成する場合の表示順を指定します。
Weight が小さいリンクが左に、大きいリンクが右に表示されます。
ここでは、デフォルトの 100
のままにします。
Button class
Button class
では、リンクのボタンの意味合いや色を指定します。
選択できる class と実際の表示は以下の通りです。
ここでは、デフォルトの Default
のままとします。
New window
New window
では、リンクを新しいウィンドウ(タブ)で開くかどうかを指定します。デフォルトはオフなので、同じ画面で開きます。
ここでは、チェックをいれます。
Text
Text
では、リンクの表示上の文字列を指定します。
オブジェクトの名前などの情報や、Jinja2 構文が利用して、動的に内容を変更できます。
画面内の説明には、Reference the object as {{ obj }}.
とあり、 {{ obj }}
でオブジェクト名(例えばデバイス名)を参照できます。
Jinja2 のフィルターを併用して、例えば、{{ obj | replace('-', '_') }}
とすると、core-rt-01
は core_rt_01
になります。
他にも条件式や、ユーザー、権限情報も利用できるようです。詳細は公式ドキュメントを参照してください。
他、obj
でオブジェクトのどんな情報が使えるかは、以下の記事を参照してください。
ここでは config
と入力します。
URL
URL
では、実際のリンク先の URL を指定します。
http(s)://
から始めると、外部のURLになります。
/hoge
のように、/
から始めると、自サイトからのルートの指定になります。
例えば、http://netbox.example.com/dcim/devices/1/
を開いている場合は、リンクは http://netbox.example.com/hoge
になります。
hoge
のように、単純な文字列の指定だと、現在開いている URL の末尾に付加した URL になります。
例えば、http://netbox.example.com/dcim/devices/1/
を開いている場合は、リンクは http://netbox.example.com/dcim/devices/1/hoge
になります。
また,先程の Text
と同様に、オブジェクトの情報や Jinja2 構文が利用できます。
ここでは、https://github.com/akira6592/tekunabe/blob/master/config/{{ obj }}.txt
を入力します。
この指定により、デバイス名が rt01
であれば{{{ obj }}.txt
の部分が rt01.txt
になります。
確認する
先程デバイス画面に対して作成したカスタムリンクを確認します。
任意のデバイス画面を開きます。画面右にカスタムリンクがあることを確認します。
リンクを開くと、デバイス名を含む URL が新しい開いたことを確認します。
※ このファイルはあとで削除するかもしれません。
■ おわりに
リンクがあるだけで、他システムとの連携がある程度できることもあるので、カスタムリンクは便利な機能だと思いました。