Cách cài đặt NetBox trên Rocky Linux 9

theanh

Administrator
Nhân viên
NetBox là phần mềm Infrastructure Resource Modeling (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, phần mềm này đượ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.

NetBox giúp bạn quản lý cơ sở hạ tầng của mình, bao gồm:
  • DCIM (Quản lý cơ sở hạ tầng trung tâm dữ liệu)
  • IPAM (Quản lý địa chỉ IP)
  • Mạch dữ liệu
  • Kết nối (Mạng, bảng điều khiển và nguồn điện)
  • Giá đỡ thiết bị
  • Ảo hóa
  • Bí mật
Trong hướng dẫn này, bạn sẽ cài đặt NetBox IRM (Quản lý tài nguyên cơ sở hạ tầng) trên máy chủ Rocky Linux 9. Bạn sẽ thiết lập NetBox với PostgreSQL làm hệ thống cơ sở dữ liệu và Apache/httpd làm proxy ngược trên hệ thống Rocky Linux. Bạn cũng sẽ bảo mật NetBox bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.

Điều kiện tiên quyết​

Trước khi bắt đầu, hãy đảm bảo rằng bạn có các yêu cầu sau:
  • Máy chủ Rocky Linux 9 - Ví dụ này sử dụng máy chủ Rocky Linux có tên máy chủ là 'netbox-rocky'.
  • Người dùng không phải root có quyền quản trị viên sudo/root.
  • SELinux chạy ở chế độ cho phép.
  • Tên miền hoặc tên miền phụ trỏ đến địa chỉ IP của máy chủ - Ví dụ này sử dụng tên miền phụ là 'netbox.howtoforge.local' để chạy NetBox.
Với các điều kiện tiên quyết này, bạn đã sẵn sàng cài đặt NetBox.

Cài đặt và cấu hình PostgreSQL​

NetBox IRM theo mặc định hỗ trợ máy chủ cơ sở dữ liệu PostgreSQL. Tại thời điểm viết bài này, yêu cầu ít nhất là PostgreSQL v10 trở lên. Theo mặc định, kho lưu trữ Rocky Linux cung cấp máy chủ PostgreSQL v13, phù hợp để triển khai NetBox.

Trong bước này, bạn sẽ cài đặt máy chủ cơ sở dữ liệu PostgreSQL, thiết lập xác thực mật khẩu, sau đó tạo cơ sở dữ liệu và người dùng mới mà NetBox sẽ sử dụng.

Để bắt đầu, hãy chạy lệnh bên dưới để cài đặt máy chủ PostgreSQL trên Rocky Linux máy chủ.
Mã:
sudo dnf install postgresql-server
Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E


Sau khi cài đặt máy chủ PostgreSQL, hãy chạy lệnh bên dưới để khởi tạo cơ sở dữ liệu PostgreSQL và cấu hình.
Mã:
sudo postgresql-setup --initdb
Bạn sẽ nhận được đầu ra như 'Đang khởi tạo cơ sở dữ liệu trong ...'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E


Sau khi máy chủ PostgreSQL được khởi tạo, tiếp theo bạn sẽ thiết lập mã hóa mật khẩu và xác thực cho người dùng PostgreSQL.

Mở Tệp cấu hình PostgreSQL '/var/lib/pgsql/data/postgresql.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /var/lib/pgsql/data/postgresql.conf
Bỏ chú thích tham số 'password_encryption' và đổi giá trị thành 'scram-sha-256'. Thao tác này sẽ thiết lập mã hóa mật khẩu mặc định cho người dùng PostgreSQL thành 'scram-sha-256'.
Mã:
password_encryption = scram-sha-256
Lưu tệp và thoát khỏi trình chỉnh sửa.

Tiếp theo, mở tệp cấu hình PostgreSQL khác '/var/lib/pgsql/data/pg_hba.conf' bằng lệnh bên dưới. Tệp này là nơi bạn có thể xác định các phương thức xác thực cho PostgreSQL của mình.
Mã:
sudo nano /var/lib/pgsql/data/pg_hba.conf
Thay đổi các phương thức xác thực mặc định cho máy chủ '127.0.0.1/32' và '::1/128' thành 'scram-sha-256'. Với điều này, bạn sẽ thiết lập phương thức xác thực mặc định cho người dùng PostgreSQL thành 'scram-sha-256'.
Mã:
# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22743%22%20height=%22340%22%3E%3C/svg%3E


Bây giờ hãy chạy systemctl bên dưới tiện ích lệnh để khởi động và kích hoạt dịch vụ PostgreSQL.
Mã:
sudo systemctl start postgresql
sudo systemctl enable postgresql
Sau đó xác minh dịch vụ PostgreSQL bằng lệnh bên dưới.
Mã:
sudo systemctl status postgresql
Bạn sẽ nhận được kết quả như thế này - Dịch vụ PostgreSQL đang chạy và được bật, nghĩa là PostgreSQL sẽ tự động khởi động khi khởi động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22318%22%3E%3C/svg%3E


Bây giờ bạn đã cấu hình xác thực mật khẩu cho máy chủ PostgreSQL, bây giờ đang chạy. Tiếp theo, bạn sẽ thiết lập mật khẩu mới cho người dùng mặc định 'postgres' và tạo cơ sở dữ liệu và người dùng mới mà NetBox sẽ sử dụng.

Đăng nhập vào shell PostgreSQL thông qua lệnh bên dưới.
Mã:
sudo -u postgres psql
Chạy truy vấn bên dưới để thiết lập mật khẩu mới cho người dùng PostgreSQL mặc định 'postgres'. Hãy chắc chắn thay đổi mật khẩu trong truy vấn sau.
Mã:
ALTER USER postgres WITH PASSWORD 'PostgreSQLPass';

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22634%22%20height=%22227%22%3E%3C/svg%3E


Tiếp theo, chạy truy vấn bên dưới để tạo cơ sở dữ liệu PostgreSQL và người dùng mới. Ngoài ra, hãy đảm bảo thay đổi mật khẩu mặc định trong truy vấn sau.

Trong ví dụ này, bạn sẽ tạo một cơ sở dữ liệu mới 'netboxdb' với người dùng 'netbox' sẽ được sử dụng để cài đặt NetBox.
Mã:
CREATE DATABASE netboxdb;
CREATE USER netbox WITH ENCRYPTED PASSWORD 'NetBoxRocks';
GRANT ALL PRIVILEGES ON DATABASE netboxdb TO netbox;
Bây giờ hãy nhấn Ctrl+d hoặc nhập quit để thoát.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22654%22%20height=%22219%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh bên dưới để đăng nhập vào shell PostgreSQL thông qua người dùng mới 'netbox' vào cơ sở dữ liệu mới 'netboxdb'. Khi được nhắc nhập mật khẩu, hãy nhập mật khẩu của bạn.
Mã:
sudo -u postgres psql --username netbox --password --host localhost netboxdb
Sau khi đăng nhập vào shell PostgreSQL, hãy chạy truy vấn bên dưới để xác minh kết nối hiện tại của bạn.
Mã:
\conninfo
Bạn sẽ nhận được đầu ra như thế này - Bạn đã kết nối với máy chủ PostgreSQL thông qua người dùng 'netbox' tới cơ sở dữ liệu 'netboxdb'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E


Sau khi cài đặt PostgreSQL, cơ sở dữ liệu và tạo người dùng, tiếp theo bạn sẽ cài đặt Redis, được sử dụng làm quản lý bộ nhớ đệm trên ứng dụng web NetBox.

Cài đặt và cấu hình Redis​

Redis là cơ sở dữ liệu khóa-giá trị miễn phí và mã nguồn mở mà NetBox sẽ sử dụng để quản lý bộ nhớ đệm và quản lý hàng đợi. Tại thời điểm viết bài này, NetBox yêu cầu ít nhất máy chủ Redis v4 và kho lưu trữ Rocky Linux mặc định cung cấp Redis v6, phù hợp với triển khai NetBox của bạn.

Cài đặt Redis vào máy chủ Rocky Linux của bạn thông qua lệnh dnf bên dưới.
Mã:
sudo dnf install redis
Nhập y khi được nhắc và nhấn ENTER để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22194%22%3E%3C/svg%3E


Sau khi Redis được cài đặt, hãy mở tệp cấu hình Redis '/etc/redis/redis.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/redis/redis.conf
Bỏ chú thích tham số 'requirepass' và nhập mật khẩu mới cho Redis của bạn máy chủ.
Mã:
requirepass RedisPasswordNetBox
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Tiếp theo, chạy lệnh systemctl bên dưới để khởi động máy chủ Redis và bật nó.
Mã:
sudo systemctl start redis
sudo systemctl enable redis

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22704%22%20height=%22194%22%3E%3C/svg%3E


Sau đó, xác minh máy chủ Redis thông qua tiện ích lệnh systemctl bên dưới.
Mã:
sudo systemctl status redis
Trong kết quả đầu ra, bạn sẽ thấy máy chủ Redis được bật và sẽ tự động chạy khi khởi động. Và trạng thái của máy chủ Redis đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22240%22%3E%3C/svg%3E


Để xác minh cài đặt Redis của bạn, bạn sẽ truy cập Redis thông qua lệnh 'redis-cli' bên dưới.
Mã:
redis-cli
Nếu bạn chạy truy vấn ping, bạn sẽ nhận được kết quả chẳng hạn như '(lỗi) yêu cầu xác thực NOAUTH'. Bạn cần được xác thực để chạy lệnh 'ping'.
Mã:
ping
Thực hiện truy vấn Redis bên dưới để xác thực với máy chủ Redis. Hãy nhớ thay đổi mật khẩu. Nếu đã xác thực, bạn sẽ nhận được thông báo đầu ra là 'OK'.
Mã:
AUTH RedisPasswordNetBox
Chạy lại truy vấn ping và bạn sẽ nhận được thông báo đầu ra là 'PONG", điều này có nghĩa là truy vấn đã được thực thi thành công và bạn đã xác thực với máy chủ Redis.
Mã:
ping

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22440%22%20height=%22294%22%3E%3C/svg%3E


Lúc này, bạn đã cài đặt máy chủ cơ sở dữ liệu PostgreSQL và cơ sở dữ liệu khóa-giá trị Redis trên Rocky Linux. Bây giờ bạn đã sẵn sàng để bắt đầu cài đặt NetBox.

Cài đặt Netbox IRM​

NetBox là một ứng dụng web được viết bằng Python Django Framework. Phiên bản hiện tại của NetBox yêu cầu ít nhất Python 3.8, 3.9, 3.10 hoặc 3.11. Và Python mặc định trên Rocky Linux 9 là Python 3.9, phù hợp để triển khai NetBox.

Để bắt đầu, hãy chạy lệnh dnf bên dưới để cài đặt các gói phụ thuộc cho NetBox. Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo dnf install gcc libxml2-devel libxslt-devel libffi-devel libpq-devel openssl-devel redhat-rpm-config git

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22541%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để tạo người dùng hệ thống mới 'netbox' với thư mục home mặc định '/opt/netbox'.
Mã:
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox
Tạo một thư mục mới '/opt/netbox' và di chuyển thư mục làm việc của bạn vào đó. Sau đó, tải xuống mã nguồn NetBox thông qua lệnh git. Thư mục '/opt/netbox' sẽ được sử dụng làm thư mục cài đặt chính của NetBox.
Mã:
mkdir -p /opt/netbox; cd /opt/netbox
sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .
Thay đổi quyền sở hữu thư mục cài đặt NetBox '/opt/netbox' thành người dùng và nhóm 'netbox'. Sau đó, di chuyển thư mục làm việc của bạn đến '/opt/netbox/netbox/netbox'.
Mã:
sudo chown -R netbox:netbox /opt/netbox
cd /opt/netbox/netbox/netbox
Tiếp theo, chạy lệnh bên dưới để sao chép cấu hình NetBox mặc định vào 'configuration.py'. Sau đó, tạo SECRET_KEY thông qua tập lệnh Python '../generate_secret_key.py'.
Mã:
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox python3 ../generate_secret_key.py
Bây giờ hãy sao chép SECRET_KEY đã tạo. Điều này sẽ được sử dụng để thiết lập cài đặt NetBox.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22274%22%3E%3C/svg%3E


Mở tệp cấu hình NetBox 'configuration.py' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo -u netbox nano configuration.py
Hãy nhớ thêm tên miền của bạn vào Tham số 'ALLOWED_HOSTS', nhập thông tin chi tiết về cơ sở dữ liệu PostgreSQL và người dùng cho NetBox, nhập mật khẩu Redis mà bạn đã cấu hình và dán SECRET_KEY đã tạo vào tham số 'SECRET_KEY'.
Mã:
# domain and IP address
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.5.59']

# database configuration
DATABASE = {
 'NAME': 'netboxdb', # Database name
 'USER': 'netbox', # PostgreSQL username
 'PASSWORD': 'NetBoxRocks', # PostgreSQL password
 'HOST': 'localhost', # Database server
 'PORT': '', # Database port (leave blank for default)
 'CONN_MAX_AGE': 300, # Max database connection age (seconds)
}

# Redis cache configuration
REDIS = {
 'tasks': {
 'HOST': 'localhost', # Redis server
 'PORT': 6379, # Redis port
 'PASSWORD': 'RedisPasswordNetBox', # Redis password (optional)
 'DATABASE': 0, # Database ID
 'SSL': False, # Use SSL (optional)
 },
 'caching': {
 'HOST': 'localhost',
 'PORT': 6379,
 'PASSWORD': 'RedisPasswordNetBox',
 'DATABASE': 1, # Unique ID for the second database
 'SSL': False,
 }
}

# Secret key
SECRET_KEY = '-K0AV#USk(!-6hAEF-8NMgweJh6ex&+j0Kb$N7bi=*jsF9TOg*'
Lưu và thoát tệp khi hoàn tất.

Bây giờ hãy chạy tập lệnh bên dưới '/opt/netbox/upgrade.sh' để khởi động NetBox IRM cài đặt.
Mã:
sudo -u netbox /opt/netbox/upgrade.sh
Điều này sẽ cài đặt tạo môi trường ảo Python cho ứng dụng web NetBox, cài đặt các phụ thuộc Python cần thiết thông qua kho lưu trữ PyPI, chạy di chuyển cơ sở dữ liệu cho NetBox và cuối cùng tạo các tệp tĩnh cho ứng dụng web NetBox.

Dưới đây là kết quả đầu ra khi tập lệnh upgrade.sh được thực thi.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22684%22%3E%3C/svg%3E


Dưới đây là thông báo đầu ra khi quá trình cài đặt NetBox hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22709%22%20height=%22443%22%3E%3C/svg%3E


Lúc này, bạn đã cài đặt NetBox IRM vào hệ thống của mình. Nhưng bạn vẫn cần thiết lập cài đặt NetBox của mình.

Cấu hình NetBox IRM​

Trong bước này, bạn sẽ thiết lập cài đặt NetBox IRM bằng cách tạo người dùng quản trị cho NetBox, thiết lập cron và thiết lập dịch vụ systemd cho NetBox.

Để bắt đầu, hãy chạy lệnh bên dưới để kích hoạt môi trường ảo Python cho cài đặt NetBox của bạn.
Mã:
source /opt/netbox/venv/bin/activate
Khi được kích hoạt, lời nhắc của bạn sẽ trở thành '(venv) root@hostname....'.

Tiếp theo, di chuyển thư mục làm việc đến '/opt/netbox/netbox' và chạy tập lệnh Django 'manage.py' để tạo người dùng quản trị NetBox mới.
Mã:
cd /opt/netbox/netbox
python3 manage.py createsuperuser
Nhập người dùng quản trị mới, email và mật khẩu cho NetBox của bạn. Bạn sẽ nhận được thông báo 'Superuser created successfully.', nghĩa là người dùng quản trị NetBox đã được tạo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22282%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để thiết lập cron sẽ chạy hàng ngày. Tập lệnh 'netbox-housekeeping.sh' được sử dụng để dọn dẹp môi trường NetBox của bạn, điều này sẽ xóa các tác vụ đã hết hạn, phiên cũ hoặc bất kỳ bản ghi nào đã hết hạn.
Mã:
sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping
Sau khi cấu hình cron cho NetBox, bạn sẽ thiết lập NetBox để chạy với Gunicorn.

Chạy lệnh bên dưới để sao chép cấu hình Guncorn vào '/opt/netbox/gunicorn.py'. Sau đó, mở tệp cấu hình Gunicorn '/opt/netbox/gunicorn.py' bằng lệnh trình chỉnh sửa nano 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
Thay đổi tham số 'bind' bằng dòng sau. Lệnh này sẽ chạy ứng dụng web NetBox cục bộ với cổng '8001'.
Mã:
bind = '127.0.0.1:8001'
Lưu và thoát tệp khi hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22189%22%3E%3C/svg%3E


Tiếp theo, chạy lệnh bên dưới để sao chép các dịch vụ systemd mặc định cho NetBox vào Thư mục '/etc/systemd/system'. Lệnh này sẽ sao chép tệp dịch vụ 'netbox' và 'netbox-rq' sẽ được sử dụng để quản lý NetBox.
Mã:
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
Bây giờ hãy chạy tiện ích lệnh systemctl bên dưới để tải lại trình quản lý systemd và áp dụng các thay đổi mới cho hệ thống của bạn.
Mã:
sudo systemctl daemon-reload
Cuối cùng, hãy chạy bên dưới lệnh systemctl để khởi động và kích hoạt dịch vụ 'netbox-rq'. Thao tác này cũng sẽ tự động khởi động dịch vụ 'netbox' chính.
Mã:
sudo systemctl start netbox netbox-rq
sudo systemctl enable netbox netbox-rq

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22132%22%3E%3C/svg%3E


Bây giờ hãy xác minh cả hai dịch vụ 'netbox-rq' và 'netbox' thông qua systemcl bên dưới lệnh.
Mã:
sudo systemctl status netbox
sudo systemctl status netbox-rq
Đầu ra của trạng thái dịch vụ 'netbox-rq'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22210%22%3E%3C/svg%3E


Đầu ra của dịch vụ 'netbox''.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22202%22%3E%3C/svg%3E


Tại thời điểm này, NetBox IRM đang chạy như một dịch vụ systemd và nó đang chạy như một ứng dụng WSGI với Gunicorn. Trong bước tiếp theo, bạn sẽ cài đặt và thiết lập httpd như một proxy ngược cho NetBox.

Thiết lập httpd như một Proxy ngược​

Với NetBox chạy như một ứng dụng WSGI với Gunicorn, bây giờ bạn sẽ cài đặt và cấu hình máy chủ web httpd như một proxy ngược cho NetBox. Bạn sẽ cài đặt gói httpd, tạo một tệp máy chủ ảo httpd mới, sau đó khởi động và kích hoạt dịch vụ httpd. Cuối cùng, bạn cũng sẽ thiết lập firewalld để mở các cổng HTTP và HTTPS.

Chạy lệnh dnf bên dưới để cài đặt máy chủ web httpd. Nhập y khi được nhắc xác nhận và nhấn ENTER để tiếp tục.
Mã:
sudo dnf install httpd

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E


Tiếp theo, tạo tệp máy chủ ảo httpd mới '/etc/httpd/conf.d/netbox.conf' bằng trình chỉnh sửa nano bên dưới lệnh.
Mã:
sudo nano /etc/httpd/conf.d/netbox.conf
Thêm các dòng sau vào tệp và đảm bảo thay đổi tên miền 'netbox.howtoforge.local' bằng tên miền của bạn. Với máy chủ ảo này, bạn sẽ thiết lập httpd làm proxy ngược cho ứng dụng NetBox chạy như ứng dụng WSGI trên cổng '8001'.
Mã:
 ProxyPreserveHost On

 # CHANGE THIS TO YOUR SERVER'S NAME
 ServerName netbox.howtoforge.local

 Alias /static /opt/netbox/netbox/static

 
 Options Indexes FollowSymLinks MultiViews
 AllowOverride None
 Require all granted
 

 
 ProxyPass !
 

 RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
 ProxyPass / http://127.0.0.1:8001/
 ProxyPassReverse / http://127.0.0.1:8001/
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Tiếp theo, chạy lệnh apachectl bên dưới để xác minh cấu hình httpd. Và nếu bạn cấu hình httpd đúng, bạn sẽ nhận được kết quả như sau 'Cú pháp OK'.
Mã:
sudo apachectl configtest

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22646%22%20height=%22198%22%3E%3C/svg%3E


Bây giờ hãy chạy tiện ích lệnh systemctl bên dưới để khởi động và kích hoạt web httpd máy chủ.
Mã:
sudo systemctl start httpd
sudo systemctl enable httpd
Sau đó, hãy xác minh máy chủ web httpd để đảm bảo rằng dịch vụ đang chạy. Bạn sẽ nhận được thông báo máy chủ web httpd đang chạy và được bật, nghĩa là máy chủ web httpd sẽ tự động khởi động khi khởi động.
Mã:
sudo systemctl status httpd

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22262%22%3E%3C/svg%3E


Với thông báo này, ứng dụng NetBox đang chạy và có thể truy cập được. Nhưng trước đó, bạn phải mở cả cổng HTTP và HTTPS trong firewalld.

Chạy lệnh firewall-cmd bên dưới để mở dịch vụ HTTP và HTTPS. Sau đó, tải lại firewalld để áp dụng các thay đổi.
Mã:
sudo firewall-cmd --add-servic={http,https} --permanent
sudo firewall-cmd --reload
Xác minh trạng thái firewalld thông qua lệnh bên dưới.
Mã:
sudo firewall-cmd --list-all
Đầu ra như thế này cho bạn thấy các dịch vụ HTTP và HTTPS đã được thêm vào firewalld.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22289%22%3E%3C/svg%3E


Với điều này, bây giờ bạn đã có ứng dụng web NetBox đang chạy và có thể truy cập - Bạn có thể truy cập cài đặt NetBox, nhưng bằng giao thức HTTP không an toàn. Ở bước tiếp theo, bạn sẽ bảo mật triển khai NetBox của mình bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.

Bảo mật NetBox IRM bằng SSL Letsencrypt​

Ở bước này, bạn sẽ bảo mật cài đặt NetBox bằng chứng chỉ SSL/TLS có thể được tạo thông qua Certbot và Letsencrypt. Trước khi bắt đầu, hãy đảm bảo rằng tên miền được trỏ đến địa chỉ IP của máy chủ. Ngoài ra, hãy đảm bảo rằng bạn có địa chỉ email sẽ được sử dụng để đăng ký Letsencrypt.

Cài đặt công cụ Certbot và plugin httpd/Apache thông qua lệnh dnf bên dưới.
Mã:
sudo dnf install certbot python3-certbot-apache
Nhập y khi được nhắc và nhấn ENTER để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22474%22%3E%3C/svg%3E


Sau khi Certbot được cài đặt, hãy chạy lệnh bên dưới để tạo chứng chỉ SSL/TLS cho tên miền của bạn. Ngoài ra, hãy đảm bảo thay đổi tên miền và địa chỉ email trong lệnh sau.
Mã:
sudo certbot --apache2 --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d netbox.howtoforge.local
Lệnh này sẽ tạo chứng chỉ SSL/TLS mới cho tên miền của bạn. Ngoài ra, lệnh này sẽ tự động thiết lập HTTPS trên cấu hình máy chủ ảo httpd của bạn và thiết lập chuyển hướng tự động từ HTTP sang HTTPS cho tệp máy chủ ảo NetBox của bạn. Chứng chỉ SSL/TLS của Certbot được tạo vào thư mục '/etc/elstencrypt/live/netbox.howtoforge.local/'.

Đăng nhập vào NetBox​

Mở trình duyệt web của bạn và truy cập tên miền cài đặt NetBox của bạn (ví dụ: https://netbox.howtoforge.local/).

Bạn sẽ thấy trang chủ mặc định của cài đặt NetBox - Đây giống như bản xem trước 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=%22496%22%3E%3C/svg%3E


Nhấp vào Nút 'Đăng nhập' ở menu trên cùng bên phải và bạn sẽ được chuyển hướng đến màn hình đăng nhập NetBox.

Đăng nhập bằng tên người dùng và mật khẩu quản trị của bạn, sau đó nhấp vào 'Đăng nhập'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22495%22%20height=%22391%22%3E%3C/svg%3E


Khi bạn có tên người dùng và mật khẩu phù hợp và chính xác cho NetBox, bây giờ bạn sẽ được đăng nhập vào bảng điều khiển quản trị NetBox.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22482%22%3E%3C/svg%3E


Như vậy là bạn đã hoàn tất cài đặt NetBox IRM với PostgreSQL, Redis, Gunciron và máy chủ web httpd.

Kết luận​

Trong hướng dẫn này, bạn đã cài đặt phần mềm Infrastructure Resource Modelling (IRM) NetBox trên máy chủ Rocky Linux 9. Bạn đã cấu hình NetBox với máy chủ cơ sở dữ liệu PostgreSQL, Redis làm quản lý bộ đệm và máy chủ web httpd làm proxy ngược trên máy chủ Rocky Linux.

Thông qua hướng dẫn, bạn cũng đã học cách thiết lập xác thực trên PostgreSQL, bật xác thực trên Redis, thiết lập httpd làm proxy ngược và bảo mật NetBox bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt.

Với NeBox được cài đặt đầy đủ, giờ đây bạn có thể tích hợp NetBox vào trung tâm dữ liệu của mình, thêm tích hợp với REST API hoặc thêm xác thực của bên thứ ba thông qua LDAP, Azure AD và Okta làm phụ trợ SSO (Đăng nhập một lần).
 
Back
Bên trên