0
0
Lập trình
TT

Hướng Dẫn Cài Đặt và Cấu Hình n8n Trên Máy Chủ RHEL Không Kết Nối Internet

Đăng vào 1 tháng trước

• 4 phút đọc

Giới thiệu

Tự động hóa quy trình làm việc đang trở thành xu hướng quan trọng trong thế giới công nghệ hiện đại. n8n đã nhanh chóng trở thành sự lựa chọn yêu thích của các kỹ sư DevOps và lập trình viên nhờ vào khả năng xây dựng các quy trình tự động hóa mạnh mẽ thông qua giao diện trực quan. Tuy nhiên, điều gì sẽ xảy ra nếu môi trường của bạn không kết nối internet (air-gapped)?

Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu quy trình từng bước để cài đặt và cấu hình n8n trên máy chủ RHEL không kết nối internet.

Tại Sao Chọn Môi Trường Không Kết Nối Internet?

Hệ thống không kết nối internet thường được sử dụng trong các lĩnh vực tài chính, quốc phòng, y tế và doanh nghiệp nhằm bảo mật. Mặc dù cung cấp độ bảo mật cao, nhưng việc thiết lập các ứng dụng như n8n trong môi trường này sẽ gặp nhiều khó khăn, vì bạn không thể thực hiện các lệnh như docker pull hay npm install trực tiếp.

Yêu Cầu Đầu Vào

Trước khi bắt đầu, bạn cần chuẩn bị một số điều kiện sau:

  • Máy chủ RHEL 8.x hoặc 9.x đã được cài đặt
  • Quyền truy cập root (sudo) đến máy chủ
  • Một máy tính có kết nối internet để chuẩn bị các gói và hình ảnh
  • Podman hoặc Docker đã được cài đặt trên máy chủ RHEL (chọn một tùy theo chính sách của tổ chức bạn)
  • SCP hoặc phương pháp truyền tải khác để chuyển file vào môi trường không kết nối

1. Tải Hình Ảnh Docker n8n (Trên Máy Tính Kết Nối Internet)

Vì máy chủ RHEL của bạn không thể tải trực tiếp từ Docker Hub, bạn cần tải trước hình ảnh n8n:

Copy
docker pull n8nio/n8n:latest
docker save n8nio/n8n:latest -o n8n.tar

Lệnh này sẽ tạo ra một file hình ảnh n8n.tar. Tiếp theo, hãy chuyển file n8n.tar vào máy chủ RHEL của bạn bằng winscp hoặc phương pháp mà bạn ưa thích.

2. Tải Hình Ảnh Vào Máy Chủ RHEL Không Kết Nối

Sau khi file tar đã có trong môi trường của bạn, thực hiện lệnh sau:

Copy
docker load -i n8n.tar

Xác minh hình ảnh đã được tải thành công:

Copy
docker images | grep n8n

Bạn sẽ thấy n8nio/n8n:latest trong danh sách hình ảnh.

3. Thiết Lập Thư Mục Lưu Trữ Bền Vững

n8n cần có lưu trữ bền vững cho quy trình làm việc, thông tin xác thực và thực thi. Tạo các thư mục:

Copy
mkdir -p /opt/n8n/.n8n
chown -R 1000:1000 /opt/n8n/.n8n

4. Chạy n8n Với Biến Môi Trường

Sử dụng lệnh sau để chạy n8n:

Copy
docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v /opt/n8n/.n8n:/home/node/.n8n \
  -e N8N_HOST=yourserver.domain.com \
  -e N8N_PORT=5678 \
  -e N8N_PROTOCOL=http \
  -e GENERIC_TIMEZONE=Asia/Kolkata \
  n8nio/n8n:latest

5. Cấu Hình Reverse Proxy (Tùy Chọn Nhưng Được Khuyến Nghị)

Đối với thiết lập sản xuất, bạn có thể muốn chạy n8n phía sau Nginx hoặc Apache để sử dụng SSL và truy cập theo tên miền. Ví dụ cấu hình Nginx:

Copy
server {
    listen 80;
    server_name n8n.example.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_http_version 1.1;
    }
}

Reload lại Nginx:

Copy
systemctl reload nginx

6. Thiết Lập Xác Thực

Mặc định, n8n không yêu cầu đăng nhập trừ khi được cấu hình. Để bảo mật hơn, hãy thiết lập xác thực:

Copy
docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v /opt/n8n/.n8n:/home/node/.n8n \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=admin \
  -e N8N_BASIC_AUTH_PASSWORD=StrongPassword123 \
  n8nio/n8n:latest

7. Dịch Vụ Systemd (Tùy Chọn)

Nếu bạn không muốn chạy n8n thủ công mỗi lần, hãy tạo một đơn vị systemd:

Copy
# /etc/systemd/system/n8n.service
[Unit]
Description=n8n Automation
After=docker.service
Requires=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a n8n
ExecStop=/usr/bin/docker stop -t 2 n8n

[Install]
WantedBy=multi-user.target

Kích hoạt và khởi động dịch vụ:

Copy
systemctl enable n8n
systemctl start n8n

8. Kiểm Tra Cuối Cùng

Truy cập vào địa chỉ sau:
http://<yourserver>:5678
Bạn sẽ thấy trình chỉnh sửa quy trình n8n đang hoạt động an toàn trong môi trường RHEL không kết nối của bạn.

Những Cải Tiến Trong Tương Lai

  • Cấu hình PostgreSQL bên ngoài cho sản xuất thay vì SQLite
  • Kích hoạt TLS/SSL với Certbot hoặc chứng chỉ tùy chỉnh
  • Thiết lập HA (High Availability) với nhiều phiên bản n8n
  • Thêm giám sát với Prometheus + Grafana

Việc cài đặt n8n trong môi trường RHEL không kết nối yêu cầu một số công việc chuẩn bị, nhưng khi bạn đã xử lý việc truyền tải hình ảnh và cấu hình, nó sẽ hoạt động mượt mà. Với thiết lập này, bạn có thể xây dựng các quy trình làm việc mạnh mẽ một cách an toàn, ngay cả trong những mạng lưới bị hạn chế nhất.

FAQ

1. n8n có an toàn không?
Có, n8n có thể được cấu hình để sử dụng xác thực và chạy phía sau proxy ngược, giúp bảo mật hơn.

2. Tôi có thể sử dụng n8n cho những dự án nào?
Bạn có thể sử dụng n8n cho nhiều loại dự án tự động hóa khác nhau, từ việc tích hợp API, gửi email tự động, đến xây dựng quy trình làm việc phức tạp hơn.

3. Làm thế nào để nâng cấp n8n?
Để nâng cấp n8n, bạn cần tải hình ảnh mới và lặp lại quy trình tải và khởi động lại n8n bằng hình ảnh mới.

4. Có cần kiến thức lập trình để sử dụng n8n không?
Không, n8n được thiết kế để dễ sử dụng với giao diện kéo và thả, nhưng kiến thức lập trình sẽ giúp bạn tận dụng tối đa sức mạnh của nó.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào