Установка и настройка NetBox IPAM & DCIM Tool в Ubuntu 20.04

Установка и настройка NetBox IPAM & DCIM Tool в Ubuntu 20.04

 

Прежде чем приступить к делу, давайте познакомимся с этим инструментом. NetBox — IPAM с открытым исходным кодом | Веб-приложение DCIM, используемое для управления и документирования компьютерных сетей и управления IP-адресами. Первоначально он был разработан командой сетевых инженеров DigitalOcean. Обзор его компонентов схематично представлен ниже.

 

Шаг 1. Установите необходимые зависимости

Лучший способ начать — установить все зависимости, необходимые для запуска NetBox в Ubuntu 20.04 LTS. Поэтому давайте отправимся в путь, установив все из них, как показано ниже.

sudo apt-get install -y git gcc nginx redis s python3-setuptools  graphviz python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

Разобравшись с этим, мы перейдем к следующим шагам по настройке базы данных и прочим.

Шаг 2: Установите и настройте PostgreSQL

Разработчики NetBox, должно быть, влюбились в PostgreSQL для хранения данных. По этой причине на этом этапе мы собираемся установить и настроить сервер PostgreSQL. К счастью, у нас есть подробное руководство по настройке PostgreSQL. Пожалуйста, проверьте приведенное ниже руководство, чтобы сделать это.

Установите сервер базы данных PostgreSQL в Ubuntu 20.04 (Focal Fossa)

После успешной установки PostgreSQL создайте базу данных и пользователя для NetBox, как показано ниже.

$ sudo -u postgres psql

CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'StrongPassword';
GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
\q

Подтвердите, что вы можете войти в базу данных как пользователь netbox.

$ psql -U netbox -h localhost -W

Password: 
psql (12.3 (Ubuntu 12.3-1.pgdg20.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

netbox=>

Шаг 3. Установите и настройте Netbox

Теперь мы подошли к концу этого руководства, где мы можем клонировать Netbox из git и начать процесс его настройки. Вы можете подышать свежим воздухом, а затем снова погрузиться в него, чтобы продолжить.

Перейдите в каталог /opt/ и клонируйте netbox из git

cd /opt/
sudo git clone -b master https://github.com/digitalocean/netbox.git
cd netbox/netbox/netbox/
sudo cp configuration.example.py configuration.py

Отредактируйте файл конфигурации и установите разрешенные данные для входа в систему и базу данных.

$ sudo vim configuration.py

# Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['localhost']

# PostgreSQL database configuration.
DATABASE = {
    'NAME': 'netbox',                           # Database name you created
    'USER': 'netbox',                           # PostgreSQL username you created
    'PASSWORD': 'StrongPassword',               # PostgreSQL password you set
    'HOST': 'localhost',                        # Database server
    'PORT': '',                                 # Database port (leave blank for default)
}

Создать пользователя NetBox

Мы настроим службы WSGI и HTTP для работы под учетной записью пользователя netbox. Мы также назначим этому пользователю право собственности на каталог мультимедиа. Это гарантирует, что NetBox сможет сохранять локальные файлы.

sudo groupadd --system netbox
sudo adduser --system netbox
sudo chown --recursive netbox /opt/netbox/netbox/media/

Настроить среду Python

Мы будем использовать виртуальную среду Python, чтобы гарантировать, что необходимые пакеты NetBox не конфликтуют ни с чем в базовой системе. Это создаст каталог с именем venv в нашем корне NetBox.

cd /opt/netbox/
sudo python3 -m venv /opt/netbox/venv

Затем активируйте виртуальную среду и установите необходимые пакеты Python.

$ cd /opt/netbox/
$ source venv/bin/activate
(venv) tech@ubuntu:/opt/netbox$

(venv) tech@ubuntu[email protected]:/opt/netbox$ sudo pip3 install -r requirements.txt
Collecting Django<3.1,>=3.0
  Downloading Django-3.0.8-py3-none-any.whl (7.5 MB)
     |████████████████████████████████| 7.5 MB 1.7 MB/s

СЕКРЕТНЫЙ КЛЮЧ

Создайте случайный секретный ключ из не менее 50 буквенно-цифровых символов.

$ cd /opt/netbox/netbox
$ sudo ./generate_secret_key.py

-bUf2WxTdH^8%Kcl(_gnN1ym)CEBoDGXe56Lv4FJrYzs@SthQO

Затем установите ключ в файле /opt/netbox/netbox/netbox/configuration.py

Пример:

$ sudo vim /opt/netbox/netbox/netbox/configuration.py
SECRET_KEY = '-bUf2WxTdH^8%Kcl(_gnN1ym)CEBoDGXe56Lv4FJrYzs@SthQO'

Запуск миграции базы данных

Перед запуском NetBox нам необходимо установить схему базы данных. Для этого нужно запустить python3 manage.py migrate из каталога netbox (/opt/netbox/netbox/в этом руководстве):

(venv) tech@ubuntu:/opt/netbox/netbox$ cd /opt/netbox/netbox/netbox/
(venv) tech@ubuntu:/opt/netbox/netbox$ sudo python3 manage.py migrate

Создать суперпользователя

NetBox не поставляется с предопределенными учетными записями пользователей. Вам нужно будет создать суперпользователя, чтобы иметь возможность входить в NetBox:

(venv) tech@ubuntu:/opt/netbox/netbox$ sudo python3 manage.py createsuperuser

Username (leave blank to use 'root'): Geeksadmin
Email address: geeksadmin@infoit.com.ua
Password: 
Password (again): 
Superuser created successfully.

Собирать статические файлы

(venv) tech@ubuntu-20:/opt/netbox/netbox$ sudo python3 manage.py collectstatic --no-input

976 static files copied to '/opt/netbox/netbox/static'

Шаг 4: Установите и настройте gunicorn

В этом руководстве мы настроим простой интерфейс WSGI с помощью Gunicorn.

Установите gunicorn с помощью pip3:

$ sudo pip3 install gunicorn
Collecting gunicorn
  Using cached gunicorn-20.0.4-py2.py3-none-any.whl (77 kB)
Requirement already satisfied: setuptools>=3.0 in /usr/lib/python3/dist-packages (from gunicorn) (45.2.0)
Installing collected packages: gunicorn
Successfully installed gunicorn-20.0.4

Настроить Gunicorn

Скопируйте /opt/netbox/contrib/gunicorn.py в /opt/netbox/gunicorn.py, затем отредактируйте его в соответствии со своими потребностями.

$ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
$ sudo vim /opt/netbox/gunicorn.py

# The IP address (typically localhost) and port that the Netbox WSGI process should listen on
bind = 'localhost:8001'

# Number of gunicorn workers to spawn. This should typically be 2n+1, where
# n is the number of CPU cores present.
workers = 5

# Number of threads per worker process
threads = 3
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
# Timeout (in seconds) for a request to complete
timeout = 120
#User
user = 'netbox'
# The maximum number of requests a worker can handle before being respawned
max_requests = 5000
max_requests_jitter = 500

Шаг 5: Настройте Systemd

Мы будем использовать systemd для управления демонизацией служб NetBox. Сначала скопируйте contrib/netbox.service и contrib/netbox-rq.service в каталог /etc/systemd/system/ как показано ниже:

sudo cp /opt/netbox/contrib/*.service /etc/systemd/system/

Затем запустите службы netbox и netbox-rq и разрешите им запускаться во время загрузки:

sudo systemctl daemon-reload
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

Шаг 6. Настройте веб-сервер Nginx

Давайте настроим веб-сервер Nginx, чтобы помочь нам получить доступ к Netbox через доменное имя, а не указывать IP-адрес и порт.
Создайте новый файл конфигурации Nginx для Netbox.

## Back up the default file
$ cd /etc/nginx/sites-enabled/
$ sudo mv default /tmp

## Create a new file for Netbox
$ sudo vim /etc/nginx/sites-enabled/netbox.conf

Добавьте приведенные ниже конфигурации в новый файл Netbox.

server {
    listen 80;
    server_name netbox.infoit.com.ua;
    client_max_body_size 25m;

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

    location / {
        proxy_pass http://localhost:8001;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Откройте файл /etc/hosts и добавьте строку ниже, содержащую ваше полное доменное имя, если у вас нет DNS.
netbox.infoit.com.ua 172.28.218.207

Шаг 7. Доступ к веб-интерфейсу Netbox

Откройте веб-браузер по умолчанию и откройте имя хоста сервера Netbox. Вы попадете на первую страницу как обычный пользователь. Если вы хотите внести административные изменения, вам нужно будет войти в систему с пользователем-администратором, созданным ранее, нажав « Войти », как показано ниже.

Это перенаправит вас на страницу входа. Введите пользователя с правами администратора, которого вы там настроили.

Заключение

Наконец-то у нас есть рабочий экземпляр Netbox, который вы можете использовать. Наслаждайтесь использованием этого инструмента для документирования вашей сетевой инфраструктуры и улучшения вашей организации. Обратитесь к официальной документации Netbox для получения дополнительных сведений о том, как делать все, что вам нужно настроить. В противном случае спасибо, что посетили и остались до конца.