💭
NetBoxをRockyLinux8にインストールしてみる
公式が出している手順を参考にインストールしてみます。
NetBoxとは
Netboxはネットワークの管理を支援するシステムであり、OSSで開発されています。
Netboxでは、IPアドレス管理(IPAM)、データセンタインフラストラクチャ管理(DCIM)の機能を持っており、以下のNWリソースの管理が可能です。
- IPアドレス(IPv4/IPv6)、VRF、VLAN
- ラック
- 機器(ルーター、スイッチ等)
- ケーブル、ケーブル接続
- 電源
- 仮想マシンとクラスター
- パスワード、秘密鍵などの暗号情報
※出典: OSSを使用した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.
Discussion