Установка NetBox в Ubuntu

NetBox — веб-приложение для документирования/учета и управления компьютерных сетей.
При большом количестве сетей, устройств, позволяет визуально разместить его в стойках, вести базу банных и т.д.
Для примера выполню тестовую установку NetBox в Ubuntu 18.04.

Переключимся на root пользователя:

sudo -i

Установим сервер баз данных PostgreSQL:

apt update
apt install postgresql libpq-dev
systemctl status postgresql
systemctl is-enabled postgresql
systemctl enable postgresql
systemctl restart postgresql

Создадим базу данных и пользователя:

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

Сделаем тестовое подключение к базе данных и отключимся:

psql -U netbox -W -h localhost netbox
\q

Установим Redis:

apt install redis-server
systemctl is-enabled redis
systemctl enable redis
systemctl restart redis
systemctl status redis

Проверим (в ответ должно отобразится «PONG»):

redis-cli ping

Установим прочие необходимые компоненты:

apt install python3.7 python3-pip python3.7-venv python3.7-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev supervisor

Скопируем ссылку на последнюю версию NetBox тут https://github.com/netbox-community/netbox/releases и скачаем, например:

cd /opt/
wget https://github.com/netbox-community/netbox/archive/v3.0.2.tar.gz
tar -xzf v3.0.2.tar.gz -C /opt
ln -s netbox-3.0.2/ netbox
ls -l /opt | grep netbox
cd /opt/netbox/

Создадим системного пользователя:

adduser --system --group netbox
chown --recursive netbox /opt/netbox/netbox/media/

Установим зависимости Netbox:

python3.7 -m pip install -r /opt/netbox/requirements.txt
python3.7 -m pip install django psycopg2

Создадим файл конфигурации из примера:

cd /opt/netbox/netbox/netbox/
cp configuration.example.py configuration.py
nano /opt/netbox/netbox/netbox/configuration.py

Укажем ранее созданного пользователя для доступа к базе данных, в ALLOWED_HOSTS укажем домен вашего сервера или все *:

DATABASE = {
    'NAME': 'netbox',
    'USER': 'netbox',
    'PASSWORD': 'ixnfo.com',
...
ALLOWED_HOSTS = ['ixnfo.com', 'test.ixnfo.com']
#ALLOWED_HOSTS = ['*']

Генерируем секретный ключ:

python3 -V
cd /opt/netbox/netbox/
python3.7 ./generate_secret_key.py

Укажем его в файле конфигурации, например:

nano /opt/netbox/netbox/netbox/configuration.py
SECRET_KEY = 'XeV@7#NzCRRw-SPjI6JJi3Rh##qqcU2JpOA%z0b_PY1-So7X5Q'

Настроим gunicorn:

pip3 install gunicorn

nano /opt/netbox/gunicorn_config.py

command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '192.168.24.73:8001'
workers = 3
user = 'www-data'

Создадим файл конфигурации супервизора:

nano /etc/supervisor/conf.d/netbox.conf

[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
systemctl restart supervisor.service
systemctl is-enabled supervisor.service
systemctl enable supervisor.service
systemctl status supervisor.service

Перенесем данные в базу данных и статические файлы:

cd /opt/netbox/netbox/
python3.7 manage.py migrate
python3.7 manage.py collectstatic
python3.7 manage.py loaddata initial_data

Создадим администратора:

python3.7 manage.py createsuperuser

Обновим:

/opt/netbox/upgrade.sh

Настроим веб конфигурацию, например:

nano /etc/nginx/conf.d/netbox.conf

server {
    listen 80;
    server_name test.ixnfo.com;
    client_max_body_size 25m;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

    location / {
        proxy_pass http://192.168.24.73:8001;
    }
}

Проверим веб конфигурацию nginx и перезапустим его:

nginx -t
systemctl restart nginx

После этого можно открыть NetBox в браузере и войти под ранее созданным администратором.

Оставьте комментарий

Добавить комментарий