Установка и настройка 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 для получения дополнительных сведений о том, как делать все, что вам нужно настроить. В противном случае спасибо, что посетили и остались до конца.