NetBox là Infrastructure Resource Modelling (IRM) được thiết kế cho mục đích tự động hóa mạng và kỹ thuật cơ sở hạ tầng. Ban đầu, NetBox được nhóm DigitalOcean tạo ra và hiện đã trở thành một dự án mã nguồn mở được phát hành theo Giấy phép Apache 2. NetBox được tạo ra trong khuôn khổ Python Django Web với PostgreSQL là cơ sở dữ liệu mặc định và quá trình cài đặt NetBox khá giống với các ứng dụng web Python Django khác.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt phần mềm NetBox IRM trên máy chủ Debian 12 theo từng bước. Chúng tôi sẽ chỉ cho bạn cách cài đặt NetBox với PostgreSQL là máy chủ cơ sở dữ liệu và máy chủ web Apache2 là proxy ngược. Bạn cũng sẽ bảo mật cài đặt NetBox của mình bằng chứng chỉ SSl/TLS.
Trong bước tiếp theo, bạn sẽ cài đặt các phụ thuộc mà NetBox cần, bạn cũng sẽ cài đặt máy chủ web Apache2 sẽ được sử dụng làm proxy ngược cho cài đặt NetBox của bạn.
Để bắt đầu, hãy thực hiện lệnh apt sau để cập nhật kho lưu trữ Debian của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22702%22%20height=%22161%22%3E%3C/svg%3E
Sau đó, cài đặt các gói phụ thuộc cho NetBox IRM của bạn cài đặt.
Nhập y để tiến hành cài đặt các phần phụ thuộc như máy chủ web Apache2, máy chủ cơ sở dữ liệu PostgreSQL, Redis, Git, các gói Python3 và một số thư viện hệ thống bổ sung.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22159%22%3E%3C/svg%3E
Sau khi các phần phụ thuộc được cài đặt, hãy xác minh từng phần phụ thuộc bằng cách thực thi lệnh bên dưới.
Xác minh dịch vụ apache2 để đảm bảo rằng dịch vụ được bật và đang chạy.
Nếu apache2 đang chạy và được bật, bạn sẽ nhận được đầu ra như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E
Xác minh dịch vụ PostgreSQL để đảm bảo rằng dịch vụ đang chạy và được bật.
Dịch vụ PostgreSQL sẽ chạy và được bật như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E
Bây giờ hãy xác minh dịch vụ Redis để đảm bảo rằng dịch vụ đang chạy và đã bật.
Dịch vụ Redis sẽ chạy và được bật như sau
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22264%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh phiên bản Python bằng lệnh bên dưới. Phiên bản NetBox IRM mới nhất hỗ trợ Python v3.9, 3.10 và 3.11.
Bạn sẽ thấy Python 3.11 được cài đặt trên máy Debian của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22371%22%20height=%2290%22%3E%3C/svg%3E
Đăng nhập vào máy chủ PostgreSQL bằng cách thực hiện lệnh bên dưới.
Chạy các truy vấn sau để tạo người dùng mới netbox với mật khẩu p4ssw0rd. Sau đó, tạo một cơ sở dữ liệu mới netboxdb với chủ sở hữu netbox.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22233%22%3E%3C/svg%3E
Sau đó, hãy xác minh danh sách người dùng và cơ sở dữ liệu trên PostgreSQL của bạn bằng cách thực hiện lệnh bên dưới.
Bạn sẽ thấy cơ sở dữ liệu netboxdb và người dùng netbox được tạo trên máy chủ PostgreSQL của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22275%22%3E%3C/svg%3E
Gõ quit để thoát khỏi máy chủ PostgreSQL.
Tiếp theo, đăng nhập vào PostgreSQL bằng người dùng mới netbox vào cơ sở dữ liệu netboxdb. Điều này sẽ đảm bảo rằng người dùng netbox có thể kết nối với cơ sở dữ liệu netboxdb.
Sau khi kết nối, hãy xác minh kết nối của bạn bằng truy vấn sau.
Trong đầu ra sau, bạn sẽ thấy rằng bạn đã kết nối với cơ sở dữ liệu netboxdb thông qua người dùng netbox.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22213%22%3E%3C/svg%3E
Gõ quit lần nữa để thoát khỏi máy chủ PostgreSQL của bạn.
Mở cấu hình Redis mặc định /etc/redis/redis.conf bằng lệnh trình chỉnh sửa nano sau.
Bỏ chú thích tùy chọn requirepass và nhập mật khẩu sẽ được sử dụng để bảo mật Redis của bạn máy chủ.
Khi hoàn tất, hãy lưu và thoát khỏi tệp.
Bây giờ hãy chạy lệnh systemctl sau để khởi động lại dịch vụ redis và áp dụng các thay đổi bạn đã thực hiện.
Để đảm bảo mọi thứ hoạt động, bạn có thể xác minh Redis thông qua redis-cli. Truy cập máy chủ Redis của bạn bằng lệnh redis-cli bên dưới.
Xác thực với máy chủ Redis bằng truy vấn AUTH sau và đảm bảo thay đổi mật khẩu.
Sau khi xác thực, bạn sẽ nhận được kết quả OK.
Bây giờ hãy chạy truy vấn PING bên dưới để đảm bảo kết nối của bạn thành công.
Nếu thành công, bạn sẽ nhận được đầu ra PONG từ máy chủ Redis.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22469%22%20height=%22270%22%3E%3C/svg%3E
Trước tiên, hãy thực hiện lệnh bên dưới để tạo một người dùng systemd mới netbox sẽ được sử dụng để chạy cài đặt NetBox.
Tải xuống mã nguồn NetBox IRM qua git và thay đổi quyền sở hữu thư mục /opt/netbox thành người dùng netbox.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22219%22%3E%3C/svg%3E
Tiếp theo, di chuyển thư mục làm việc của bạn đến /opt/netbox và tạo khóa bí mật NetBox thông qua tập lệnh generate_secret_key.py. Hãy đảm bảo sao chép khóa bí mật đã tạo sẽ được sử dụng cho cài đặt NetBox của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22131%22%3E%3C/svg%3E
Sao chép cấu hình mặc định configuration_example.py vào configuration.py, sau đó mở tệp mới configuration.py bằng lệnh nano editor sau.
Trong phần ALLOWED_HOSTS, hãy thêm tên miền hoặc địa chỉ IP máy chủ của bạn.
Nhập thông tin chi tiết về cơ sở dữ liệu PostgreSQL của bạn vào phần DATABASE, bao gồm tên cơ sở dữ liệu, người dùng, mật khẩu, máy chủ và cổng.
Trong phần REDIS, nhập thông tin chi tiết về máy chủ Redis của bạn vào cả tác vụ và tùy chọn lưu trữ đệm.
Cuối cùng, nhập khóa bí mật của bạn vào phần KHÓA_BÍ MẬT.
Khi hoàn tất, hãy lưu và thoát khỏi tệp.
Tiếp theo, thực thi tập lệnh /opt/netbox/upgrade.sh để bắt đầu cài đặt NextBox của bạn. Thao tác này sẽ tạo một môi trường ảo Python mới, cài đặt một số gói và thư viện Python, chạy di chuyển cơ sở dữ liệu sang máy chủ PostgreSQL của bạn, đồng thời tạo các tệp tĩnh cho NextBox.
Dưới đây là kết quả tương tự mà bạn sẽ nhận được trong quá trình này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22515%22%3E%3C/svg%3E
Di chuyển cơ sở dữ liệu tiến trình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22639%22%20height=%22545%22%3E%3C/svg%3E
Tạo tệp tĩnh tiến trình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22237%22%3E%3C/svg%3E
Dưới đây là đầu ra khi quá trình cài đặt hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22695%22%20height=%22424%22%3E%3C/svg%3E
Sau khi NetBox được cấu hình, bạn sẽ tạo một người dùng quản trị viên cho NetBox. Để thực hiện điều đó, hãy đăng nhập vào môi trường ảo Python được tạo bằng lệnh sau.
Di chuyển đến thư mục /opt/netbox/netbox và chạy tập lệnh manage.py để tạo người dùng quản trị viên NetBox.
Khi được yêu cầu, hãy nhập email quản trị của bạn địa chỉ, tên người dùng và thông tin chi tiết về mật khẩu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22239%22%3E%3C/svg%3E
Tiếp theo, hãy chạy manage.py một lần nữa để xác minh cài đặt NetBox của bạn. Với điều này, bạn sẽ chạy NetBox trên địa chỉ IP cục bộ của mình với cổng 8000.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E
Mở trình duyệt web của bạn và truy cập địa chỉ IP máy chủ của bạn theo sau là cổng 8000, chẳng hạn như http://192.168.10.15:8000/. Nếu cài đặt thành công, bạn sẽ nhận được trang chỉ mục NetBox IRM và từ đó, nhấp vào nút Đăng nhập ở góc trên bên phải.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22529%22%3E%3C/svg%3E
Nhập tên người dùng quản trị và mật khẩu mà bạn đã tạo, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22413%22%3E%3C/svg%3E
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ nhận được bảng điều khiển NetBox như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22495%22%3E%3C/svg%3E
Quay lại thiết bị đầu cuối của bạn và nhấn Ctrl+c để kết thúc quá trình.
Sao chép tệp /opt/netbox/contrib/gunicorn.py đến /opt/netbox/gunicorn.py, sau đó mở tệp gunicorn.py bằng lệnh nano editor bên dưới.
Thay đổi tùy chọn liên kết thành tùy chọn sau. Thao tác này sẽ chạy cài đặt NetBox của bạn ở cổng localhost 8001 qua gunicorn.
Lưu và đóng tệp khi hoàn tất.
Tiếp theo, sao chép các tệp dịch vụ systemd cho NetBox vào thư mục /etc/systemd/system/. Thao tác này sẽ sao chép tệp dịch vụ netbox, netbor-rq và netbook-housekeeping vào thư mục /etc/systemd/system/. Sau đó, tải lại trình quản lý systemd để áp dụng những thay đổi mới trên hệ thống của bạn.
Bây giờ bạn có thể khởi động và kích hoạt cả dịch vụ netbox và netbox-rq bằng lệnh systemctl bên dưới. Sau khi thực hiện lệnh, cài đặt NetBox của bạn sẽ chạy ở chế độ nền như một dịch vụ systemd.
Cuối cùng, hãy xác minh cả dịch vụ netbox và netbox-rq bằng lệnh sau.
Đầu ra sau cho biết dịch vụ netbox đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22315%22%3E%3C/svg%3E
Đầu ra bên dưới xác nhận rằng dịch vụ netbox-rq đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22252%22%3E%3C/svg%3E
Nếu bạn đang sử dụng tên miền cục bộ, bạn có thể chạy lệnh openssl sau để tạo chứng chỉ SSL. Nếu bạn đang sử dụng tên miền công cộng, bạn có thể sử dụng Certbot để tạo chứng chỉ SSL từ Letsencrypt.
Bây giờ hãy sao chép ví dụ cấu hình máy chủ ảo Apache cho NetBox vào /etc/apache2/sites-available/netbox.conf. Sau đó, sửa đổi tệp /etc/apache2/sites-available/netbox.conf bằng lệnh nano editor sau.
Thay đổi tên miền bằng tên miền của bạn và thay đổi đường dẫn của chứng chỉ SSL/TLS bằng tệp đường dẫn thích hợp.
Lưu và thoát tệp khi hoàn tất.
Bây giờ hãy chạy lệnh sau để bật một số mô-đun Apache2 cần thiết cho NetBox.
Sau đó, thực hiện lệnh sau để kích hoạt tệp máy chủ ảo netbox.conf và xác minh cấu hình Apache2 của bạn để đảm bảo rằng bạn có cú pháp phù hợp.
Nếu bạn có cú pháp Apache2 phù hợp, bạn sẽ nhận được đầu ra Cú pháp OK.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22507%22%20height=%22217%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh sau để khởi động lại dịch vụ Apache2 và áp dụng các thay đổi bạn đã thực hiện.
Cài đặt NetBox của bạn có thể truy cập được thông qua tên miền.
Mở trình duyệt web của bạn và truy cập tên miền của Cài đặt NetBox, chẳng hạn như https://netbox.howtoforge.local/. Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy trang chỉ mục NetBox như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22530%22%3E%3C/svg%3E
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển NetBox IRM đang chạy với tên miền dưới proxy ngược Apache2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22538%22%3E%3C/svg%3E
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt phần mềm NetBox IRM trên máy chủ Debian 12 theo từng bước. Chúng tôi sẽ chỉ cho bạn cách cài đặt NetBox với PostgreSQL là máy chủ cơ sở dữ liệu và máy chủ web Apache2 là proxy ngược. Bạn cũng sẽ bảo mật cài đặt NetBox của mình bằng chứng chỉ SSl/TLS.
Điều kiện tiên quyết
Trước khi tiếp tục, hãy đảm bảo bạn có những điều sau:- Máy chủ Debian 12.
- Người dùng không phải root có quyền quản trị viên.
- Tên miền công khai hoặc cục bộ trỏ đến địa chỉ IP của máy chủ.
Cài đặt Dependencies
NetBox là ứng dụng web dựa trên nền tảng web Python Django. Nó có thể được cài đặt với máy chủ cơ sở dữ liệu PostgreSQL và máy chủ Redis để quản lý bộ nhớ đệm.Trong bước tiếp theo, bạn sẽ cài đặt các phụ thuộc mà NetBox cần, bạn cũng sẽ cài đặt máy chủ web Apache2 sẽ được sử dụng làm proxy ngược cho cài đặt NetBox của bạn.
Để bắt đầu, hãy thực hiện lệnh apt sau để cập nhật kho lưu trữ Debian của bạn.
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22702%22%20height=%22161%22%3E%3C/svg%3E
Sau đó, cài đặt các gói phụ thuộc cho NetBox IRM của bạn cài đặt.
Mã:
sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev zlib1g-dev
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22159%22%3E%3C/svg%3E
Sau khi các phần phụ thuộc được cài đặt, hãy xác minh từng phần phụ thuộc bằng cách thực thi lệnh bên dưới.
Xác minh dịch vụ apache2 để đảm bảo rằng dịch vụ được bật và đang chạy.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E
Xác minh dịch vụ PostgreSQL để đảm bảo rằng dịch vụ đang chạy và được bật.
Mã:
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E
Bây giờ hãy xác minh dịch vụ Redis để đảm bảo rằng dịch vụ đang chạy và đã bật.
Mã:
sudo systemctl is-enabled redis
sudo systemctl status redis
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22264%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh phiên bản Python bằng lệnh bên dưới. Phiên bản NetBox IRM mới nhất hỗ trợ Python v3.9, 3.10 và 3.11.
Mã:
python3 --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22371%22%20height=%2290%22%3E%3C/svg%3E
Cấu hình PostgreSQL Server
Sau khi cài đặt các phụ thuộc, bạn sẽ tạo một cơ sở dữ liệu PostgreSQL và người dùng mới mà NetBox sẽ sử dụng. Để thực hiện điều đó, bạn phải đăng nhập vào máy chủ PostgreSQL thông qua dòng lệnh psql.Đăng nhập vào máy chủ PostgreSQL bằng cách thực hiện lệnh bên dưới.
Mã:
sudo -u postgres psql
Mã:
CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';
CREATE DATABASE netboxdb OWNER netbox;
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22233%22%3E%3C/svg%3E
Sau đó, hãy xác minh danh sách người dùng và cơ sở dữ liệu trên PostgreSQL của bạn bằng cách thực hiện lệnh bên dưới.
Mã:
\l
\du
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22275%22%3E%3C/svg%3E
Gõ quit để thoát khỏi máy chủ PostgreSQL.
Tiếp theo, đăng nhập vào PostgreSQL bằng người dùng mới netbox vào cơ sở dữ liệu netboxdb. Điều này sẽ đảm bảo rằng người dùng netbox có thể kết nối với cơ sở dữ liệu netboxdb.
Mã:
sudo -u postgres psql --username netbox --password --host localhost netboxdb
Mã:
\conninfo
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22213%22%3E%3C/svg%3E
Gõ quit lần nữa để thoát khỏi máy chủ PostgreSQL của bạn.
Cấu hình máy chủ Redis
Sau khi tạo cơ sở dữ liệu PostgreSQL và người dùng, bước tiếp theo là cấu hình máy chủ Redis của bạn sẽ được sử dụng làm quản lý bộ đệm cho NetBox. Để thực hiện điều đó, bạn sẽ sửa đổi cấu hình Redis /etc/redis/redis.conf và xác minh các thay đổi của bạn thông qua redis-cli.Mở cấu hình Redis mặc định /etc/redis/redis.conf bằng lệnh trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/redis/redis.conf
Mã:
requirepass p4ssw0rdNetBox
Bây giờ hãy chạy lệnh systemctl sau để khởi động lại dịch vụ redis và áp dụng các thay đổi bạn đã thực hiện.
Mã:
sudo systemctl restart redis
Mã:
redis-cli
Mã:
AUTH p4ssw0rdNetBox
Bây giờ hãy chạy truy vấn PING bên dưới để đảm bảo kết nối của bạn thành công.
Mã:
PING
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22469%22%20height=%22270%22%3E%3C/svg%3E
Cài đặt NetBox IRM
Trong phần sau, bạn sẽ tải xuống và cài đặt NetBox IRM vào hệ thống của mình. Bạn sẽ tải xuống mã nguồn NetBox qua Git, sau đó định cấu hình bằng cách sửa đổi cấu hình NetBox, thêm máy chủ cơ sở dữ liệu PostgreSQL và Redis, sau đó bạn cũng sẽ tạo một người dùng quản trị viên cho NetBox.Trước tiên, hãy thực hiện lệnh bên dưới để tạo một người dùng systemd mới netbox sẽ được sử dụng để chạy cài đặt NetBox.
Mã:
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox
Mã:
cd /opt; sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git
sudo chown -R netbox:netbox /opt/netbox
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22219%22%3E%3C/svg%3E
Tiếp theo, di chuyển thư mục làm việc của bạn đến /opt/netbox và tạo khóa bí mật NetBox thông qua tập lệnh generate_secret_key.py. Hãy đảm bảo sao chép khóa bí mật đã tạo sẽ được sử dụng cho cài đặt NetBox của bạn.
Mã:
cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.py
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22131%22%3E%3C/svg%3E
Sao chép cấu hình mặc định configuration_example.py vào configuration.py, sau đó mở tệp mới configuration.py bằng lệnh nano editor sau.
Mã:
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.py
Mã:
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.15']
Mã:
# database configuration
DATABASE = {
'NAME': 'netboxdb', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'p4ssw0rd', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}
Mã:
# Redis cache configuration
REDIS = {
'tasks': {
'HOST': 'localhost', # Redis server
'PORT': 6379, # Redis port
'PASSWORD': 'p4ssw0rdNetBox', # Redis password (optional)
'DATABASE': 0, # Database ID
'SSL': False, # Use SSL (optional)
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': 'p4ssw0rdNetBox',
'DATABASE': 1, # Unique ID for second database
'SSL': False,
}
}
Mã:
# Secret key
SECRET_KEY = 'ZjYbgz$)j!NnqJcZLR!NB2BCz4(Yyk=o^Xr(1sTIrM)ZyiE%nk'
Tiếp theo, thực thi tập lệnh /opt/netbox/upgrade.sh để bắt đầu cài đặt NextBox của bạn. Thao tác này sẽ tạo một môi trường ảo Python mới, cài đặt một số gói và thư viện Python, chạy di chuyển cơ sở dữ liệu sang máy chủ PostgreSQL của bạn, đồng thời tạo các tệp tĩnh cho NextBox.
Mã:
sudo -u netbox /opt/netbox/upgrade.sh
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22515%22%3E%3C/svg%3E
Di chuyển cơ sở dữ liệu tiến trình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22639%22%20height=%22545%22%3E%3C/svg%3E
Tạo tệp tĩnh tiến trình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22237%22%3E%3C/svg%3E
Dưới đây là đầu ra khi quá trình cài đặt hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22695%22%20height=%22424%22%3E%3C/svg%3E
Sau khi NetBox được cấu hình, bạn sẽ tạo một người dùng quản trị viên cho NetBox. Để thực hiện điều đó, hãy đăng nhập vào môi trường ảo Python được tạo bằng lệnh sau.
Mã:
source /opt/netbox/venv/bin/activate
Mã:
cd /opt/netbox/netbox
python3 manage.py createsuperuser
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22239%22%3E%3C/svg%3E
Tiếp theo, hãy chạy manage.py một lần nữa để xác minh cài đặt NetBox của bạn. Với điều này, bạn sẽ chạy NetBox trên địa chỉ IP cục bộ của mình với cổng 8000.
Mã:
python3 manage.py runserver 0.0.0.0:8000 --insecure
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22178%22%3E%3C/svg%3E
Mở trình duyệt web của bạn và truy cập địa chỉ IP máy chủ của bạn theo sau là cổng 8000, chẳng hạn như http://192.168.10.15:8000/. Nếu cài đặt thành công, bạn sẽ nhận được trang chỉ mục NetBox IRM và từ đó, nhấp vào nút Đăng nhập ở góc trên bên phải.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22529%22%3E%3C/svg%3E
Nhập tên người dùng quản trị và mật khẩu mà bạn đã tạo, sau đó nhấp vào Đăng nhập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22518%22%20height=%22413%22%3E%3C/svg%3E
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ nhận được bảng điều khiển NetBox như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22495%22%3E%3C/svg%3E
Quay lại thiết bị đầu cuối của bạn và nhấn Ctrl+c để kết thúc quá trình.
Chạy NetBox dưới dạng Dịch vụ Systemd
Lúc này, bạn đã cài đặt NetBox IRM trên máy Debian của mình. Để giúp bạn quản lý NetBox dễ dàng hơn, bạn sẽ chạy NetBox dưới dạng dịch vụ systemd, cho phép bạn kiểm soát NetBox thông qua tiện ích systemctl.Sao chép tệp /opt/netbox/contrib/gunicorn.py đến /opt/netbox/gunicorn.py, sau đó mở tệp gunicorn.py bằng lệnh nano editor bên dưới.
Mã:
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo -u netbox nano /opt/netbox/gunicorn.py
Mã:
bind = '127.0.0.1:8001'
Tiếp theo, sao chép các tệp dịch vụ systemd cho NetBox vào thư mục /etc/systemd/system/. Thao tác này sẽ sao chép tệp dịch vụ netbox, netbor-rq và netbook-housekeeping vào thư mục /etc/systemd/system/. Sau đó, tải lại trình quản lý systemd để áp dụng những thay đổi mới trên hệ thống của bạn.
Mã:
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reload
Mã:
sudo systemctl start netbox netbox-rq netbox-housekeeping
sudo systemctl enable netbox netbox-rq netbox-housekeeping
Mã:
sudo systemctl status netbox
sudo systemctl status netbox-rq
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22315%22%3E%3C/svg%3E
Đầu ra bên dưới xác nhận rằng dịch vụ netbox-rq đang chạy và được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22252%22%3E%3C/svg%3E
Cấu hình Apache dưới dạng Reverse Proxy
Trong bước tiếp theo, bạn sẽ cấu hình Apache2 như một proxy ngược. Trước đó, hãy đảm bảo rằng bạn có một tên miền được trỏ đến địa chỉ IP máy chủ của mình, bạn cũng có thể sử dụng tên miền cục bộ.Nếu bạn đang sử dụng tên miền cục bộ, bạn có thể chạy lệnh openssl sau để tạo chứng chỉ SSL. Nếu bạn đang sử dụng tên miền công cộng, bạn có thể sử dụng Certbot để tạo chứng chỉ SSL từ Letsencrypt.
Mã:
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 \
-nodes -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj "/CN=netbox.howtoforge.local" \
-addext "subjectAltName=DNS:netbox.howtoforge.local,IP:192.168.10.15"
Mã:
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.conf
Mã:
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.howtoforge.local
...
ProxyPreserveHost On
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.howtoforge.local
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
...
Bây giờ hãy chạy lệnh sau để bật một số mô-đun Apache2 cần thiết cho NetBox.
Mã:
sudo a2enmod ssl proxy proxy_http headers rewrite
Mã:
sudo a2ensite netbox.conf
sudo apachectl configtest
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22507%22%20height=%22217%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh sau để khởi động lại dịch vụ Apache2 và áp dụng các thay đổi bạn đã thực hiện.
Mã:
sudo systemctl restart apache2
Mở trình duyệt web của bạn và truy cập tên miền của Cài đặt NetBox, chẳng hạn như https://netbox.howtoforge.local/. Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy trang chỉ mục NetBox như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22530%22%3E%3C/svg%3E
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển NetBox IRM đang chạy với tên miền dưới proxy ngược Apache2.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22538%22%3E%3C/svg%3E