Netbox adalah alat alamat IP (IPAM) dan manajemen infrastruktur pusat data (DCIM) yang gratis dan kuat. Ini digunakan untuk menyimpan informasi tentang jaringan Anda, VM, inventaris, dan banyak lagi. Ini awalnya dikembangkan oleh tim teknik jaringan di DigitalOcean. Alat ini ditulis dalam kerangka kerja Django Python dan bergantung pada database PostgreSQL. Tujuannya adalah berfungsi sebagai sumber kebenaran khusus domain untuk operasi jaringan.
Dalam tutorial ini, kami akan menjelaskan cara menginstal Netbox dengan Nginx sebagai reverse proxy di Ubuntu 20.04.
Prasyarat
- Server yang menjalankan Ubuntu 20.04.
- Kata sandi root dikonfigurasi di server Anda.
Memulai
Sebelum memulai, Anda perlu menginstal beberapa dependensi yang diperlukan oleh Netbox. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:
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
Setelah semua paket terinstal, Anda dapat melanjutkan ke langkah berikutnya.
Instal dan Konfigurasi Database PostgreSQL
Netbox mengandalkan database PostgreSQL untuk penyimpanan data. Anda dapat menginstalnya dengan perintah berikut:
apt-get install postgresql postgresql-contrib -y
Setelah PostgreSQL terinstal, login ke PostgreSQL dengan perintah berikut:
su - postgres
[email protected]:~$ psql
Anda akan mendapatkan output berikut:
psql (12.2 (Ubuntu 12.2-4)) Type "help" for help.
Selanjutnya buat database dan user untuk Netbox dengan perintah berikut:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';
Selanjutnya, berikan semua hak istimewa ke database Netbox dengan perintah berikut:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Selanjutnya, keluar dari shell PostgreSQL dengan perintah berikut:
postgres=# exit
[email protected]:~$ exit
Instal dan Konfigurasi NetBox
Pertama, ubah direktori ke /opt dan unduh Netbox versi terbaru dari repositori Git Hub menggunakan perintah berikut:
cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git
Selanjutnya, buat tautan simbolik biner Python dengan perintah berikut:
ln -s /usr/bin/python3 /usr/bin/python
Selanjutnya, ubah direktori ke /opt/netbox/netbox/ dan buat Django SECRET Key dengan menjalankan perintah berikut:
cd /opt/netbox/netbox/
./generate_secret_key.py
Anda akan mendapatkan output berikut:
[email protected])eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
Selanjutnya, ubah direktori menjadi netbox dan ganti nama file konfigurasi contoh:
cd netbox
mv configuration.example.py configuration.py
Selanjutnya, edit file konfigurasi Netbox dan tentukan database, kunci rahasia, dan host yang diizinkan:
nano configuration.py
Lakukan perubahan berikut:
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 = '[email protected])eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'
Simpan dan tutup file kemudian instal semua dependensi Python dengan perintah berikut:
pip3 install -r /opt/netbox/requirements.txt
Selanjutnya, migrasikan database dengan perintah berikut:
cd /opt/netbox/netbox/
python3 manage.py migrate
Selanjutnya, buat pengguna administratif Netbox dengan perintah berikut:
python3 manage.py createsuperuser
Anda akan diminta untuk memberikan nama pengguna dan kata sandi seperti yang ditunjukkan di bawah ini:
Username (leave blank to use 'root'): netboxadmin Email address: [email protected] Password: Password (again): Superuser created successfully.
Selanjutnya, kumpulkan file statis dengan perintah berikut:
python3 manage.py collectstatic
Anda akan melihat output berikut:
976 static files copied to '/opt/netbox/netbox/static'.
Instal dan Konfigurasikan Gunicorn
Netbox adalah aplikasi berbasis Django. Jadi, Anda perlu menginstal Gunicorn di sistem Anda. Anda dapat menginstalnya dengan menjalankan perintah berikut:
pip3 install gunicorn
Setelah menginstal Gunicorn, buat file konfigurasi Gunicorn baru untuk Netbox dengan perintah berikut:
nano /opt/netbox/gunicorn_config.py
Tambahkan baris berikut:
command = '/usr/local/bin/gunicorn' pythonpath = '/opt/netbox/netbox' bind = 'your-server-ip:8001' workers = 3 user = 'www-data'
Simpan dan tutup file setelah Anda selesai.
Instal dan Konfigurasi Supervisor
Supervisor adalah sistem klien/server yang memungkinkan Anda untuk memantau dan mengontrol layanan NetBox. Anda dapat membuat file konfigurasi Supervisor baru untuk Netbox dengan perintah berikut:
nano /etc/supervisor/conf.d/netbox.conf
Tambahkan baris berikut:
[program:netbox] command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi directory = /opt/netbox/netbox/ user = www-data
Simpan dan tutup file setelah selesai. Kemudian, restart layanan Supervisor dengan perintah berikut:
systemctl restart supervisor
Anda juga dapat memverifikasi status layanan Supervisor menggunakan perintah berikut:
systemctl status supervisor
Anda akan mendapatkan output berikut:
? 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 ubuntu2004 systemd[1]: Started Supervisor process control system for UNIX. May 30 05:49:08 ubuntu2004 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 ubuntu2004 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 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 INFO RPC interface 'supervisor' initialized May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 CRIT Server 'unix_http_server' running without any HTTP authentication> May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,672 INFO supervisord started with pid 550606 May 30 05:49:09 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:09,676 INFO spawned: 'netbox' with pid 550626 May 30 05:49:11 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:11,060 INFO success: netbox entered RUNNING state, process has stayed up for
Konfigurasi Nginx untuk NetBox
Sebaiknya konfigurasikan Nginx sebagai proxy terbalik untuk mengakses Netbox di port 80. Anda dapat membuat konfigurasi virtual host Nginx baru dengan menggunakan perintah berikut:
nano /etc/nginx/sites-available/netbox.conf
Tambahkan baris berikut:
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; } }
Simpan dan tutup file. Kemudian, buat tautan simbolis ke direktori /etc/nginx/sites-enabled/:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Selanjutnya, verifikasi Nginx untuk kesalahan sintaks dengan perintah berikut:
nginx -t
Jika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Terakhir, mulai ulang layanan Nginx untuk menerapkan perubahan.
systemctl restart nginx
Anda juga dapat memverifikasi Nginx dengan perintah berikut:
systemctl status nginx
Anda akan mendapatkan output berikut:
? 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 ubuntu2004 systemd[1]: Starting The nginx HTTP and reverse proxy server... Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful Mar 30 21:28:13 ubuntu2004 systemd[1]: Started The nginx HTTP and reverse proxy server.
Pada titik ini, server web Nginx dikonfigurasi untuk melayani Netbox pada port 80. Sekarang Anda dapat melanjutkan untuk mengakses antarmuka web Netbox.
Akses Antarmuka Web Netbox
Buka browser web Anda dan kunjungi URL http://your-server-ip. Anda akan diarahkan ke halaman berikut:
Klik Log di tombol. Anda akan melihat halaman login Netbox di layar berikut:
Berikan nama pengguna, kata sandi admin Netbox Anda, dan klik tombol login tombol. Anda akan melihat dasbor default Netbox di halaman berikut:
Kesimpulan
Dalam panduan ini, Anda belajar cara menginstal Netbox di Ubuntu 20.04 dengan Nginx. Anda sekarang dapat mulai mendokumentasikan infrastruktur jaringan Anda. Untuk informasi selengkapnya, kunjungi dokumentasi resmi Netbox. Bebas biaya untuk bertanya kepada saya jika Anda memiliki pertanyaan.