Cách cài đặt Jupyter Notebook trên Ubuntu 22.04

theanh

Administrator
Nhân viên
Jupyter Notebook là một nền tảng điện toán tương tác miễn phí, mã nguồn mở và dựa trên web cho phép người dùng chỉnh sửa và chạy tài liệu thông qua trình duyệt web. Nó dựa trên Python và cho phép bạn tạo và chia sẻ tài liệu có chứa mã trực tiếp, phương trình và hình ảnh trực quan trên web. Mục đích của nó là phát triển phần mềm mã nguồn mở, tiêu chuẩn mở và dịch vụ cho điện toán tương tác trên nhiều ngôn ngữ lập trình.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt phần mềm Jupyter Notebook trên Ubuntu 22.04.

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

  • Một máy chủ chạy Ubuntu 22.04.
  • Một tên miền hợp lệ được trỏ đến bằng IP máy chủ của bạn.
  • Một mật khẩu gốc được cấu hình trên máy chủ.

Bắt đầu​

Trước tiên, bạn nên cập nhật và nâng cấp tất cả các gói phần mềm của mình lên phiên bản mới nhất. Bạn có thể cập nhật tất cả các gói bằng cách chạy lệnh sau:
Mã:
apt update -y
apt upgrade -y
Sau khi tất cả các gói được cập nhật, bạn có thể tiến hành bước tiếp theo:

Cài đặt Python​

Trước tiên, bạn sẽ cần cài đặt Python và các gói phụ thuộc khác trên máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:
Mã:
apt-get install python3 python3-pip -y
Sau khi tất cả các gói được cài đặt, bạn có thể xác minh phiên bản Python bằng lệnh sau:
Mã:
python3 --version
Bạn sẽ thấy thông báo sau đầu ra:
Mã:
Python 3.10.6
Tiếp theo, cập nhật PIP lên phiên bản mới nhất bằng lệnh sau:
Mã:
pip3 install --upgrade pip
Tiếp theo, xác minh phiên bản PIP bằng lệnh sau lệnh:
Mã:
pip3 --version
Bạn sẽ thấy kết quả sau:
Mã:
pip 22.2.2 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10)
Tiếp theo, cài đặt gói môi trường ảo Python với lệnh sau lệnh:
Mã:
pip3 install virtualenv
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt Jupyter Notebook​

Trước tiên, hãy tạo một thư mục để lưu Notebook của bạn bằng lệnh sau:
Mã:
mkdir ~/project
Tiếp theo, điều hướng đến thư mục dự án và tạo một môi trường ảo Python bằng lệnh sau lệnh:
Mã:
cd ~/project
virtualenv notebookenv
Tiếp theo, kích hoạt môi trường ảo bằng lệnh sau:
Mã:
source notebookenv/bin/activate
Tiếp theo, cài đặt Jupyter Notebook với lệnh sau lệnh:
Mã:
pip install jupyter
Sau khi Jupyter Notebook được cài đặt, hãy chạy Jupyter Notebook bằng lệnh sau:
Mã:
jupyter notebook --allow-root
Nếu mọi thứ ổn, bạn sẽ nhận được thông báo sau đầu ra:
Mã:
[I 14:23:26.729 NotebookApp] Serving notebooks from local directory: /root/project
[I 14:23:26.729 NotebookApp] Jupyter Notebook 6.4.12 is running at:
[I 14:23:26.729 NotebookApp] http://localhost:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625
[I 14:23:26.729 NotebookApp] or http://127.0.0.1:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625
[I 14:23:26.730 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 14:23:26.734 NotebookApp] No web browser found: could not locate runnable browser.
[C 14:23:26.734 NotebookApp] To access the notebook, open this file in a browser: file:///root/.local/share/jupyter/runtime/nbserver-3214-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625 or http://127.0.0.1:8888/?token=5dbdfdbf2e2dc72ccdaaa7361db8c55877ecfbc45676e625
Nhấn CTRL+C để dừng Jupyter Notebook.

Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tạo mật khẩu Jupyter Notebook​

Bạn nên bảo mật Jupyter Notebook bằng mật khẩu. Trước tiên, tạo tệp cấu hình Jupyter Notebook bằng lệnh sau:
Mã:
jupyter notebook --generate-config
Bạn sẽ thấy đầu ra sau:
Mã:
Writing default config to: /root/.jupyter/jupyter_notebook_config.py
Tiếp theo, đặt mật khẩu Jupyter Notebook bằng lệnh sau lệnh:
Mã:
jupyter notebook password
Đặt mật khẩu như hiển thị bên dưới:
Mã:
Enter password:
Verify password:
[NotebookPasswordApp] Wrote hashed password to /root/.jupyter/jupyter_notebook_config.json
Tiếp theo, hủy kích hoạt khỏi môi trường ảo Python bằng lệnh sau lệnh:
Mã:
deactivate
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tạo tệp dịch vụ Systemd cho Jupyter Notebook​

Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd để quản lý Jupyter Notebook. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/systemd/system/jupyter.service
Thêm các mã sau:
Mã:
[Unit]
Description=Jupyter Notebook
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/root/project/notebookenv/bin/jupyter-notebook --config=/root/.jupyter/jupyter_notebook_config.py --allow-root
User=root
Group=root
WorkingDirectory=/root/project/notebookenv
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau lệnh:
Mã:
systemctl daemon-reload
Tiếp theo, khởi động Jupyter Notebook và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start jupyter
systemctl enable jupyter
Để xác minh trạng thái của Jupyter Notebook, hãy chạy lệnh sau lệnh:
Mã:
systemctl status jupyter
Bạn sẽ thấy kết quả sau:
Mã:
? jupyter.service - Jupyter Notebook Loaded: loaded (/etc/systemd/system/jupyter.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2022-10-11 14:27:01 UTC; 4s ago Main PID: 3649 (jupyter-noteboo) Tasks: 1 (limit: 2242) Memory: 53.4M CPU: 980ms CGroup: /system.slice/jupyter.service ??3649 /root/project/notebookenv/bin/python /root/project/notebookenv/bin/jupyter-notebook --config=/root/.jupyter/jupyter_noteb>
Oct 11 14:27:01 ubuntu2204 systemd[1]: Started Jupyter Notebook.
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.288 NotebookApp] Serving notebooks from local directory: /root/project/noteboo>
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.289 NotebookApp] Jupyter Notebook 6.4.12 is running at:
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.289 NotebookApp] http://localhost:8888/
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [I 14:27:02.290 NotebookApp] Use Control-C to stop this server and shut down all kernels (>
Oct 11 14:27:02 ubuntu2204 jupyter-notebook[3649]: [W 14:27:02.293 NotebookApp] No web browser found: could not locate runnable browser.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx làm Proxy ngược cho Jupyter Notebook​

Lúc này, Jupyter Notebook đã được khởi động và chạy trên cổng 8888. Bây giờ, bạn sẽ cần cấu hình Nginx làm proxy ngược để truy cập Jupyter Notebook qua cổng 80.

Trước tiên, hãy cài đặt gói máy chủ web Nginx bằng lệnh sau:
Mã:
apt-get install nginx -y
Sau khi Nginx được cài đặt, hãy tạo tệp cấu hình máy chủ ảo Nginx với nội dung sau lệnh:
Mã:
nano /etc/nginx/conf.d/jupyter.conf
Thêm các cấu hình sau:
Mã:
upstream notebook {
server 127.0.0.1:8888;
}
server {
listen 80;
server_name jupyter.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / { proxy_pass http://localhost: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à đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng cách sử dụng lệnh sau lệnh:
Mã:
nginx -t
Bạn sẽ thấy đầu ra sau:
Mã:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng thay đổi:
Mã:
systemctl restart nginx
Bạn cũng có thể kiểm tra trạng thái Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-10-11 14:28:53 UTC; 54s ago Docs: man:nginx(8) Process: 4193 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 4194 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 4195 (nginx) Tasks: 2 (limit: 2242) Memory: 2.6M CPU: 40ms CGroup: /system.slice/nginx.service ??4195 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;" ??4196 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
Oct 11 14:28:53 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 11 14:28:53 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.
Tiếp theo, thêm người dùng gốc vào nhóm www-data bằng lệnh sau:
Mã:
usermod -g www-data root
Tiếp theo, chỉnh sửa tệp cấu hình Jupyter Notebook và bật điều khiển từ xa truy cập:
Mã:
nano /root/.jupyter/jupyter_notebook_config.py
Thay đổi dòng sau:
Mã:
c.NotebookApp.allow_remote_access = True
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Jupyter Notebook để áp dụng thay đổi:
Mã:
systemctl restart jupyter
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Jupyter Notebook​

Bây giờ, hãy mở trình duyệt web của bạn và truy cập Jupyter Notebook bằng URL Bạn sẽ được yêu cầu cung cấp mật khẩu Jupyter Notebook của mình trên màn hình sau:



Cung cấp mật khẩu của bạn và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển Jupyter Notebook trên màn hình sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt thành công Jupyter Notebook với Nginx làm proxy ngược trên Ubuntu 22.04. Bây giờ bạn có thể tạo, chia sẻ và chạy Notebook của mình qua internet. 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