Как установить NetBox Network Documentation and Management Tool на Ubuntu 20.04 LTS
Это руководство существует для этих версий ОС
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 18.04 (Bionic Beaver)
На этой странице
- Предпосылки
- Начало работы
- Установка и настройка базы данных PostgreSQL
- Установка и настройка NetBox
- Установка и настройка Gunicorn
- Установка и настройка Supervisor
- Настройка Nginx для NetBox
- Доступ к веб-интерфейсу Netbox
- Заключение
Netbox — это бесплатный и мощный инструмент управления IP-адресами (IPAM) и инфраструктурой центров обработки данных (DCIM). Он используется для хранения информации о ваших сетях, виртуальных машинах, инвентаризации и многом другом. Первоначально он был разработан командой сетевых инженеров DigitalOcean. Этот инструмент написан на платформе Django Python и использует базу данных PostgreSQL. Его цель состоит в том, чтобы функционировать как специфичный для предметной области источник правды для сетевых операций.
В этом руководстве мы объясним, как установить Netbox с Nginx в качестве обратного прокси-сервера в Ubuntu 20.04.
Предпосылки
- Сервер под управлением Ubuntu 20.04.
- На вашем сервере настроен пароль root.
Начиная
Перед запуском вам нужно будет установить некоторые зависимости, необходимые для Netbox. Вы можете установить их все, выполнив следующую команду:
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
После установки всех пакетов можно переходить к следующему шагу.
Установка и настройка базы данных PostgreSQL
Netbox использует базу данных PostgreSQL для хранения данных. Вы можете установить его с помощью следующей команды:
apt-get install postgresql postgresql-contrib -y
После установки PostgreSQL войдите в PostgreSQL с помощью следующей команды:
su - postgres
:~$ psql
Вы должны получить следующий результат:
psql (12.2 (Ubuntu 12.2-4)) Type "help" for help.
Затем создайте базу данных и пользователя для Netbox с помощью следующей команды:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';
Затем предоставьте все привилегии базе данных Netbox с помощью следующей команды:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Затем выйдите из оболочки PostgreSQL с помощью следующей команды:
postgres=# exit
:~$ exit
Установить и настроить нетбокс
Сначала измените каталог на /opt и загрузите последнюю версию Netbox из репозитория Git Hub, используя следующую команду:
cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git
Затем создайте символическую ссылку на двоичный файл Python с помощью следующей команды:
ln -s /usr/bin/python3 /usr/bin/python
Затем измените каталог на /opt/netbox/netbox/ и сгенерируйте секретный ключ Django, выполнив следующую команду:
cd /opt/netbox/netbox/
./generate_secret_key.py
Вы должны получить следующий результат:
)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
Затем измените каталог на 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 = ')eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'
Сохраните и закройте файл, затем установите все зависимости 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: Password: Password (again): Superuser created successfully.
Затем соберите статический файл с помощью следующей команды:
python3 manage.py collectstatic
Вы должны увидеть следующий вывод:
976 static files copied to '/opt/netbox/netbox/static'.
Установить и настроить Гуникорн
Netbox — это приложение на основе Django. Поэтому вам нужно будет установить Gunicorn в вашей системе. Вы можете установить его, выполнив следующую команду:
pip3 install gunicorn
После установки 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 — это клиент-серверная система, позволяющая отслеживать и контролировать службу 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
Вы также можете проверить статус службы Supervisor с помощью следующей команды:
systemctl status supervisor
Вы должны получить следующий результат:
? supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-05-30 05:49:08 UTC; 14s ago Docs: http://supervisord.org Main PID: 550606 (supervisord) Tasks: 5 (limit: 4691) Memory: 184.3M CGroup: /system.slice/supervisor.service ??550606 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ??550626 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??550628 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??550629 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??550630 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi May 30 05:49:08 ubunt4 systemd[1]: Started Supervisor process control system for UNIX. May 30 05:49:08 ubunt4 supervisord[550606]: 2020-05-30 05:49:08,664 CRIT Supervisor is running as root. Privileges were not dropped becau> May 30 05:49:08 ubunt4 supervisord[550606]: 2020-05-30 05:49:08,664 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during p> May 30 05:49:08 ubunt4 supervisord[550606]: 2020-05-30 05:49:08,671 INFO RPC interface 'supervisor' initialized May 30 05:49:08 ubunt4 supervisord[550606]: 2020-05-30 05:49:08,671 CRIT Server 'unix_http_server' running without any HTTP authentication> May 30 05:49:08 ubunt4 supervisord[550606]: 2020-05-30 05:49:08,672 INFO supervisord started with pid 550606 May 30 05:49:09 ubunt4 supervisord[550606]: 2020-05-30 05:49:09,676 INFO spawned: 'netbox' with pid 550626 May 30 05:49:11 ubunt4 supervisord[550606]: 2020-05-30 05:49:11,060 INFO success: netbox entered RUNNING state, process has stayed up for
Настроить Nginx для NetBox
Рекомендуется настроить 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: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, перезапустите службу Nginx, чтобы изменения вступили в силу.
systemctl restart nginx
Вы также можете проверить Nginx с помощью следующей команды:
systemctl status nginx
Вы должны получить следующий результат:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2020-05-30 22:28:13 EST; 4min 14s ago Process: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 985 (nginx) Tasks: 3 (limit: 25028) Memory: 5.5M CGroup: /system.slice/nginx.service ??985 nginx: master process /usr/sbin/nginx ??986 nginx: worker process ??987 nginx: worker process May 30 21:28:12 ubunt4 systemd[1]: Starting The nginx HTTP and reverse proxy server... Mar 30 21:28:12 ubunt4 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Mar 30 21:28:12 ubunt4 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful Mar 30 21:28:13 ubunt4 systemd[1]: Started The nginx HTTP and reverse proxy server.
На данный момент веб-сервер Nginx настроен для обслуживания Netbox через порт 80. Теперь вы можете перейти к доступу к веб-интерфейсу Netbox.
Доступ к веб-интерфейсу Netbox
Откройте веб-браузер и перейдите по адресу http://your-server-ip. Вы будете перенаправлены на следующую страницу:
Нажмите на кнопку Войти. Вы должны увидеть страницу входа в Netbox на следующем экране:
Введите имя пользователя и пароль администратора Netbox и нажмите кнопку войти . Вы должны увидеть панель управления Netbox по умолчанию на следующей странице:
Заключение
В этом руководстве вы узнали, как установить Netbox на Ubuntu 20.04 с помощью Nginx. Теперь вы можете приступить к документированию вашей сетевой инфраструктуры. Для получения дополнительной информации посетите официальную документацию Netbox. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.