Cách cài đặt NetBox Network Documentation and Management Tool trên Ubuntu 20.04 LTS

theanh

Administrator
Nhân viên
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.

Đ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
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.

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
Sau khi PostgreSQL được cài đặt, hãy đăng nhập vào PostgreSQL bằng lệnh sau:
Mã:
su - postgres[B]postgres@ubuntu2004:~$ psql
Bạn sẽ nhận được kết quả sau:
Mã:
psql (12.2 (Ubuntu 12.2-4))Nhập "help" để được trợ giúp.
Tiếp theo, tạo cơ sở dữ liệu và người dùng cho Netbox bằng lệnh sau:
Mã:
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';
Tiếp theo, cấp tất cả các quyền cho cơ sở dữ liệu Netbox bằng lệnh sau:
Mã:
postgres=# GRANT TẤT CẢ CÁC QUYỀN TRÊN CƠ SỞ DỮ LIỆU netbox ĐẾN netbox;
Tiếp theo, thoát khỏi shell PostgreSQL bằng lệnh sau:
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
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:
Mã:
ln -s /usr/bin/python3 /usr/bin/python
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:
Mã:
cd /opt/netbox/netbox/
./generate_secret_key.py
Bạn sẽ nhận được kết quả sau:
Mã:
wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
Tiếp theo, hãy đổi thư mục thành netbox và đổi tên tệp cấu hình ví dụ:
Mã:
cd netbox
mv configuration.example.py configuration.py
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:
Mã:
nano configuration.py
Thực hiện các thay đổi sau:
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'
Lưu và đóng tệp, sau đó cài đặt tất cả các phụ thuộc Python bằng lệnh sau:
Mã:
pip3 install -r /opt/netbox/requirements.txt
Tiếp theo, di chuyển cơ sở dữ liệu với lệnh sau:
Mã:
cd /opt/netbox/netbox/
python3 manage.py migrate
Tiếp theo, tạo người dùng quản trị Netbox bằng lệnh sau:
Mã:
python3 manage.py createsuperuser
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:
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.
Tiếp theo, thu thập tệp tĩnh bằng lệnh sau:
Mã:
python3 manage.py collectstatic
Bạn sẽ thấy đầu ra sau:
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
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:
Mã:
nano /opt/netbox/gunicorn_config.py
Thêm các dòng sau:
Mã:
command = '/usr/local/bin/gunicorn'pythonpath = '/opt/netbox/netbox'bind = 'your-server-ip:8001'workers = 3user = 'www-data'
Lưu và đóng tệp khi bạn hoàn tất.

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
Thêm các dòng sau:
Mã:
[program:netbox]command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgidirectory = /opt/netbox/netbox/user = www-data
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:
Mã:
systemctl restart supervisor
Bạn cũng có thể xác minh trạng thái của dịch vụ Supervisor bằng lệnh sau:
Mã:
systemctl status supervisor
Bạn sẽ nhận được kết quả sau:
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
Thêm các dòng sau:
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; }}
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/:
Mã:
ln -s /etc/nginx/sites-available/netbox.conf /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:
Mã:
nginx -t
Nếu mọi thứ đều ổn, bạn sẽ nhận được kết quả sau:
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
Cuối cùng, khởi động lại dịch vụ Nginx để triển khai các thay đổi.
Mã:
systemctl restart nginx
Bạn cũng có thể xác minh Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn nên nhận được kết quả sau:
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.
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.

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:


Kết luận​

Trong hướng dẫn này, bạn đã tìm hiểu cách cài đặt Netbox trên Ubuntu 20.04 với Nginx. Bây giờ bạn có thể bắt đầu ghi lại tài liệu về cơ sở hạ tầng mạng của mình. Để biết thêm thông tin, hãy truy cập tài liệu chính thức của Netbox. Đừng ngại hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên