Поиск по сайту:

Как установить NetBox IRM в Debian 11


На этой странице

  1. Предпосылки
  2. Установка сервера PostgreSQL
  3. Установка сервера Redis
  4. Установка NetBox IRM
  5. Создание пользователя-администратора NetBox
  6. Настройка NetBox в качестве службы Systemd
  7. Настройка Apache2 в качестве обратного прокси-сервера
  8. Заключение

NetBox — это программное обеспечение для моделирования ресурсов инфраструктуры (IRM), предназначенное для автоматизации сетей и проектирования инфраструктуры. Изначально он был создан командой DigitalOcean, а теперь стал проектом с открытым исходным кодом, выпущенным под лицензией Apache 2. NetBox был создан в веб-инфраструктуре Python Django с PostgreSQL в качестве базы данных по умолчанию, и установка NetBox очень похожа на другие веб-приложения Python Django.

NetBox помогает вам управлять вашей инфраструктурой, которая включает в себя:

  • DCIM (управление инфраструктурой центра обработки данных)
  • IPAM (управление IP-адресами)
  • Цепи данных
  • Подключения (сеть, консоль и питание)
  • Стойки для оборудования
  • Виртуализация
  • Секреты

В этой статье вы узнаете, как установить NetBox Infrastructure Resource Modeling на сервер Debian 11. Эта статья включает в себя базовую установку базы данных PostgreSQL, сервера Redis и базовую настройку Apache2 в качестве обратного прокси-сервера. В конце концов, у вас будет запущенный и работающий NetBox на вашем Debian 11 с включенным HTTPS/SSL поверх него.

Предпосылки

Для выполнения этого руководства вам потребуются следующие требования:

  • Один экземпляр сервера Debian 11.
  • Пользователь без полномочий root с правами root/администратора.
  • Доменное имя указывало на ваш сервер Debian.

Установка PostgreSQL-сервера

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

Для текущей версии NetBox требуется как минимум PostgreSQL версии 10 или выше. В Debian 11 репозиторий предоставляет сервер PostgreSQL v13 по умолчанию.

Для начала запустите приведенную ниже команду apt, чтобы обновить репозиторий Debian и индекс пакета.

sudo apt update

Теперь установите сервер PostgreSQL, используя следующую команду apt. Введите Y для подтверждения и нажмите ENTER, после чего начнется установка PostgreSQL.

sudo apt install postgresql postgresql-common

Теперь, когда вы закончили установку PostgreSQL, запустите следующую команду systemctl, чтобы проверить службу PostgreSQL. Вы должны увидеть, что PostgreSQL включен и будет запускаться автоматически при загрузке системы. И текущий статус службы PostgreSQL работает.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Далее вы создадите новую базу данных PostgreSQL и пользователя для Nextbox. Для этого вы должны войти в консоль PostgreSQL.

Выполните следующую команду, чтобы войти в консоль PostgreSQL, используя роль «postgres».

sudo -u postgres psql

Теперь выполните следующие запросы в консоли PostgreSQL, чтобы создать новую базу данных и пользователя. в этом примере мы создадим новую базу данных с именем \netboxdb\ и пользователя PostgreSQL \netbox\ с паролем \NetBoxRocks\.

CREATE DATABASE netboxdb;
CREATE USER netbox WITH ENCRYPTED PASSWORD 'NetBoxRocks';
GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netbox;

Теперь нажмите \Ctrl+d\, чтобы выйти из консоли PostgreSQL, или введите \\q\ для выхода.

Чтобы проверить базу данных и пользователя, выполните следующую команду. Это позволит подключиться к оболочке PostgreSQL с помощью пользователя «netbox» в базе данных «netboxdb» на вашем сервере PostgreSQL.

При запросе пароля базы данных введите пароль NetBoxRocks\.

sudo -u postgres psql --username netbox --password --host localhost netboxdb

После входа в консоль PostgreSQL и базу данных \netboxdb\ выполните следующий запрос, чтобы проверить текущее соединение. И вы должны увидеть, что вы подключены к базе данных PostgreSQL \netboxdb\ с пользователем \netbox\.

\conninfo

Нажмите \Ctrl+d\ для выхода из консоли PostgreSQL или введите \\q\ для выхода.

Установка Redis-сервера

Redis — это хранящаяся в памяти база данных «ключ-значение», которая будет использоваться NetBox для кэширования и создания очередей. Итак, теперь вы установите сервер Redis на свой сервер Debian.

На момент написания этой статьи для последней версии NetBox требовался Redis версии 4.0 или выше. последний репозиторий Debian 11 предоставляет Redis v5.6.

Чтобы начать установку Redis, выполните приведенную ниже команду apt. введите Y, чтобы подтвердить установку, и нажмите ENTER, после чего начнется установка Redis.

sudo apt install redis-server

По завершении установки выполните следующие команды systemctl, чтобы проверить службу Redis. Вы должны увидеть, что служба Redis включена и будет запускаться автоматически при загрузке системы. И текущий статус службы Redis работает.

sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

Установка Redis по умолчанию выполняется без аутентификации. Для рабочей среды рекомендуется использовать аутентификацию на сервере Redis. Чтобы включить аутентификацию Redis, вы измените файл конфигурации \/etc/redis/redis.conf\

Выполните следующую команду, чтобы изменить файл конфигурации Redis \/etc/redis/redis.conf\.

sudo nano /etc/redis/redis.conf

Раскомментируйте параметр «requirepass» и введите пароль для аутентификации Redis. в этом примере мы будем использовать пароль \RedisPasswordNetBox\.

requirepass RedisPasswordNetBox

Когда вы закончите, сохраните и закройте файл.

Теперь выполните следующую команду, чтобы перезапустить службу Redis и применить новые изменения.

sudo systemctl restart redis-server

Чтобы проверить аутентификацию Redi, выполните приведенную ниже команду \redis-cli\, чтобы подключиться к консоли Redis.

redis-cli

Теперь выполните следующую команду, чтобы проверить вашу аутентификацию Redis. Если ваш пароль правильный, вы увидите выходное сообщение, такое как «ОК».

AUTH RedisPasswordNetBox

Теперь нажмите \Ctrl+d\, чтобы выйти из консоли Redis.

Установка NetBox IRM

NetBox — это веб-приложение с открытым исходным кодом, написанное на платформе Python Django. Таким образом, установка NetBox очень похожа на Python Django Web-Framework. Для последней версии Netbox требуется как минимум Python v3.8 или выше.

Перед началом установки NetBox выполните следующую команду, чтобы создать нового системного пользователя \netbox\, который будет использоваться для запуска веб-приложения NetBox.

sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox

Установите Python3 и некоторые зависимости пакета с помощью приведенной ниже команды apt.

sudo apt install -y git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

После завершения установки выполните следующую команду, чтобы создать новый каталог установки NetBox \/opt/netbox\ и клонировать исходный код NetBox с помощью команды Git.

mkdir -p /opt/netbox; cd /opt/netbox
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .

Теперь измените владельца каталога установки NetBox на правильного пользователя \netbox\, используя следующую команду.

sudo chown -R netbox:netbox /opt/netbox

Затем переместите рабочий каталог в \/opt/netbox/netbox/netbox\ и скопируйте пример конфигурации NetBox \configuration_example.py\ в \configuration.py\.

cd /opt/netbox/netbox/netbox
sudo -u netbox cp configuration_example.py configuration.py

Перед редактированием файла конфигурации netBox выполните следующую команду, чтобы сгенерировать \SECRET_KEY\ для NetBox. Скопируйте сгенерированный \SECRET_KEY\ в свой редактор, он будет использоваться позже при редактировании файла \configuration.py\.

sudo -u netbox python3 ../generate_secret_key.py

Выполните следующую команду, чтобы начать редактирование файла \configuration.py\.

sudo -u netbox nano configuration.py

Теперь вам нужно настроить установку NetBox, как показано ниже:

  • В конфигурации \ALLOWED_HOSTS\ введите доменное имя для установки NetBox и IP-адрес сервера. В этом примере NetBox будет установлен под доменным именем \netbox.hwdomain.io\ и IP-адресом сервера \192.168.5.20\.
  • Введите сведения о базе данных PostgreSQL для вашего NetBox в параметр \DATABASE\.
  • Введите пароль Redis в конфигурации \REDIS\. Обязательно измените пароль как на разделы «задачи», так и на «кэширование».
  • Наконец, вставьте сгенерированный \SECRET_KEY\ в файл.

# domain and IP address
ALLOWED_HOSTS = ['netbox.hwdomain.io', '192.168.5.20']

# database configuration
DATABASE = {
    'NAME': 'netboxdb',               # Database name
    'USER': 'netbox',               # PostgreSQL username
    'PASSWORD': 'NetBoxRocks', # PostgreSQL password
    'HOST': 'localhost',            # Database server
    'PORT': '',                     # Database port (leave blank for default)
    'CONN_MAX_AGE': 300,            # Max database connection age (seconds)
}

# Redis cache configuration
REDIS = {
    'tasks': {
        'HOST': 'localhost',      # Redis server
        'PORT': 6379,             # Redis port
        'PASSWORD': 'RedisPasswordNetBox',           # Redis password (optional)
        'DATABASE': 0,            # Database ID
        'SSL': False,             # Use SSL (optional)
    },
    'caching': {
        'HOST': 'localhost',
        'PORT': 6379,
        'PASSWORD': 'RedisPasswordNetBox',
        'DATABASE': 1,            # Unique ID for second database
        'SSL': False,
    }
}

# Secret key
SECRET_KEY = '!22_UYNLcWw+_5=$$=8mtL#JImfOlD*-KiuI6h'

Когда вы закончите, сохраните и закройте файл.

Теперь, чтобы начать установку NetBox, вы можете запустить сценарий \upgrade.sh\, как показано ниже.

sudo -u netbox /opt/netbox/upgrade.sh

Этот сценарий установит и настроит установку NetBox автоматически. Подробная версия ниже:

  • Это создаст новую виртуальную среду Python для вашей установки NetBox.
  • При этом также будут установлены некоторые зависимости и библиотеки Python для NetBox.
  • Выполнение миграции базы данных для NetBox.
  • Создание ресурса статических файлов для NetBox.

Ниже приведен вывод, когда начинается установка.

Когда установка будет завершена, вы увидите следующий вывод.

Создание пользователя-администратора NetBox

Вы завершили базовую установку NetBox. Теперь вы создадите нового пользователя-администратора для NetBox. И это также похоже, когда вам нужно создать пользователя-администратора Django.

Выполните следующую команду, чтобы активировать виртуальную среду Python.

source /opt/netbox/venv/bin/activate

Переместите рабочий каталог в \/opt/netbox/netbox\. Затем запустите сценарий \manage.py\, чтобы создать нового администратора для NetBox.

cd /opt/netbox/netbox
python3 manage.py createsuperuser

Введите имя пользователя, адрес электронной почты и пароль для NextBox.

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

sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

Наконец, выполните следующую команду, чтобы протестировать и проверить установку NetBox. если ваша установка верна, вы увидите, что netBox теперь работает на порту «8000».

python3 manage.py runserver 0.0.0.0:8000 --insecure

Теперь нажмите \Ctrl+c\ для терминала для процесса. Затем выполните команду \деактивировать\, чтобы выйти из виртуальной среды Python.

Настройка NetBox в качестве службы Systemd

После завершения настройки администратора для NetBox. Теперь вы настроите NetBox как службу systemd. Служба NetBox будет работать под обратным прокси-сервером Gunicorn и HTTP.

Вся необходимая конфигурация NetBox Gunicorn и сервисный скрипт systemd доступны по умолчанию в каталоге \/opt/netbox/contrib\.

Выполните следующую команду, чтобы скопировать конфигурацию Gunicorn в \/opt/netbox/gunicorn.py\. Затем отредактируйте файл с помощью редактора nano.

sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo -u netbox nano /opt/netbox/gunicorn.py

В конфигурации по умолчанию приложение NetBox будет работать на локальном хосте с портом \8001\. Вы можете оставить конфигурацию по умолчанию или внести изменения в зависимости от вашей среды.

bind = '127.0.0.1:8001'

Сохраните и закройте файл конфигурации, когда закончите.

Затем скопируйте файлы службы systemd в каталог \/etc/systemd/system\, используя следующую команду. Это включит две службы: службу netbox в качестве основной службы для вашего приложения NetBox и службу netbox-rq для службы очереди запросов NetBox.

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

Теперь перезагрузите системный менеджер, чтобы применить новые служебные файлы NetBox.

sudo systemctl daemon-reload

После перезагрузки диспетчера systemd вы можете запустить службы \netbox\ и \netbox-rq\ с помощью команды systemctl, как показано ниже. обе службы будут запускаться автоматически при запуске системы.

sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

Наконец, проверьте службы NetBox с помощью следующей команды.

sudo systemctl status netbox
sudo systemctl status netbox-rq

В следующем выводе видно, что служба \netbox\ включена. И текущий статус работает.

Для службы netbox-rq\ вы также получите выходные данные службы. И она работает.

Настройка Apache2 в качестве обратного прокси

Запустите приведенную ниже команду apt, чтобы установить веб-сервер Apache2. Введите Y, чтобы подтвердить установку, и нажмите ENTER, и установка начнется.

sudo apt install apache2

После завершения установки Apache2 выполните следующую команду, чтобы включить некоторые модули Aapche2, которые будут использоваться для обратного прокси-сервера. Вы должны увидеть, что некоторые дополнительные модули также включены.

sudo a2enmod ssl proxy proxy_http headers

Затем скопируйте образец конфигурации виртуального хоста Apache2 для NetBox в \/etc/apache2/sites-available/netbox.conf\. Затем отредактируйте файл \/etc/apache2/sites-available/netbox.conf\ с помощью редактора nano.

sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.conf

Измените доменное имя для установки NetBox и путь сертификатов SSL. В этом примере мы будем использовать домен \netbox.hwdomain.io\ с сертификатами SSL от Letsencrypt, которые доступны в каталоге \/etc/letsencrypt/live/netbox. .hwdomain.io/\.

<VirtualHost *:443>
    ProxyPreserveHost On

    # CHANGE THIS TO YOUR SERVER'S NAME
    ServerName netbox.hwdomain.io

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/netbox.hwdomain.io/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/netbox.hwdomain.io/privkey.pem

    Alias /static /opt/netbox/netbox/static

    <Directory /opt/netbox/netbox/static>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Require all granted
    </Directory>

    <Location /static>
        ProxyPass !
    </Location>

    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
    ProxyPass / http://127.0.0.1:8001/
    ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>

Когда вы закончите, сохраните и закройте файл.

Теперь выполните следующую команду, чтобы активировать конфигурацию виртуального хоста \netbox.conf\. Затем протестируйте и проверьте конфигурацию Apache. Вы должны получить выходное сообщение, такое как «Синтаксис в порядке», что означает, что конфигурация Apache2 верна.

sudo a2ensite netbox.conf
sudo apachectl configtest

Теперь перезапустите службу Apache2, чтобы применить новые изменения к файлу виртуального хоста. Веб-сервер Apache2 теперь работает с включенным протоколом HTTPS/SSL, в отличие от веб-приложения NetBox, работающего на \localhost:8001\.

sudo systemctl restart apache2

Чтобы проверить установку, откройте веб-браузер и перейдите на доменное имя установки NetBox (например, https://netbox.hwdomain.io/). И вы должны получить панель администрирования для NetBox с заблокированным статусом.

Нажмите на кнопку \Войти\ в правом верхнем углу.

Теперь введите имя администратора и пароль для установки netBox и нажмите \Войти\.

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

Заключение

С помощью этого руководства вы настроили моделирование ресурсов инфраструктуры NetBox (IRM) с базой данных PostgreSQL, системой кэширования Redis, Gunicorn и обратным прокси-сервером Apache2 на сервере Debian 11. Вы также настроили NetBox как службу systemd, которая упрощает запуск и остановку веб-приложения NetBox. В конце концов, вы полностью настроили NetBox IRM, работающий на вашем сервере Debian, с включенным защищенным протоколом HTTPS/SSL поверх него.