💭

NetBoxをRockyLinux8にインストールしてみる

2022/07/08に公開

公式が出している手順を参考にインストールしてみます。

NetBoxとは

Netboxはネットワークの管理を支援するシステムであり、OSSで開発されています。
Netboxでは、IPアドレス管理(IPAM)、データセンタインフラストラクチャ管理(DCIM)の機能を持っており、以下のNWリソースの管理が可能です。

yum updateの実施

$ sudo yum update -y

epelのインストール

$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

SELINUXの無効化

$ cat /etc/selinux/config | grep SELINUX=
# SELINUX= can take one of these three values:
SELINUX=disabled

Python3.9のインストール

$ yum install python3.9

Python3にPython3.9のシンボリックリンクを設定

$ ln -fs /usr/bin/python3.9 /usr/bin/python3
$ ln -fs /usr/bin/pip3.9 /usr/bin/pip3

PostgreSQLのインストール

今回はバージョン13をインストールします。

$ dnf module enable postgresql:13

PostgreSQLの設定

PostgreSQL-Serverのインストール

$ dnf install postgresql-server

PostgreSQL初期セットアップ

$ postgresql-setup --initdb

PostgreSQLの起動と自動起動ON

$ systemctl start postgresql
$ systemctl enable postgresql

PostgreSQLのユーザ作成とデータベース作成

$ sudo -u postgres psql
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'Passw0rd';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
\q

pg_hba.confの設定変更

$ sed -i -e 's/ident/md5/' /var/lib/pgsql/data/pg_hba.conf

PostgreSQLの再起動

$ systemctl restart postgresql

作成したユーザでログイン出来る確認する

$ psql -U netbox -h localhost -W
Password: <Input-Password>
psql (13.3)
Type "help" for help.

netbox=> \q

redisのインストールと動作確認

redisのインストール

$ yum install -y redis

起動と自動起動ON

$ systemctl start redis
$ systemctl enable redis

redisのバージョン確認と疎通確認

$ redis-server -v
$ redis-cli ping
PONG

NetBoxのインストール

$ mkdir -p /opt/netbox/ && cd /opt/netbox/
$ git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
$ groupadd --system netbox
$ adduser --system -g netbox netbox
$ chown --recursive netbox /opt/netbox/netbox/media/
$ cd /opt/netbox/netbox/netbox/
$ cp configuration_example.py configuration.py
$ vim configuration.py
$ diff configuration.py configuration_example.py
11c11
< ALLOWED_HOSTS = ['0.0.0.0','192.168.250.36']
---
> ALLOWED_HOSTS = []
17,18c17,18
<     'USER': 'netbox',               # PostgreSQL username
<     'PASSWORD': 'Passw0rd',           # PostgreSQL password
---
>     'USER': '',               # PostgreSQL username
>     'PASSWORD': '',           # PostgreSQL password
60c60
< SECRET_KEY = '9Do0a@hNLtldlEqZ********6fzu2(pdcuzO3nwJI2Nf'
---
> SECRET_KEY = ''

$ mkdir -p /opt/netbox/ && cd /opt/netbox/
$ git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
$ groupadd --system netbox
$ adduser --system -g netbox netbox
$ chown --recursive netbox /opt/netbox/netbox/media/
$ cd /opt/netbox/netbox/netbox/
$ cp configuration_example.py configuration.py
$ vim configuration.py
DATABASE = {
    'NAME': 'netbox',         # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'Passw0rd',           # PostgreSQL password
    'HOST': 'localhost',      # Database server
    'PORT': '',               # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,      # Max database connection age
}
$ python3 ../generate_secret_key.py
$ vim /opt/netbox/netbox/netbox/configuration.py
SECRET_KEY = '9Do0a@hNLtldl********F6fzu2(pdcuzO3nwJI2Nf'
$ ./opt/netbox/upgrade.sh
$ sudo /opt/netbox/upgrade.sh
$ source /opt/netbox/venv/bin/activate
$ cd /opt/netbox/netbox
$ python3 manage.py createsuperuser
$ ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
$ firewall-cmd --add-port=8000/tcp --permanent
$ firewall-cmd --reload
$ python3 manage.py runserver 0.0.0.0:8000 --insecure

NetBoxの起動

(venv) [root@localhost netbox]# python3 manage.py runserver 192.168.250.40:8000 --insecure
Performing system checks...

System check identified no issues (0 silenced).
July 07, 2022 - 06:27:18
Django version 4.0.5, using settings 'netbox.settings'
Starting development server at http://192.168.250.40:8000/
Quit the server with CONTROL-C.

NetBoxへログイン

Discussion