NetBox je bezplatný a opensource webový aplikační software, který lze použít ke správě a dokumentaci počítačových sítí. Je speciálně navržen pro správu IP adresy a infrastruktury datového centra prostřednictvím webového prohlížeče. NetBox je napsán v rámci Django Python a pro databázi používá PostgreSQL. S NetBoxem můžete snadno spravovat a dokumentovat virtuální stroje a clustery, datové okruhy, síťová, konzolová a napájecí připojení z centrálního umístění.
V tomto tutoriálu vysvětlíme, jak nainstalovat NetBox na server Ubuntu 18.04.
Požadavky
- Server se systémem Ubuntu 18.04.
- Na vašem serveru je nastaveno heslo uživatele root.
Začínáme
Nejprve aktualizujte balíček vašeho systému na nejnovější verzi pomocí následujícího příkazu:
apt-get update -y
apt-get upgrade -y
Jakmile jsou všechny balíčky aktualizovány, restartujte systém, aby se uplatnily všechny konfigurační změny.
Dále budete muset nainstalovat požadované závislosti ke spuštění NetBoxu. Všechny je můžete nainstalovat pomocí následujícího příkazu:
apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y
Jakmile jsou všechny závislosti nainstalovány, můžete přejít k dalšímu kroku.
Instalace a konfigurace PostgreSQL
Dále budete muset nainstalovat PostgreSQL na váš server. Ve výchozím nastavení není nejnovější verze PostgreSQL dostupná ve výchozím úložišti Ubuntu 18.04. Budete tedy muset do svého systému přidat úložiště PostgreSQL.
Nejprve si stáhněte a přidejte klíč GPG pomocí následujícího příkazu:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Dále přidejte úložiště pomocí následujícího příkazu:
nano /etc/apt/sources.list.d/postgres.list
Přidejte následující řádek:
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main
Uložte a zavřete soubor. Poté aktualizujte úložiště a nainstalujte PostgreSQL pomocí následujícího příkazu:
apt-get update -y
apt-get install postgresql postgresql-contrib -y
Po instalaci zkontrolujte stav PostgreSQL pomocí následujícího příkazu:
systemctl status postgresql
Měli byste vidět následující výstup:
? postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Active: active (exited) since Wed 2019-08-07 07:00:51 UTC; 23s ago Main PID: 13552 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 1098) CGroup: /system.slice/postgresql.service Aug 07 07:00:50 hitesh systemd[1]: Starting PostgreSQL RDBMS... Aug 07 07:00:51 hitesh systemd[1]: Started PostgreSQL RDBMS.
Dále budete muset vytvořit databázi a uživatele pro NetBox. Nejprve se přihlaste do prostředí PostgreSQL pomocí následujícího příkazu:
su - postgres
[email protected]:~$ psql
Výstup:
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1)) Type "help" for help.
Dále vytvořte databázi a uživatele pro NetBox pomocí následujícího příkazu:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';
Dále udělte NetBoxu všechna oprávnění pomocí následujícího příkazu:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Nakonec ukončete prostředí PostgreSQL pomocí následujícího příkazu:
postgres=#exit
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Instalace a konfigurace NetBox
Nejnovější verzi NetBoxu si můžete stáhnout do adresáře /opt pomocí následujícího příkazu:
cd /opt
git clone -b master https://github.com/digitalocean/netbox.git
Dále změňte adresář na netbox a vygenerujte Django SECRET Key:
cd /opt/netbox/netbox/netbox/
./generate_secret_key.py
Vygenerovaný klíč byste měli vidět v následujícím výstupu:
+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$
Dále přejmenujte výchozí konfigurační soubor pomocí následujícího příkazu:
mv configuration.example.py configuration.py
Dále otevřete konfigurační soubor a definujte podrobnosti o databázi a tajný klíč:
nano configuration.py
Proveďte následující změny:
#Replace your-server-ip with your server IP address: # Example: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local'] ALLOWED_HOSTS = ['your-server-ip'] # PostgreSQL database configuration. DATABASE = { 'NAME': 'netbox', # Database name 'USER': 'netbox', # PostgreSQL username 'PASSWORD': 'password', # PostgreSQL password 'HOST': 'localhost', # Database server 'PORT': '', # Database port (leave blank for default) } SECRET_KEY = '+XHR3o&7K6isFk^DLc2%[email protected](jwN#tfGbV=O1hgMU$'
Po dokončení uložte a zavřete soubor.
Dále nainstalujte všechny závislosti požadované NetBoxem pomocí následujícího příkazu:
pip3 install -r /opt/netbox/requirements.txt
Po instalaci proveďte migraci databáze pomocí následujícího příkazu:
cd /opt/netbox/netbox/
python3 manage.py migrate
Po úspěšné migraci byste měli vidět následující výstup:
Applying secrets.0004_tags... OK Applying secrets.0005_change_logging... OK Applying secrets.0006_custom_tag_models... OK Applying ipam.0021_vrf_ordering... OK Applying ipam.0022_tags... OK Applying ipam.0023_change_logging... OK Applying ipam.0024_vrf_allow_null_rd... OK Applying ipam.0025_custom_tag_models... OK Applying dcim.0067_device_type_remove_qualifiers... OK Applying dcim.0068_rack_new_fields... OK Applying dcim.0069_deprecate_nullablecharfield... OK Applying dcim.0070_custom_tag_models... OK Applying extras.0020_tag_data... OK Applying extras.0021_add_color_comments_changelog_to_tag... OK Applying dcim.0071_device_components_add_description... OK Applying dcim.0072_powerfeeds... OK Applying dcim.0073_interface_form_factor_to_type... OK Applying extras.0022_custom_links... OK Applying extras.0023_fix_tag_sequences... OK Applying ipam.0026_prefix_ordering_vrf_nulls_first... OK Applying ipam.0027_ipaddress_add_dns_name... OK Applying sessions.0001_initial... OK Applying taggit.0003_taggeditem_add_unique_index... OK Applying users.0001_api_tokens_squashed_0002_unicode_literals... OK Applying users.0003_token_permissions... OK
Dále budete muset vytvořit účet správce pro NetBox. Můžete to udělat pomocí následujícího příkazu:
python3 manage.py createsuperuser
Zadejte své uživatelské jméno a heslo správce a stiskněte Enter, měli byste vidět následující výstup:
Username (leave blank to use 'root'): netboxadmin Email address: [email protected] Password: Password (again): Superuser created successfully.
Dále přesuňte statické soubory a načtěte počáteční data pomocí následujícího příkazu:
python3 manage.py collectstatic
python3 manage.py loaddata initial_data
Instalace a konfigurace Gunicorn pro NetBox
Dále budete muset nainstalovat Gunicorn pro NetBox. Můžete jej nainstalovat pomocí příkazu pip, jak je znázorněno níže:
pip3 install gunicorn
Dále vytvořte konfigurační soubor Gunicorn pro NetBox pomocí následujícího příkazu:
nano /opt/netbox/gunicorn_config.py
Přidejte následující řádky:
command = '/usr/local/bin/gunicorn' pythonpath = '/opt/netbox/netbox' bind = 'your-server-ip:8001' workers = 3 user = 'www-data'
Po dokončení uložte a zavřete soubor.
Konfigurovat správce pro Netbox
Dále budete muset nakonfigurovat správce pro správu služby NetBox. Můžete to udělat pomocí následujícího příkazu:
nano /etc/supervisor/conf.d/netbox.conf
Přidejte následující řádky:
[program:netbox] command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi directory = /opt/netbox/netbox/ user = www-data
Uložte a zavřete soubor, restartujte službu dohledu a povolte její spuštění po restartování systému pomocí následujícího příkazu:
systemctl restart supervisor
systemctl enable supervisor
Službu Supervisor můžete také ověřit pomocí následujícího příkazu:
systemctl status supervisor
Výstup:
? supervisor.service - Supervisor process control system for UNIX Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-08-07 07:13:26 UTC; 8s ago Docs: http://supervisord.org Process: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS) Main PID: 15015 (supervisord) Tasks: 5 (limit: 1098) CGroup: /system.slice/supervisor.service ??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi Aug 07 07:13:26 hitesh systemd[1]: Started Supervisor process control system for UNIX. Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,087 CRIT Supervisor running as root (no user in config file) Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,089 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 INFO RPC interface 'supervisor' initialized Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 CRIT Server 'unix_http_server' running without any HTTP authentication check Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 INFO supervisord started with pid 15015 Aug 07 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 INFO spawned: 'netbox' with pid 15037 Aug 07 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 INFO success: netbox entered RUNNING state, process has st
Konfigurace Nginx pro NetBox
Dále budete muset nakonfigurovat Nginx pro přístup k NetBoxu pomocí portu 80. Chcete-li tak učinit, vytvořte konfigurační soubor virtuálního hostitele pomocí následujícího příkazu:
nano /etc/nginx/sites-available/netbox
Přidejte následující řádky:
server { listen 80; server_name your-domain-name; client_max_body_size 25m; location /static/ { alias /opt/netbox/netbox/static/; } location / { proxy_pass http://your-server-ip:8001; } }
Uložte a zavřete soubor. Poté povolte virtuálního hostitele pomocí následujícího příkazu:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Nakonec restartujte službu Nginx a použijte všechny změny konfigurace pomocí následujícího příkazu:
systemctl restart nginx
Přístup k webovému rozhraní NetBox
NetBox je nyní nainstalován a nakonfigurován, je čas vstoupit do webového rozhraní NetBoxu.
Otevřete webový prohlížeč a zadejte adresu URL http://vase-domena.com. Budete přesměrováni na následující stránku:
Nyní klikněte na Přihlásit se tlačítko v pravém horním rohu. Měli byste vidět následující stránku:
Nyní zadejte své uživatelské jméno a heslo správce a klikněte na Protokol V knoflík. Výchozí řídicí panel NetBoxu byste měli vidět na následující stránce:
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali NetBox na serveru Ubuntu 18.04. Nyní můžete spravovat a dokumentovat svou síť a IP adresu z centrálního umístění. Neváhejte se mě zeptat, pokud máte nějaké otázky.