NetBoxを使った構成管理入門：初心者向け完全ガイド


## はじめに

### 本記事の目的

本記事では、NetBoxをデプロイし、構成管理を始めるための具体的な手順を提供します。初めてでもNetBoxを簡単に導入し、ネットワーク管理を効率化できるようサポートします。

### 本記事の対象者

NetBoxを使って構成管理を始めたい初心者の方を対象にしています。わかりやすい手順で、実際のデプロイメントをサポートします。

## NetBoxとは？

https://github.com/netbox-community/netbox

NetBoxは、ネットワークとデータセンターの構成を効率的に管理するオープンソースのツールです。以下の機能を提供します。

- **資産管理（Asset Management）**  
  ネットワークデバイス、サーバー、ラック、ケーブル、IPアドレスなどの物理的および論理的資産を一元管理できます。予約機能も備えています。

- **IPアドレス管理（IPAM）**  
  IPアドレス空間の効率的な管理と追跡を支援します。これにより、IPアドレスの使用状況を把握しやすくなります。

- **ケーブル管理**  
  物理ケーブルの接続状態や管理をサポートします。これにより、ケーブルの配線状況を可視化できます。

- **レイアウトと容量計画**  
  ラックやデバイスの物理的配置を可視化し、電力や冷却などの容量計画をサポートします。

- **トラブルシューティングと監査**  
  変更履歴の保持や担当者の管理を行い、トラブルシューティングや監査の助けになります。

- **自動化のサポート**  
  APIを通じて他のシステムやツールと連携し、データ登録やポートの自動アサインなどを自動化できます。

## 環境

本記事は、事前に準備した以下の環境を用いて実施しています。

- **AWS EC2**  
  使用しているOSはUbuntu 24.04です。
  EC2を使用する場合、構築したNetBoxにアクセスするために、パブリックIPアドレスを確認しておく必要があります。

- **Docker**  
  NetBoxのデプロイは複数の方法が存在しますが、導入が簡単なため、本記事ではDockerを利用します。
  以下のコマンドでDockerをインストールします。
  ```bash

   ### Add Docker's official GPG key:
    sudo apt-get update
    sudo apt-get install -y ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc

    ### Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt-get update

    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    ```
https://github.com/docker



## NetBoxのインストールと設定

NetBoxをインストールします。

   
**NetBoxのリポジトリをクローン**

 
GitHubからNetBoxのDockerイメージをクローンします。
本記事作成時点では、NetBoxの最新バージョン4.1.0を使用しています。


  ```bash
  git clone -b release https://github.com/netbox-community/netbox-docker.git
  cd netbox-docker
   ```

https://github.com/netbox-community/netbox-docker
    
**ymlの修正**

docker-compose.override.ymlに記載する形で、ポート番号の設定を追加します。

  ```bash
tee docker-compose.override.yml <<EOF
services:
    netbox:
      ports:
        - 8000:8080
EOF
  ```

このとき、ポート番号の設定（8000の部分）は、使用していない任意のポートに設定します。


**Docker ComposeでNetBoxを起動**

編集が完了したら、NetBoxを起動します。
 
   ```bash
sudo docker compose pull   　
sudo docker compose up -d
   ```


**起動できないとき**

起動時に、下記のように、netbox-docker-netbox-1のコンテナが起動に失敗することがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809796/16cfb51e-3158-32b3-41e0-f9890e34d483.png)

この時は、一度すべてのコンテナを停止し、再度起動することで、解決します。


 
   ```bash
    sudo docker compose down 
    sudo docker compose up -d
   ```

    
    
**NetBoxのユーザ作成**

NetBoxを利用するには、ログインユーザを作成する必要があります。

以下のコマンドを実行し、ログインユーザを作成できます。


```
docker compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
```


***ユーザ作成の別手段***
以下の方法でもログインユーザが作成できます。

次のコマンドを実行し、netbox-docker-netbox-1のコンテナのコンテナIDを確認します。

  ```bash
  sudo docker ps
  ```

確認したコンテナIDを使用してコンテナにアクセスし、ログインユーザを作成します。

  ```bash
  sudo docker exec -it <コンテナID> /bin/bash
  ./manage.py createsuperuser
  ```

**動作確認**

ブラウザでIPアドレスと指定したポートにアクセスし、NetBoxが正常に動作しているか確認します。

前手順で作成したログインユーザでログインすることができます。


##  NetBoxでの構成管理の基本操作

NetBoxの基本的な構成管理操作は、直感的なGUIを通じて簡単に行えます。例えば、以下の操作が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3809796/6071dc95-df2a-3169-80c2-fd0664cf1ae9.png)


- **デバイスの登録**  
  ネットワークデバイスやサーバーを「デバイス」セクションで登録します。デバイスの名前やタイプ、ラック位置などを入力できます。

- **IPアドレスの管理**  
  「IPAM」セクションでは、IPアドレスの範囲やアサイン先を管理できます。新しいIPアドレスを追加し、各アドレスの使用状況を追跡できます。

- **ケーブルの接続管理**  
  「接続」セクションで、物理ケーブルの接続状況を管理します。どのポートがどのデバイスに接続されているかを可視化できます。

- **ラックの配置**  
  「ラック」セクションで、ラックの配置やデバイスの取り付け位置を管理します。ラックのサイズやデバイスの取り付け位置を確認できます。

これらの操作は、NetBoxの画面で簡単に行えるため、視覚的に構成管理がしやすくなります。

## まとめ

本記事では、NetBoxをデプロイし、構成管理を効率化する方法を解説しました。NetBoxは、ネットワークやデータセンターの構成を一元管理できる強力なツールです。特に初心者にとっても使いやすい操作性を提供しています。以下が重要なポイントです：

- **NetBoxをセットアップ**  
  Dockerを利用してNetBoxをデプロイしました。

- **基本的なNetBoxの機能**  
  資産管理、IPアドレス管理、ケーブル管理など、多機能で構成管理を簡素化します。

- **NetBoxの操作方法**  
  デバイス登録やIPアドレス管理など、直感的なGUIで構成管理が可能です。

NetBoxを活用することで、ネットワークインフラの管理が大幅に効率化され、視覚的に把握しやすくなります。今後の構成管理に役立ててください。