Найти в Дзене
ИТ Технологии

Установка Netbox IPAM на Ubuntu 20.04

Netbox - это бесплатный и мощный инструмент управления IP-адресами (IPAM) и инфраструктурой центра обработки данных (DCIM). Он используется для хранения информации о ваших сетях, виртуальных машинах, инвентаризации и многом другом. Первоначально он был разработан командой сетевых инженеров DigitalOcean. Этот инструмент написан на платформе Django Python и использует базу данных PostgreSQL. Сначало необходимо установить некоторые зависимости: apt-get install nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev -y Netbox использует PostgreSQL как базу данных, установим её: apt-get install postgresql postgresql-contrib -y Когда PostgreSQL будет установлен войдем в PostgreSQL: su - postgres
psql Далее создадим базу и пользователя в Netbox введя следующие комманды: CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'password'; Предоставим все привелегии к базе Netbox: GR

Netbox - это бесплатный и мощный инструмент управления IP-адресами (IPAM) и инфраструктурой центра обработки данных (DCIM). Он используется для хранения информации о ваших сетях, виртуальных машинах, инвентаризации и многом другом. Первоначально он был разработан командой сетевых инженеров DigitalOcean. Этот инструмент написан на платформе Django Python и использует базу данных PostgreSQL.

Сначало необходимо установить некоторые зависимости:

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

Netbox использует PostgreSQL как базу данных, установим её:

apt-get install postgresql postgresql-contrib -y

Когда PostgreSQL будет установлен войдем в PostgreSQL:

su - postgres
psql

Далее создадим базу и пользователя в Netbox введя следующие комманды:

CREATE DATABASE netbox;
CREATE USER netbox WITH PASSWORD 'password';

Предоставим все привелегии к базе Netbox:

GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

Сначала cмените каталог на /opt и загрузите последнюю версию Netbox из репозитория GitHub:

cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git

Cоздайте символическую ссылку на ,бинарный файл Python с помощью следующей команды:

ln -s /usr/bin/python3 /usr/bin/python

Измените каталог на /opt/netbox/netbox/ и сгенерируйте секретный ключ Django и временно сохраните:

cd /opt/netbox/netbox/
./generate_secret_key.py

Измените каталог на netbox и переименуйте файл конфигурации:

cd netbox
mv configuration.example.py configuration.py

Отредактируйте файл конфигурации Netbox и определите свою базу данных, секретный ключ и разрешенные хосты:

nano configuration.py

ALLOWED_HOSTS = ['your-server-ip']

# PostgreSQL database configuration. See the Django documentation for a complete list of available parameters:
# https://docs.djangoproject.com/en/stable/ref/settings/#databases
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'password', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
}

SECRET_KEY = 'Здесь введите ваш secret key, который Вы сгенерировали ранее'

Сохраните и закройте файл, затем установите все зависимости Python:

pip3 install -r /opt/netbox/requirements.txt

Перенести базу данных с помощью следующей команды:

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

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

python3 manage.py createsuperuser

Вам будет предложено ввести имя пользователя и пароль, как показано ниже:

Username (leave blank to use 'root'): netboxadmin
Email address: putdev@gmail.com
Password:
Password (again):
Superuser created successfully.

Cобрать статический файл:

python3 manage.py collectstatic

Вы должны увидеть что-то такое:

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

Установите gunicorn:

pip3 install gunicorn

Создать новый файл конфигурации Gunicorn для Netbox:

nano /opt/netbox/gunicorn_config.py

Добавьте следующие строки:

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

Сохраните и закройте файл.

Установите и настройте Supervisor

Supervisor - это система клиент / сервер, которая позволяет вам контролировать и управлять службой NetBox. Вы можете создать новый файл конфигурации Supervisor для Netbox с помощью следующей команды:

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

Сохраните и закройте файл, когда закончите. Затем перезапустите службу Supervisor:

systemctl restart supervisor

Рекомендуется настроить Nginx в качестве обратного прокси-сервера для доступа к Netbox через порт 80. Вы можете создать новую конфигурацию виртуального хоста Nginx.

nano /etc/nginx/sites-available/netbox.conf

Добавьте следующие строки:

server {
listen 80;
server_name your-server-ip;
client_max_body_size 25m;

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

location / {
proxy_pass http://your-server-ip:8001;
}
}

Сохраните и закройте файл. Затем создайте символическую ссылку на каталог /etc/nginx/sites-enabled/:

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

Затем проверьте Nginx на наличие синтаксических ошибок:

nginx -t

И в конце перезапустите службу Nginx, чтобы изменения вступили в силу:

systemctl restart nginx

Откройте свой веб-браузер и перейдите по URL-адресу http://your-server-ip.

На этом всё. Ваш сервер Netbox IPAM готов. До свидания!)