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

theanh

Administrator
Nhân viên
NetBox là phần mềm ứng dụng web miễn phí và mã nguồn mở có thể được sử dụng để quản lý và ghi lại tài liệu mạng máy tính. Nó được thiết kế đặc biệt để quản lý địa chỉ IP và cơ sở hạ tầng trung tâm dữ liệu thông qua trình duyệt web. NetBox được viết bằng khung Django Python và sử dụng PostgreSQL cho cơ sở dữ liệu. Với NetBox, bạn có thể dễ dàng quản lý và ghi lại các máy ảo và cụm, mạch dữ liệu, mạng, bảng điều khiển và kết nối nguồn từ vị trí trung tâm.

Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt NetBox trên máy chủ Ubuntu 18.04.

Yêu cầu​

  • Máy chủ chạy Ubuntu 18.04.
  • Mật khẩu gốc được thiết lập trên máy chủ của bạn.

Bắt đầu​

Trước tiên, hãy cập nhật gói hệ thống của bạn lên phiên bản mới nhất bằng lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Sau khi tất cả các gói được cập nhật, hãy khởi động lại hệ thống của bạn để áp dụng tất cả các thay đổi cấu hình.

Tiếp theo, bạn sẽ cần cài đặt các phụ thuộc cần thiết để chạy NetBox. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y
Sau khi tất cả các phần phụ thuộc đượ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 PostgreSQL​

Tiếp theo, bạn sẽ cần cài đặt PostgreSQL trên máy chủ của mình. Theo mặc định, phiên bản mới nhất của PostgreSQL không có trong kho lưu trữ mặc định của Ubuntu 18.04. Vì vậy, bạn sẽ cần thêm kho lưu trữ PostgreSQL vào hệ thống của mình.

Đầu tiên, hãy tải xuống và thêm khóa GPG bằng lệnh sau:
Mã:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
Tiếp theo, hãy thêm kho lưu trữ bằng lệnh sau:
Mã:
nano /etc/apt/sources.list.d/postgres.list
Thêm dòng sau:
Mã:
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main
Lưu và đóng tệp. Sau đó, hãy cập nhật kho lưu trữ và cài đặt PostgreSQL bằng lệnh sau:
Mã:
apt-get update -y
apt-get install postgresql postgresql-contrib -y
Sau khi cài đặt, hãy kiểm tra trạng thái của PostgreSQL bằng lệnh sau:
Mã:
systemctl status postgresql
Bạn sẽ thấy đầu ra sau:
Mã:
? postgresql.service - PostgreSQL RDBMS Đã tải: đã tải (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đã thoát) kể từ Thứ 4, ngày 07 tháng 08 năm 2019 lúc 07:00:51 UTC; 23 giây trước PID chính: 13552 (code=exited, status=0/SUCCESS) Nhiệm vụ: 0 (limit: 1098) CGroup: /system.slice/postgresql.service07/08 07:00:50 hitesh systemd[1]: Đang khởi động PostgreSQL RDBMS...07/08 07:00:51 hitesh systemd[1]: Đã khởi động PostgreSQL RDBMS.
Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho NetBox. Trước tiên, hãy đăng nhập vào shell PostgreSQL bằng lệnh sau:
Mã:
su - postgres
postgres@hitesh:~$ psql
Đầu ra:
Mã:
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1))Gõ "help" để được trợ giúp.
Tiếp theo, hãy 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, hãy cấp tất cả các quyền cho NetBox bằng lệnh sau:
Mã:
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;
Cuối cùng, hãy thoát khỏi shell PostgreSQL bằng lệnh sau:
Mã:
postgres=#exit
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

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

Bạn có thể tải xuống phiên bản NetBox mới nhất vào thư mục /opt bằng lệnh sau:
Mã:
cd /opt
git clone -b master https://github.com/digitalocean/netbox.git
Tiếp theo, hãy thay đổi thư mục thành netbox và tạo Khóa BÍ MẬT Django:
Mã:
cd /opt/netbox/netbox/
./generate_secret_key.py
Bạn sẽ thấy khóa được tạo trong đầu ra sau:
Mã:
+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$
Tiếp theo, đổi tên tệp cấu hình mặc định bằng lệnh sau:
Mã:
mv configuration.example.py configuration.py
Tiếp theo, mở tệp cấu hình và xác định thông tin chi tiết về cơ sở dữ liệu và khóa bí mật của bạn:
Mã:
nano configuration.py
Thực hiện các thay đổi sau:
Mã:
#Thay thế your-server-ip bằng địa chỉ IP máy chủ của bạn:# Ví dụ: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']ALLOWED_HOSTS = ['your-server-ip']# Cấu hình cơ sở dữ liệu PostgreSQL.DATABASE = { '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 để mặc định)}SECRET_KEY = '+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$'
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, cài đặt tất cả các phụ thuộc mà NetBox yêu cầu bằng lệnh sau:
Mã:
pip3 install -r /opt/netbox/requirements.txt
Sau khi cài đặt, hãy di chuyển cơ sở dữ liệu bằng lệnh sau:
Mã:
cd /opt/netbox/netbox/
python3 manage.py di chuyển
Sau khi di chuyển thành công, bạn sẽ thấy đầu ra sau:
Mã:
Đang áp dụng secrets.0004_tags... OK Đang áp dụng secrets.0005_change_logging... OK Đang áp dụng secrets.0006_custom_tag_models... OK Đang áp dụng ipam.0021_vrf_ordering... OK Đang áp dụng ipam.0022_tags... OK Đang áp dụng ipam.0023_change_logging... OK Đang áp dụng ipam.0024_vrf_allow_null_rd... OK Đang áp dụng ipam.0025_custom_tag_models... OK Đang áp dụng dcim.0067_device_type_remove_qualifiers... OK Đang áp dụng dcim.0068_rack_new_fields... OK Đang áp dụng dcim.0069_deprecate_nullablecharfield... OK Đang áp dụng dcim.0070_custom_tag_models... OK Đang áp dụng extras.0020_tag_data... OK Đang áp dụng extras.0021_add_color_comments_changelog_to_tag... OK Đang áp dụng dcim.0071_device_components_add_description... OK Đang áp dụng dcim.0072_powerfeeds... OK Đang áp dụng dcim.0073_interface_form_factor_to_type... OK Đang áp dụng extras.0022_custom_links... OK Đang áp dụng extras.0023_fix_tag_sequences... OK Đang áp dụng ipam.0026_prefix_ordering_vrf_nulls_first... OK Đang áp dụng ipam.0027_ipaddress_add_dns_name... OK Đang áp dụng sessions.0001_initial... OK Đang áp dụng taggit.0003_taggeditem_add_unique_index... OK Đang áp dụng users.0001_api_tokens_squashed_0002_unicode_literals... OK Đang áp dụng users.0003_token_permissions... OK
Tiếp theo, bạn sẽ cần tạo một tài khoản quản trị viên cho NetBox. Bạn có thể thực hiện bằng lệnh sau:
Mã:
python3 manage.py createsuperuser
Cung cấp tên người dùng và mật khẩu quản trị viên của bạn và nhấn Enter, bạn sẽ thấy kết quả sau:
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 đã tạo thành công.
Tiếp theo, di chuyển các tệp tĩnh và tải dữ liệu ban đầu bằng lệnh sau:
Mã:
python3 manage.py collectstatic
python3 manage.py loaddata initial_data

Cài đặt và cấu hình Gunicorn cho NetBox​

Tiếp theo, bạn sẽ cần cài đặt Gunicorn cho NetBox. Bạn có thể cài đặt bằng lệnh pip như được hiển thị bên dưới:
Mã:
pip3 install gunicorn
Tiếp theo, tạo tệp cấu hình Gunicorn 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ấu hình Supervisor cho Netbox​

Tiếp theo, bạn sẽ cần cấu hình Supervisor để quản lý dịch vụ NetBox. Bạn có thể thực hiện 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, sau đó khởi động lại dịch vụ giám sát và cho phép dịch vụ này khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl restart supervisor
systemctl enable Supervisor
Bạn cũng có thể xác minh dịch vụ Giám sát bằng lệnh sau:
Mã:
systemctl status Supervisor
Đầu ra:
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ứ 4, ngày 07 tháng 08 năm 2019 lúc 07:13:26 UTC; 8 giây trước Tài liệu: http://supervisord.org Tiến trình: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS tắt máy (mã=thoát, trạng thái=0/THÀNH CÔNG) PID chính: 15015 (supervisord) Nhiệm vụ: 5 (giới hạn: 1098) CGroup: /system.slice/supervisor.service ??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf ??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi ??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi07 tháng 8 07:13:26 hitesh systemd[1]: Đã khởi động hệ thống kiểm soát quy trình Supervisor cho UNIX.07/08 07:13:27 hitesh supervisord[15015]: 07/08/2019 07:13:27,087 CRIT Supervisor chạy dưới dạng root (không có người dùng trong tệp cấu hình)07/08 07:13:27 hitesh supervisord[15015]: 07/08/2019 07:13:27,089 THÔNG TIN Đã bao gồm tệp bổ sung "/etc/supervisor/conf.d/netbox.conf" trong quá trình phân tích cú pháp07/08 07:13:27 hitesh supervisord[15015]: 07/08/2019 07:13:27,117 THÔNG TIN Giao diện RPC 'supervisor' đã được khởi tạo07/08 07:13:27 hitesh supervisord[15015]: 07/08/2019 07:13:27,117 Máy chủ CRIT 'unix_http_server' đang chạy mà không có bất kỳ kiểm tra xác thực HTTP nào07/08 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 THÔNG TIN supervisord đã bắt đầu với pid 1501507/08 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 THÔNG TIN đã tạo: 'netbox' với pid 1503707/08 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 THÔNG TIN thành công: netbox đã vào trạng thái CHẠY, tiến trình đã dừng

Cấu hình Nginx cho NetBox​

Tiếp theo, bạn sẽ cần cấu hình Nginx để truy cập NetBox bằng cổng 80. Để thực hiện, hãy tạo tệp cấu hình máy chủ ảo bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/netbox
Thêm các dòng sau:
Mã:
server { listen 80; server_name your-domain-name; 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 đó, bật máy chủ ảo bằng lệnh sau:
Mã:
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng tất cả các thay đổi cấu hình bằng lệnh sau:
Mã:
systemctl restart nginx

Truy cập Giao diện Web NetBox​

NetBox hiện đã được cài đặt và cấu hình, đã đến lúc truy cập giao diện web NetBox.

Mở trình duyệt web của bạn và nhập URL http://your-domain.com. Bạn sẽ được chuyển hướng đến trang sau:



Bây giờ, hãy nhấp vào nút Đăng nhập ở góc trên bên phải. Bạn sẽ thấy trang sau:



Bây giờ, hãy cung cấp tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào nút Đăng nhập . Bạn sẽ thấy bảng điều khiển mặc định của NetBox ở trang sau:



Xin chúc mừng! bạn đã cài đặt và cấu hình thành công NetBox trên máy chủ Ubuntu 18.04. Bây giờ bạn có thể quản lý và ghi lại Mạng và địa chỉ IP của mình từ vị trí trung tâm. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên