نصب Jupyter Notebook روی سرور GPU و سرور اوبونتو 24.04

نصب Jupyter Notebook روی سرور GPU

آنچه در مقاله می‌خوانید

در این آموزش نحوه نصب و راه‌اندازی Jupyter Notebook را بر روی سرور اوبونتو 24.04 و سرور GPU بررسی خواهیم کرد. در این آموزش این سرویس را پشت یک Reverse Proxy با استفاده از Nginx قرار داده و امنیت آن را با گواهینامه SSL تضمین می‌کنیم.

اجرای ژوپیتر نوت‌بوک روی سرورهای ریموت به دانشمندان علم داده و متخصصین یادگیری ماشین اجازه می‌دهد تا از قدرت سخت‌افزاری سرور استفاده کرده، پروژه‌های خود را به صورت ایمن مدیریت کنند و کدهای تعاملی خود را با دیگران به اشتراک بگذارند.

پیش‌نیازهای نصب Jupyter Notebook

قبل از شروع، اطمینان حاصل کنید که موارد زیر را در اختیار دارید:

  • یک سرور اختصاصی یا سرور مجازی KVM با سیستم‌عامل اوبونتو 24.04.
  • دسترسی Root یا کاربر با قابلیت Sudo (توصیه می‌شود برای امنیت بیشتر از کاربر روت مستقیم استفاده نکنید).
  • نصب بودن Python 3.7 یا نسخه‌های بالاتر.
  • آشنایی مقدماتی با پروتکل SSH و مدیریت خط فرمان لینوکس.
  • یک دامنه  که رکورد A آن به آدرس IP سرور شما اشاره کند.

مرحله 1: به‌روزرسانی سرور

ابتدا لیست پکیج‌ها را به‌روز کرده و نرم‌افزارهای فعلی را به آخرین نسخه ارتقا دهید:

sudo apt update && sudo apt upgrade -y

توضیح: دستور update لیست مخازن را تازه می‌کند و upgrade نسخه‌های جدیدتر برنامه‌های نصب شده را جایگزین می‌کند. سوئیچ -y تایید خودکار برای نصب است.

مرحله 2: نصب پایتون و ابزارهای مورد نیاز

ژوپیتر بر پایه پایتون است. اگر پایتون 3 نصب نیست، آن را به همراه مدیریت پکیج pip و ابزارهای توسعه نصب کنید:

sudo apt install python3 python3-pip python3-dev build-essential -y

برای اطمینان از نصب صحیح، نسخه‌ها را چک کنید:

python3 --version
pip3 --version

مرحله 3: ایجاد محیط مجازی

برای جلوگیری از تداخل کتابخانه‌های پروژه‌های مختلف و سالم نگه داشتن سیستم‌عامل، همیشه از یک محیط ایزوله استفاده کنید.

نصب ماژول venv:

sudo apt install python3-venv -y

ایجاد محیط مجازی در مسیر دلخواه (مثلا jupyter_env):

python3 -m venv jupyter_env

فعال‌سازی محیط:

source jupyter_env/bin/activate

پس از فعال‌سازی، نام محیط را در ابتدای خط فرمان مشاهده خواهید کرد.

مرحله 4: نصب Jupyter Notebook

اکنون که در محیط مجازی هستید، ژوپیتر را نصب کنید:

pip install jupyter

پس از اتمام، با دستور زیر از نصب موفقیت‌آمیز مطمئن شوید:

jupyter --version

مرحله 5: پیکربندی برای دسترسی از راه دور

به‌صورت پیش‌فرض، ژوپیتر فقط اجازه دسترسی از localhost (داخل خود سرور) را می‌دهد. برای دسترسی از سیستم شخصی خودتان، باید تنظیمات را تغییر دهید.

تولید فایل پیکربندی:

jupyter notebook --generate-config

این فایل در مسیر ~/.jupyter/jupyter_notebook_config.py ساخته می‌شود.

تنظیم رمز عبور:

jupyter notebook password

یک رمز عبور وارد کنید. هش این رمز برای امنیت در فایل .json ذخیره می‌شود.

ویرایش فایل تنظیمات:

nano ~/.jupyter/jupyter_notebook_config.py

خطوط زیر را پیدا کرده، از حالت کامنت خارج کنید (حذف #) و مقادیر را مطابق زیر تغییر دهید:

c.ServerApp.ip = '0.0.0.0'
c.ServerApp.port = 8888

نکته: مقدار 0.0.0.0 به ژوپیتر اجازه می‌دهد به تمامی اینترفیس‌های شبکه گوش دهد.

مرحله 6: تنظیم فایروال

اگر از فایروال UFW استفاده می‌کنید، باید پورت‌های مورد نیاز را باز کنید:

sudo ufw allow 8888/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

مرحله 7: اجرای اولیه و تست

 

برای اجرای سرور ژوپیتر دستور زیر را بزنید:

jupyter notebook

اکنون می‌توانید از طریق مرورگر با آدرس http://your_server_ip:8888 وارد شوید.

مرحله 8: دسترسی امن از طریق SSH Tunnel (اختیاری اما توصیه شده)

اگر نمی‌خواهید پورت 8888 را مستقیما روی اینترنت باز بگذارید، از تانل SSH استفاده کنید. در سیستم محلی خود (کامپیوتر خودتان) دستور زیر را بزنید:

ssh -L 8888:localhost:8888 username@your_server_ip

حالا در مرورگر خود آدرس http://localhost:8888 را باز کنید. ترافیک شما به صورت امن به سرور منتقل می‌شود.

مرحله 9: تعریف ژوپیتر به عنوان یک سرویس Systemd

برای اینکه ژوپیتر با ریبوت شدن سرور به طور خودکار اجرا شود و در پس‌زمینه بماند.

ایجاد فایل سرویس:

sudo nano /etc/systemd/system/jupyter.service

محتوای زیر را در آن قرار دهید (بجای username نام کاربری خود را بنویسید):

[Unit]
Description=Jupyter Notebook
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/username/jupyter_env/bin/jupyter-notebook --config=/home/username/.jupyter/jupyter_notebook_config.py
User=username
Group=username
WorkingDirectory=/home/username
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

 

فعال‌سازی سرویس:

sudo systemctl daemon-reload
sudo systemctl enable jupyter
sudo systemctl start jupyter

برای دیدن وضعیت و پیدا کردن Token ورود، از دستور systemctl status jupyter استفاده کنید.

 

مرحله 10: نصب Nginx و راه‌اندازی SSL

استفاده از Nginx به عنوان Reverse Proxy باعث می‌شود بتوانید از دامنه استفاده کنید و امنیت را با HTTPS بالا ببرید.

نصب Nginx:

sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

پیکربندی Nginx برای ژوپیتر:
یک فایل جدید بسازید: sudo nano /etc/nginx/sites-available/jupyter و تنظیمات زیر را در آن قرار دهید (بجای your_domain_or_IP دامنه خود را بنویسید)

server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://localhost:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# پشتیبانی از WebSocket که برای اجرای کدهای ژوپیتر حیاتی است
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

فعال‌سازی تنظیمات:

sudo ln -s /etc/nginx/sites-available/jupyter /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

دریافت SSL رایگان از Let’s Encrypt:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain_or_IP

پس از اتمام مراحل Certbot، سایت شما با https:// در دسترس خواهد بود.

مرحله 11: بهینه‌سازی برای پروژه‌های یادگیری ماشین

برای استفاده حرفه‌ای، کتابخانه‌های زیر را در محیط مجازی نصب کنید:

کتابخانه‌های پایه:

pip install numpy pandas scikit-learn matplotlib seaborn tensorflow torch

پشتیبانی از GPU

اگر سرور شما دارای کارت گرافیک انویدیا است، نسخه‌های tensorflow-gpu را نصب کرده و درایورهای CUDA را پیکربندی کنید.
افزونه‌های ژوپیتر برای قابلیت‌هایی مثل فهرست مطالب و Code Folding:

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
jupyter nbextension enable codefolding/main

نکته: همیشه پس از اتمام کار، از طریق رابط وب از Jupyter خارج شوید و در صورت عدم استفاده طولانی‌مدت، سرویس را متوقف کنید یا دسترسی پورت‌ها را در فایروال محدود نمایید.

جمع‌بندی

در این مقاله، ما یک محیط کامل برای کار با داده‌ها بر روی اوبونتو 24.04 ایجاد کردیم. اکنون شما یک سرور Jupyter Notebook دارید که توسط وب سرور Nginx مدیریت می‌شود و با گواهی SSL محافظت شده است. این زیرساخت قدرتمند به شما اجازه می‌دهد از هر کجای دنیا به پروژه‌های سنگین یادگیری ماشین خود دسترسی داشته باشید و از منابع سرور به بهترین شکل استفاده کنید.

امتیاز شما به این مطلب
دیدن نظرات
small

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1 × 1 =

عضویت در خبرنامه مبین هاست
مطالب کدام دسته‌بندی‌ها برای شما جذاب‌تر است؟

آنچه در مقاله می‌خوانید

مقالات مرتبط
خدمات مبین هاست