Netbox là một công cụ quản lý cơ sở hạ tầng trung tâm dữ liệu (DCIM) và địa chỉ IP (IPAM) miễn phí và mạnh mẽ. Công cụ này được sử dụng để lưu trữ thông tin về mạng, VM, hàng tồn kho và nhiều thông tin khác của bạn. Công cụ này ban đầu được phát triển bởi nhóm kỹ thuật mạng tại DigitalOcean. Công cụ này được viết bằng khung Django Python và dựa trên cơ sở dữ liệu PostgreSQL. Mục đích của công cụ này là hoạt động như một nguồn thông tin đáng tin cậy theo miền cụ thể cho các hoạt động mạng.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Netbox với Nginx làm proxy ngược trên Ubuntu 20.04.
Sau khi tất cả các gói được cài đặt, bạn có thể tiến hành bước tiếp theo.
Sau khi PostgreSQL được cài đặt, hãy đăng nhập vào PostgreSQL bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, tạo cơ sở dữ liệu và người dùng cho Netbox bằng lệnh sau:
Tiếp theo, cấp tất cả các quyền cho cơ sở dữ liệu Netbox bằng lệnh sau:
Tiếp theo, thoát khỏi shell PostgreSQL bằng lệnh sau:
Tiếp theo, tạo liên kết tượng trưng của tệp nhị phân Python bằng lệnh sau:
Tiếp theo, hãy thay đổi thư mục thành /opt/netbox/netbox/ và tạo Khóa BÍ MẬT Django bằng cách chạy lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy đổi thư mục thành netbox và đổi tên tệp cấu hình ví dụ:
Tiếp theo, hãy chỉnh sửa tệp cấu hình Netbox và xác định cơ sở dữ liệu, khóa bí mật và máy chủ được phép của bạn:
Thực hiện các thay đổi sau:
Lưu và đóng tệp, sau đó cài đặt tất cả các phụ thuộc Python bằng lệnh sau:
Tiếp theo, di chuyển cơ sở dữ liệu với lệnh sau:
Tiếp theo, tạo người dùng quản trị Netbox bằng lệnh sau:
Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu như hiển thị bên dưới:
Tiếp theo, thu thập tệp tĩnh bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Sau khi cài đặt Gunicorn, hãy tạo tệp cấu hình Gunicorn mới cho Netbox bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Supervisor bằng lệnh sau:
Bạn cũng có thể xác minh trạng thái của dịch vụ Supervisor bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Thêm các dòng sau:
Lưu và đóng tệp. Sau đó, tạo một liên kết tượng trưng đến thư mục /etc/nginx/sites-enabled/:
Tiếp theo, xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả sau:
Cuối cùng, khởi động lại dịch vụ Nginx để triển khai các thay đổi.
Bạn cũng có thể xác minh Nginx bằng lệnh sau:
Bạn nên nhận được kết quả sau:
Tại thời điểm này, máy chủ web Nginx được cấu hình để phục vụ Netbox trên cổng 80. Bây giờ bạn có thể tiến hành truy cập giao diện web Netbox.
Nhấp vào nút Đăng nhập vào. Bạn sẽ thấy trang đăng nhập Netbox trong màn hình sau:
Cung cấp tên người dùng, mật khẩu quản trị Netbox của bạn và nhấp vào nút đăng nhập[/b]. Bạn sẽ thấy bảng điều khiển mặc định của Netbox trong trang sau:
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt Netbox với Nginx làm proxy ngược trên Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Bắt đầu
Trước khi bắt đầu, bạn sẽ cần cài đặt một số phụ thuộc mà Netbox yêu cầu. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:
Mã:
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
Cài đặt và cấu hình cơ sở dữ liệu PostgreSQL
Netbox dựa vào Cơ sở dữ liệu PostgreSQL để lưu trữ dữ liệu. Bạn có thể cài đặt bằng lệnh sau:
Mã:
apt-get install postgresql postgresql-contrib -y
Mã:
su - postgres[B]postgres@ubuntu2004:~$ psql
Mã:
psql (12.2 (Ubuntu 12.2-4))Nhập "help" để được trợ giúp.
Mã:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';
Mã:
postgres=# GRANT TẤT CẢ CÁC QUYỀN TRÊN CƠ SỞ DỮ LIỆU netbox ĐẾN netbox;
Mã:
postgres=# exit
postgres@ubuntu2004:~$ exit
Cài đặt và cấu hình NetBox
Trước tiên, hãy thay đổi thư mục thành /opt và tải xuống phiên bản Netbox mới nhất từ kho lưu trữ Git Hub bằng lệnh sau:
Mã:
cd /opt/
git clone -b master https://github.com/digitalocean/netbox.git
Mã:
ln -s /usr/bin/python3 /usr/bin/python
Mã:
cd /opt/netbox/netbox/
./generate_secret_key.py
Mã:
wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
Mã:
cd netbox
mv configuration.example.py configuration.py
Mã:
nano configuration.py
Mã:
ALLOWED_HOSTS = ['your-server-ip']# Cấu hình cơ sở dữ liệu PostgreSQL. Xem tài liệu Django để biết danh sách đầy đủ các tham số khả dụng:# https://docs.djangoproject.com/en/stable/ref/settings/#databasesDATABASE = { 'NAME': 'netbox', # Tên cơ sở dữ liệu 'USER': 'netbox', # Tên người dùng PostgreSQL 'PASSWORD': 'password', # Mật khẩu PostgreSQL 'HOST': 'localhost', # Máy chủ cơ sở dữ liệu 'PORT': '', # Cổng cơ sở dữ liệu (để trống theo mặc định) 'CONN_MAX_AGE': 300, # Tuổi kết nối cơ sở dữ liệu tối đa}SECRET_KEY = 'wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'
Mã:
pip3 install -r /opt/netbox/requirements.txt
Mã:
cd /opt/netbox/netbox/
python3 manage.py migrate
Mã:
python3 manage.py createsuperuser
Mã:
Tên người dùng (để trống để sử dụng 'root'): netboxadminĐịa chỉ email: [emailprotected]Mật khẩu:Mật khẩu (lặp lại):Siêu người dùng đã được tạo thành công.
Mã:
python3 manage.py collectstatic
Mã:
976 tệp tĩnh đã được sao chép vào '/opt/netbox/netbox/static'.
Cài đặt và cấu hình Gunicorn
Netbox là ứng dụng dựa trên Django. Vì vậy, bạn sẽ cần cài đặt Gunicorn trong hệ thống của mình. Bạn có thể cài đặt bằng cách chạy lệnh sau:
Mã:
pip3 install gunicorn
Mã:
nano /opt/netbox/gunicorn_config.py
Mã:
command = '/usr/local/bin/gunicorn'pythonpath = '/opt/netbox/netbox'bind = 'your-server-ip:8001'workers = 3user = 'www-data'
Cài đặt và cấu hình Supervisor
Supervisor là hệ thống máy khách/máy chủ cho phép bạn giám sát và kiểm soát dịch vụ NetBox. Bạn có thể tạo tệp cấu hình Supervisor mới cho Netbox bằng lệnh sau:
Mã:
nano /etc/supervisor/conf.d/netbox.conf
Mã:
[program:netbox]command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgidirectory = /opt/netbox/netbox/user = www-data
Mã:
systemctl restart supervisor
Mã:
systemctl status supervisor
Mã:
? supervisor.service - Hệ thống kiểm soát quy trình giám sát cho UNIX Đã tải: đã tải (/lib/systemd/system/supervisor.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2020-05-30 05:49:08 UTC; 14 giây trước Tài liệu: http://supervisord.org PID chính: 550606 (supervisord) Nhiệm vụ: 5 (giới hạn: 4691) Bộ nhớ: 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.wsgi30 tháng 5 05:49:08 ubuntu2004 systemd[1]: Đã khởi động hệ thống kiểm soát quy trình Supervisor cho UNIX.30 tháng 5 05:49:08 ubuntu2004 supervisord[550606]: 30-05-2020 05:49:08,664 CRIT Supervisor đang chạy dưới dạng root. Quyền không bị hủy bỏ vì>30 tháng 5 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 THÔNG TIN Đã bao gồm tệp bổ sung "/etc/supervisor/conf.d/netbox.conf" trong quá trình p>30 tháng 5 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 THÔNG TIN Giao diện RPC 'supervisor' đã được khởi tạo30 tháng 5 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 Máy chủ CRIT 'unix_http_server' đang chạy mà không có bất kỳ xác thực HTTP nào>30 tháng 5 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,672 THÔNG TIN supervisord đã bắt đầu với pid 55060630 tháng 5 05:49:09 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:09,676 THÔNG TIN đã tạo: 'netbox' với pid 55062630 tháng 5 05:49:11 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:11,060 THÔNG TIN thành công: netbox đã vào trạng thái CHẠY, quy trình đã duy trì trong
Cấu hình Nginx cho NetBox
Bạn nên cấu hình Nginx làm proxy ngược để truy cập Netbox tại cổng 80. Bạn có thể tạo cấu hình máy chủ ảo Nginx mới bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/netbox.conf
Mã:
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; }}
Mã:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) từ Thứ bảy 2020-05-30 22:28:13 EST; 4 phút 14 giây trước Tiến trình: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Tiến trình: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Tiến trình: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID chính: 985 (nginx) Nhiệm vụ: 3 (giới hạn: 25028) Bộ nhớ: 5,5M CGroup: /system.slice/nginx.service ??985 nginx: tiến trình chính /usr/sbin/nginx ??986 nginx: tiến trình công nhân ??987 nginx: tiến trình công nhân30 tháng 5 21:28:12 ubuntu2004 systemd[1]: Khởi động nginx Máy chủ proxy ngược và HTTP...30-03 21:28:12 ubuntu2004 nginx[982]: nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok30-03 21:28:12 ubuntu2004 nginx[982]: nginx: thử nghiệm tệp cấu hình /etc/nginx/nginx.conf thành công30-03 21:28:13 ubuntu2004 systemd[1]: Đã khởi động máy chủ proxy ngược và HTTP nginx.
Truy cập Giao diện web Netbox
Mở trình duyệt web của bạn và truy cập URL http://your-server-ip. Bạn sẽ được chuyển hướng đến trang sau:Nhấp vào nút Đăng nhập vào. Bạn sẽ thấy trang đăng nhập Netbox trong màn hình sau:
Cung cấp tên người dùng, mật khẩu quản trị Netbox của bạn và nhấp vào nút đăng nhập[/b]. Bạn sẽ thấy bảng điều khiển mặc định của Netbox trong trang sau: