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

theanh

Administrator
Nhân viên
Jupyter là một ứng dụng web miễn phí và mã nguồn mở dành cho khoa học dữ liệu và điện toán tương tác.

Jupyter hỗ trợ mọi ngôn ngữ lập trình và cung cấp nhiều phần mềm, chẳng hạn như JupyetrLab, cung cấp môi trường chỉnh sửa nhiều sổ ghi chép có nhiều tính năng và có nhiều tab, Notebook là công cụ biên soạn sổ ghi chép nhẹ và đơn giản, Qtconsole và nhiều phần mềm khác nữa.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn từng bước hướng dẫn cách cài đặt JupyterLab trên máy chủ Rocky Linux 9. Bạn sẽ cài đặt JupyterLab, bật xác thực JupyterLab, sau đó thiết lập Nginx làm proxy ngược.

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

Để hoàn thành hướng dẫn này, hãy đảm bảo bạn có những điều sau:
  • Máy chủ Rocky Linux 9.
  • Người dùng không phải root có quyền sudo.
  • SELinux có trạng thái cho phép.

Cài đặt Dependencies​

Trước khi cài đặt JupyterLab, bạn phải cài đặt các dependency trên máy chủ Rocky Linux của mình. Điều này bao gồm Pip, Node.js và các công cụ phát triển. Ngoài ra, bạn cũng sẽ cài đặt Nginx cho proxy ngược.

Để bắt đầu, hãy chạy lệnh bên dưới để cài đặt các gói phát triển vào hệ thống của bạn.
Mã:
sudo dnf -y groupinstall development
Sau đó, cài đặt Pip, Node.js và Nginx bằng cách sử dụng lệnh sau lệnh.
Mã:
sudo dnf install -y python3-pip nodejs nginx
Sau khi cài đặt hoàn tất, hãy chuyển sang bước tiếp theo.


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

Thiết lập Môi trường ảo Python​

Trong ví dụ này, bạn sẽ cài đặt và chạy JupyterLab với người dùng bình thường. Vì vậy, hãy đảm bảo rằng bạn đã chuẩn bị người dùng của mình với các đặc quyền sudo.

Đăng nhập vào người dùng của bạn bằng lệnh bên dưới.
Mã:
su - user
Tạo một thư mục ~/project mới và di chuyển vào đó. sau đó, tạo một môi trường ảo Python mới venv.
Mã:
mkdir -p ~/project; cd ~/project
python3 -m venv venv
Sau khi môi trường ảo venv được tạo, bạn có thể kích hoạt nó bằng lệnh bên dưới.
Mã:
source venv/bin/activate
Tại đây, dấu nhắc của bạn sẽ trở thành (venv) alice@hostname, điều đó có nghĩa là môi trường ảo Python của bạn đang hoạt động.


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

Cài đặt JupyterLab​

Bây giờ bạn đã tạo được môi trường ảo Python, bạn đã sẵn sàng cài đặt JupyterLab. Trong phần này, bạn sẽ cài đặt JupyterLab, tạo cấu hình JupyterLab, thiết lập xác thực mật khẩu và sau đó xác minh JupyterLab.

Để cài đặt JupyterLab, hãy chạy lệnh pip3 bên dưới.
Mã:
pip3 install jupyter
Sau khi quá trình cài đặt bắt đầu, bạn sẽ nhận được kết quả như sau:


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


Sau khi cài đặt hoàn tất, hãy chạy lệnh bên dưới để định vị tệp nhị phân Jupyter và kiểm tra phiên bản JupterLab.
Mã:
which jupyter
jupyter --version
Bạn sẽ nhận được tệp nhị phân JupyterLab nằm trong môi trường ảo Python của mình. Và phiên bản JupyterLab là 4.1.1.


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


Tiếp theo, chạy lệnh Jupyter bên dưới để tạo cấu hình máy chủ Jupyter và thiết lập xác thực mật khẩu.
Mã:
jupyter server --generate-config
jupyter server password
Khi được yêu cầu nhập mật khẩu, hãy nhập mật khẩu mới của bạn và lặp lại.


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


Tiếp theo, chạy lệnh bên dưới để tạo JupyterLab và nhập y khi được yêu cầu ghi đè. Sau đó, hãy xác minh cấu hình JupyterLab của bạn.
Mã:
jupyter lab --generate-config
jupyter lab --show-config
Như bạn có thể thấy bên dưới, xác thực mật khẩu đã được băm và vị trí đường dẫn của JupyterLab của bạn sẽ có thể truy cập được.


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


Bây giờ bạn có thể thực hiện lệnh bên dưới để mở cổng 8888 cho JupyterLab. Sau đó, khởi động JupyterLab của bạn trên IP cục bộ 192.168.5.120 và Đảm bảo thay đổi địa chỉ IP.
Mã:
sudo firewall-cmd --add-port=8888/tcp
jupyter lab --ip 192.168.5.120
Sau khi khởi động, bạn sẽ nhận được kết quả tương tự như sau:


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


Bây giờ hãy mở trình duyệt web của bạn và truy cập địa chỉ IP cục bộ của bạn với cổng 8888, http://192.168.5.120:8888/. Bạn sẽ được nhắc đến trang đăng nhập JupyterLab.

Nhập mật khẩu của bạn và nhấn Đăng nhập.


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


Nếu thành công, bạn sẽ nhận được bảng điều khiển JupyterLab 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


Cuối cùng, quay lại terminal và nhấn Ctrl+c để kết thúc tiến trình JupyterLab. Ở bước tiếp theo, bạn sẽ thiết lập JupyterLab như một dịch vụ systemd.

Chạy JupyterLab như một dịch vụ Systemd​

Sau khi cài đặt JupyterLab, giờ đây bạn sẽ tạo một dịch vụ systemd mới cho JupyterLab. Điều này cho phép bạn quản lý JupyterLab dễ dàng thông qua tiện ích hệ thống. Ngoài ra, bạn có thể khởi động JupyterLab khi khởi động bằng cách bật dịch vụ.

Bây giờ hãy chạy lệnh nano editor sau để tạo dịch vụ jupyterlab mới /etc/systemd/system/jupyterlab.service.
Mã:
sudo nano /etc/systemd/system/jupyterlab.service
Thêm cấu hình bên dưới vào tệp và đảm bảo thay đổi thông tin người dùng bằng người dùng của bạn. Điều này bao gồm đường dẫn nhị phân của chương trình Jupyter và cấu hình đã tạo.
Mã:
[Unit]
Description=JupyterLab Service

[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/alice/project/venv/bin/jupyter lab --config=/home/alice/.jupyter/jupyter_lab_config.py
User=alice
Group=alice
WorkingDirectory=/home/alice/project
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
Khi bạn hoàn tất, hãy lưu và thoát tệp.

Tiếp theo, chạy lệnh bên dưới để tải lại trình quản lý systemd và áp dụng các thay đổi systemd.
Mã:
sudo systemctl daemon-reload
Sau đó, hãy khởi động và kích hoạt dịch vụ jupyterlab bằng lệnh sau lệnh.
Mã:
sudo systemctl start jupyterlab
sudo systemctl enable jupyterlab

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


Sau khi khởi động, hãy chạy lệnh bên dưới để xác minh jupyterlab của bạn dịch vụ.
Mã:
sudo systemctl status jupyterlab
Nếu dịch vụ jupyterlab đang chạy, bạn sẽ nhận được kết quả như sau:


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

Cấu hình Truy cập từ xa cho JupyterLab​

Để chạy JupyterLab đằng sau proxy ngược, bạn phải bật quyền truy cập từ xa trên cài đặt JupyterLab của mình. Bạn cần sửa đổi tập lệnh cấu hình JupyterLab mặc định và bật quyền truy cập từ xa từ đó.

Chạy lệnh nano editor sau để mở tập lệnh cấu hình JupyterLab ~/.jupyter/jupyter_lab_config.py.
Mã:
nano ~/.jupyter/jupyter_lab_config.py
Bỏ chú thích tham sốc.ServerApp.allow_remote_access và đổi giá trị thành True. Thao tác này sẽ cho phép truy cập từ xa cho proxy ngược trong quá trình cài đặt JupyterLab.
Mã:
c.ServerApp.allow_remote_access = True
Khi hoàn tất, hãy lưu và thoát tệp.

Tiếp theo, chạy lệnh bên dưới để khởi động lại dịch vụ JupyterLab và xác minh mã thông báo đã tạo. mã thông báo này sẽ được sử dụng để đăng nhập vào JupyterLab dưới proxy ngược.
Mã:
sudo systemctl restart jupyterlab
sudo systemctl status jupyterlab
Ở cuối nhật ký dịch vụ, bạn có thể thấy mã thông báo JupyterLab.


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

Thiết lập Nginx Reverse Proxy​

Bây giờ bạn đã cho phép truy cập từ xa trong JupyterLab, bạn đã sẵn sàng cấu hình Nginx làm proxy ngược cho cài đặt JupyterLab của mình.

Trước tiên, hãy chạy lệnh nano editor sau để tạo cấu hình Nginx mới /etc/nginx/conf.d/jupyterlab.conf.
Mã:
sudo nano /etc/nginx/conf.d/jupyterlab.conf
Chèn cấu hình bên dưới và đảm bảo thay đổi tên miền bằng cài đặt JupyterLab cục bộ của bạn.
Mã:
server {
listen 80;
server_name jupyterlab.howtoforge.local;

access_log /var/log/nginx/howtoforge.local.access.log;
error_log /var/log/nginx/howtoforge.local.error.log;

location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
}
Lưu và thoát khỏi tệp khi hoàn tất.

Bây giờ hãy chạy lệnh bên dưới để xác minh cú pháp Nginx của bạn. Nếu thành công, bạn sẽ nhận được kết quả 'syntax is ok - test is successful'.
Mã:
sudo nginx -t
Tiếp theo, khởi động và kích hoạt dịch vụ Nginx bằng lệnh sau.
Mã:
sudo systemctl start nginx
sudo systemctl enable nginx

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


Khi Nginx khởi động, hãy xác minh dịch vụ bằng lệnh bên dưới. Đảm bảo dịch vụ Nginx đang chạy.
Mã:
sudo systemctl status nginx

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


Cuối cùng, hãy chạy lệnh bên dưới để mở cổng HTTP trên hệ thống của bạn và cho phép lưu lượng truy cập vào JupyterLab của bạn cài đặt.
Mã:
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
Với điều này, cài đặt JupyterLab của bạn sẽ có thể truy cập được thông qua proxy ngược.

Đăng nhập vào JupyterLab​

Mở một tab mới trên trình duyệt web của bạn và truy cập tên miền cài đặt JupyterLab của bạn, chẳng hạn như http://jupyterlab.howtoforge.local/. Nếu cài đặt thành công, bạn sẽ được nhắc nhở với trang đăng nhập JupyterLab.

cuộn xuống trang cuối cùng và dán mã thông báo JupyterLab của bạn. sau đó, nhập mật khẩu mới cho cài đặt JupyterLab của bạn, nhấn Đăng nhập và thiết lập mật khẩu mới.


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


nếu bạn có mã thông báo chính xác, bạn sẽ nhận được bảng điều khiển JupyterLab và mật khẩu của bạn cũng sẽ được thay đổi.


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

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công JupyterLab trên Rocky Linux 9. Bạn đã cài đặt JupyterLab, cấu hình xác thực JupyetrLab và cũng cấu hình Nginx làm proxy ngược cho cài đặt JupyterLab của bạn.
 
Back
Bên trên