NetBox, веб-приложение с открытым исходным кодом, предназначенное для управления компьютерными сетями и их документирования, является бесценным инструментом для сетевых инженеров и администраторов. Благодаря интуитивно понятному интерфейсу и надежному набору функций, NetBox упрощает управление сетевой инфраструктурой, предлагая такие функции, как управление IP-адресами (IPAM), инвентаризация устройств, отслеживание цепей и многое другое.
В этом руководстве описан пошаговый процесс установки NetBox в Ubuntu 22.04.
Шаг 1 – Установите PostgreSQL Server
NetBox использует PostgreSQL в качестве ядра базы данных, поэтому вы должны установить его на свой сервер. Вы можете установить его с помощью следующей команды.
apt update -y
apt install postgresql postgresql-contrib -y
Далее проверьте работу сервиса PostgreSQL.
systemctl status postgresql
Далее авторизуйтесь в PostgreSQL.
sudo -i -u postgres psql
ALTER USER postgres WITH PASSWORD ‘mysuperpass’;
Создание базы данных и пользователя для Netbox.
CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD ‘password’;
ALTER DATABASE netbox OWNER TO netbox;
GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netbox;
Выйдите из оболочки PostgreSQL.
\q
Шаг 2 – Установите Redis
NetBox использует Redis для кэширования, поэтому вам нужно будет установить его на свой сервер. Вы можете установить его с помощью следующей команды.
apt install redis -y
Вы можете проверить установку Redis с помощью следующей команды.
redis-server -v
Выпуск
Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=a3fdef44459b3ad6
Далее отредактируйте файл конфигурации Redis.
nano /etc/redis/redis.conf
Измените следующую строку, чтобы включить проверку подлинности Redis.
requirepass password #Здесь пишем свой пароль,который будет использоваться в настройках configuration.py REDIS+Cache
Сохраните файл, а затем перезапустите Redis, чтобы изменения вступили в силу.
systemctl restart redis-server
Шаг 3 – Установите Netbox
Во-первых, установите все необходимые зависимости.
apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev
Далее создайте директорию для NetBox.
mkdir -p /opt/netbox/
Затем измените каталог на NetBox и загрузите последнюю версию NetBox из репозитория Git.
cd /opt/netbox
git clone -b master —depth 1 https://github.com/netbox-community/netbox.git .
git config —global —add safe.directory /opt/netbox
Далее создайте пользователя и группу для NetBox.
adduser —system —group netbox
Измените владельца каталога NetBox.
chown —recursive netbox /opt/netbox
chown —recursive netbox /opt/netbox/netbox/media/
Затем переименуйте пример файла конфигурации NetBox.
cd /opt/netbox/netbox/netbox/
cp configuration_example.py configuration.py
Затем сгенерируйте секретный ключ.
python3 ../generate_secret_key.py
Выпуск.
python3 ../generate_secret_key.py
b2r$RM1Qx@5JCKDEfol7&2!ZO3(w0noGjTPSyg&9LUA##PdVch
Далее отредактируйте файл конфигурации NetBox.
nano configuration.py
Измените следующие строки:
#ALLOWED_HOSTS = [‘netbox.example.com’, »]
ALLOWED_HOSTS = [‘*’] # на время настройки поставим его, позже или сразу можно настроить с доменным именем;
DATABASE = {
‘NAME’: ‘netbox’,
‘USER’: ‘netbox’,
‘PASSWORD’: ‘password’, #Пароль базы
‘HOST’: ‘localhost’,
‘PORT’: »,
‘CONN_MAX_AGE’: 300,
}
REDIS = {
‘tasks’: {
‘HOST’: ‘localhost’,
‘PORT’: 6379,
‘PASSWORD’: ‘password’, # Пароль REDIS
‘DATABASE’: 0,
‘SSL’: False,
},
‘caching’: {
‘HOST’: ‘localhost’,
‘PORT’: 6379,
‘PASSWORD’: ‘password’, # Пароль REDIS
‘DATABASE’: 1,
‘SSL’: False,
}
}
SECRET_KEY = ‘3ChOm5a9!J)Ik*vxXNZBu&MdaQN545_Dyh93#PnII7uv_AeqNP’
Сохраните и закройте файл, затем установите NetBox с помощью следующей команды.
/opt/netbox/upgrade.sh
Этот блок для настройки ниже не нужен и идете на Шаг 4
====================================================================
python3 /opt/netbox/netbox/generate_secret_key.py
root@netbox:/opt/netbox/netbox/netbox# python3 /opt/netbox/netbox/generate_secret_key.py
q%w@G-AG0%iJA%1&fl@5Jk8yd39Kno#aYzE0*Jsqmw-I=ptTGB
python /opt/netbox/netbox/generate_secret_key.py
uz@*DBkj&vMumz8Vmn)Yv(7P5q9QobgdD4)o0^$@-tQBNux-DP
=================================================================
Шаг 4 – Создайте пользователя Netbox Admin
Во-первых, активируйте виртуальную среду NetBox.
source /opt/netbox/venv/bin/activate
Далее создаем суперпользователя для NetBox.
cd /opt/netbox/netbox
python3 manage.py createsuperuser
Определите пользователя и пароль, как показано ниже.
Username (leave blank to use ‘root’): nadmin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
Далее создаем символическую ссылку на служебный файл NetBox.
ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
Шаг 5 – Запустите сервер Netbox
Теперь вы можете запустить сервер NetBox с помощью следующей команды.
python3 manage.py runserver 0.0.0.0:8000 —insecure
System check identified no issues (0 silenced).
February 15, 2024 — 03:15:24
Django version 4.2.9, using settings ‘netbox.settings’
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
Теперь откройте веб-браузер и откройте NetBox, используя URL-http://netbox.example.com:8000. Вы увидите следующую страницу NetBox.
Нажмите на кнопку «Войти». Вы увидите следующую страницу.
Укажите имя пользователя и пароль администратора и нажмите «Войти». Вы увидите панель управления NetBox на следующем экране.
Наконец, отключитесь от виртуальной среды с помощью следующей команды.
deactivate
Шаг 6 – Создайте служебный файл systemd
По умолчанию NetBox поставляется с предварительно созданным системным файлом для управления NetBox.
Сначала скопируйте все необходимые файлы в нужное место.
cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
Затем перезагрузите демон systemd, чтобы изменения вступили в силу.
systemctl daemon-reload
Далее запустите и включите услугу NetBox.
systemctl start netbox netbox-rq
systemctl enable netbox netbox-rq
Теперь вы можете проверить сервис NetBox с помощью следующей команды.
systemctl status netbox
Выпуск.
● netbox.service — NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2024-02-15 03:20:32 UTC; 5s ago
Docs: https://docs.netbox.dev/
Main PID: 113448 (gunicorn)
Tasks: 6 (limit: 4579)
Memory: 506.7M
CPU: 6.533s
CGroup: /system.slice/netbox.service
├─113448 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn —pid /var/tmp/netbox.pid —pythonpath /opt/netbox/netbox —config /opt/netbox/gunicor>
├─113450 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn —pid /var/tmp/netbox.pid —pythonpath /opt/netbox/netbox —config /opt/netbox/gunicor>
├─113451 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn —pid /var/tmp/netbox.pid —pythonpath /opt/netbox/netbox —config /opt/netbox/gunicor>
├─113452 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn —pid /var/tmp/netbox.pid —pythonpath /opt/netbox/netbox —config /opt/netbox/gunicor>
├─113453 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn —pid /var/tmp/netbox.pid —pythonpath /opt/netbox/netbox —config /opt/netbox/gunicor>
└─113454 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn —pid /var/tmp/netbox.pid —pythonpath /opt/netbox/netbox —config /opt/netbox/gunicor>
Шаг 7 – Настройте Nginx в качестве обратного прокси
Сначала установите пакеты Nginx.
apt install nginx
Далее отредактируйте основной файл конфигурации Nginx.
nano /etc/nginx/nginx.conf
Добавьте следующую строку после строки http{:
server_names_hash_bucket_size 64;
Затем создайте новый файл конфигурации виртуального хоста Nginx.
nano /etc/nginx/conf.d/netbox.conf
Добавьте следующие конфигурации.
server {
listen 80;
server_name netbox.example.com;
access_log /var/log/nginx/netbox.access.log;
error_log /var/log/nginx/netbox.error.log;
client_max_body_size 25m;
# Proxy everything over to the netbox server
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_pass http://127.0.0.1:8001;
}
}
Сохраните файл и проверьте Nginx на наличие синтаксических ошибок.
nginx -t
Выпуск.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, перезапустите службу Nginx, чтобы изменения вступили в силу.
systemctl restart nginx
Теперь вы можете получить доступ к NetBox с помощью URL-адреса http://netbox.example.com.
Заключение
Следуя процессу установки, описанному в этом руководстве, сетевые администраторы могут использовать весь потенциал NetBox для оптимизации операций, улучшения видимости и поддержания хорошо документированной сетевой инфраструктуры. Используйте возможности NetBox в Ubuntu 24.04.1 LTS и уверенно управляйте своей сетевой инфраструктурой.