Hướng Dẫn Cài Đặt và Cấu Hình NetBox trên Ubuntu 20.04 chi Tiết

Hướng Dẫn Cài Đặt và Cấu Hình NetBox trên Ubuntu 20.04 chi Tiết

NetBox là một phần mềm mã nguồn mở dựa trên web, được thiết kế nhằm mô hình hóa tài nguyên hạ tầng (Infrastructure Resource Modeling – IRM) và tự động hóa các hoạt động quản trị mạng. Khi triển khai NetBox, bạn sẽ được sử dụng các công cụ mạnh mẽ như IP Address Management (IPAM) để quản lý các địa chỉ IP và Data Center Infrastructure Management (DCIM) giúp tài liệu hóa cũng như giám sát hệ thống mạng một cách hiệu quả.

Bài viết này sẽ chỉ dẫn chi tiết cách cài đặt và cấu hình NetBox trên Ubuntu 20.04, cung cấp nền tảng vững chắc cho việc quản trị và quản lý tài liệu mạng lưới một cách chuyên nghiệp và hiệu quả.

Yêu cầu

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

  1. Cài đặt PostgreSQL:
    $ sudo apt install postgresql libpq-dev -y
  2. Khởi động server cơ sở dữ liệu:
    $ sudo systemctl start postgresql
  3. Cài đặt PostgreSQL tự động khởi động cùng hệ thống:
    $ sudo systemctl enable postgresql
  4. Thay đổi mật khẩu mặc định cho PostgreSQL:
    $ sudo passwd postgres
  5. Chuyển sang tài khoản postgres:
    $ su - postgres
  6. Đăng nhập vào PostgreSQL:
    $ psql
  7. Tạo cơ sở dữ liệu netbox:
    CREATE DATABASE netbox;
  8. Tạo người dùng netbox với mật khẩu my_strong_password. (Hãy sử dụng mật khẩu mạnh thay thế cho my_strong_password.)
    CREATE USER netbox WITH ENCRYPTED password 'my_strong_password';
  9. Cấp toàn bộ quyền trên cơ sở dữ liệu netbox cho người dùng netbox:
    GRANT ALL PRIVILEGES ON DATABASE netbox to netbox;
  10. Thoát khỏi PostgreSQL:
    \q
  11. Trở lại tài khoản người dùng sudo không phải root:
    $ exit

2. Cài đặt Redis®

Redis® là một kho lưu trữ giá trị key-based trong bộ nhớ. NetBox sử dụng Redis cho mục đích caching và quản lý hàng đợi.

  1. Cài đặt Redis®:
    $ sudo apt install -y redis-server

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

Khuyến nghị cài đặt NetBox từ kho git chính thức để đảm bảo khả năng nâng cấp liền mạch bằng cách kéo về branch master mới nhất.

  1. Cài đặt các gói cần thiết:
    $ sudo apt install python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev git -y
  2. Cập nhật pip lên phiên bản mới nhất:
    $ sudo pip3 install --upgrade pip
  3. Sử dụng thư mục /opt/netbox/ làm thư mục cài đặt. Tạo thư mục /opt/netbox/ và chuyển sang đó:
    $ sudo mkdir -p /opt/netbox/ && cd /opt/netbox/
  4. Clone NetBox từ kho git chính thức vào thư mục hiện tại:
    $ sudo git clone -b master https://github.com/netbox-community/netbox.git .
  5. Tạo một tài khoản hệ thống (system user) có tên netbox:
    $ sudo adduser --system --group netbox
  6. Cấp quyền sở hữu cho người dùng netbox đối với thư mục /opt/netbox/netbox/media/:
    $ sudo chown --recursive netbox /opt/netbox/netbox/media/
  7. Chuyển sang thư mục /opt/netbox/netbox/netbox/:
    $ cd /opt/netbox/netbox/netbox/
  8. Sao chép tệp cấu hình mẫu configuration.example.py thành configuration.py để cấu hình dự án:
    $ sudo cp configuration.example.py configuration.py
  9. Tạo một liên kết tượng trưng đến binary Python:
    $ sudo ln -s /usr/bin/python3 /usr/bin/python
  10. Sinh ra một SECRET_KEY ngẫu nhiên với độ dài tối thiểu 50 ký tự chữ và số:
    $ sudo /opt/netbox/netbox/generate_secret_key.py

    Sau khi chạy, bạn sẽ nhận được một key ngẫu nhiên như ví dụ dưới đây. Hãy sao chép và lưu lại, vì bạn sẽ cần nó để cấu hình tệp configuration.py:

    -^%YEl*Q2etCR6$kNG70H=&sM(45XvJaBWdf3O)inZ@L9j8_w1
  11. Mở và chỉnh sửa tệp cấu hình configuration.py:
    $ sudo nano /opt/netbox/netbox/netbox/configuration.py

    Trong tệp, bạn cần chỉnh sửa các mục sau:

    ALLOWED_HOSTS = ['*']
    
    DATABASE = {
        'NAME': 'netbox',                           # Database name you created
        'USER': 'netbox',                           # PostgreSQL username you created
        'PASSWORD': 'my_strong_password',           # PostgreSQL password you set
        'HOST': 'localhost',                        # Database server
        'PORT': '',                                 # Database port (leave blank for default)
    }
    
    SECRET_KEY = '-^%YEl*Q2etCR6$kNG70H=&sM(45XvJaBWdf3O)inZ@L9j8_w1'
  12. Chạy script nâng cấp (upgrade script):
    $ sudo /opt/netbox/upgrade.sh
  13. Kích hoạt môi trường ảo Python:
    $ source /opt/netbox/venv/bin/activate
  14. Chuyển đến thư mục /opt/netbox/netbox:
    $ cd /opt/netbox/netbox
  15. Tạo tài khoản superuser:
    $ python3 manage.py createsuperuser
  16. Khởi động lại hệ thống để áp dụng các thay đổi:
    $ sudo reboot

4. Cấu hình Gunicorn

  1. Sao chép tệp /opt/netbox/contrib/gunicorn.py sang /opt/netbox/gunicorn.py:
    $ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

5. Cấu hình Systemd

  1. Sao chép các tệp dịch vụ (service) contrib/netbox.servicecontrib/netbox-rq.service vào thư mục /etc/systemd/system/:
    $ sudo cp /opt/netbox/contrib/*.service /etc/systemd/system/
  2. Tải lại daemon để áp dụng các thay đổi của Systemd:
    $ sudo systemctl daemon-reload
  3. Khởi động các dịch vụ netboxnetbox-rq:
    $ sudo systemctl start netbox netbox-rq
  4. Kích hoạt các dịch vụ để khởi động cùng hệ thống:
    $ sudo systemctl enable netbox netbox-rq

6. Cấu hình Nginx Web Server

  1. Cài đặt Nginx:
    $ sudo apt install -y nginx
  2. Sao chép tệp cấu hình Nginx của NetBox (CCCCC) vào thư mục /etc/nginx/sites-available/netbox:
    $ sudo cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netbox
  3. Chỉnh sửa tệp cấu hình netbox:
    $ sudo nano /etc/nginx/sites-available/netbox

    Thay thế toàn bộ nội dung trong tệp bằng đoạn mã dưới đây. (Chú ý: thay đổi giá trị server_name thành địa chỉ IP của máy chủ của bạn.)

    server {
        listen 80;
    
        # CHANGE THIS TO YOUR SERVER'S NAME
        server_name 192.0.2.10;
    
        client_max_body_size 25m;
    
        location /static/ {
            alias /opt/netbox/netbox/static/;
        }
    
        location / {
            proxy_pass http://127.0.0.1:8001;
            proxy_set_header X-Forwarded-Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
  4. Xóa tệp /etc/nginx/sites-enabled/default:
    $ sudo rm /etc/nginx/sites-enabled/default
  5. Tạo một liên kết tượng trưng (symlink) trong thư mục sites-enabled đến tệp cấu hình netbox:
    $ sudo ln -s /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/netbox
  6. Khởi động lại Nginx để áp dụng cấu hình mới:
    $ sudo systemctl restart nginx

Kết luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *