JupyterLab  یک رابط کاربری کاملاً غنی از ویژگی های مختلف است که انجام وظایف را به خصوص در زمینه علوم داده ها و هوش مصنوعی برای کاربران آسان می کند. محیط های JupyterLab طراحی مجدد Jupyter Notebook را با محوریت بهره وری ارائه می دهد. این برنامه ابزاری مانند یک نمایشگر HTML داخلی و بیننده CSV را به همراه ویژگی هایی ارائه می دهد که چندین ویژگی مجزا از Jupyter Notebook را در همان صفحه جمع می کند.

در این آموزش ، JupyterLab  را روی سرور مجازی Ubuntu 18.04 خود نصب و تنظیم می کنید. همچنین می توانید سرور خود را پیکربندی کنید تا بتواند از راه دور با هر نامی از مرورگر وب به طور ایمن و با استفاده از یک نام دامنه به نمونه  JupyterLab متصل شود.

پیش نیازها

برای تکمیل این آموزش ، به موارد زیر نیاز دارید:

  • سرور مجازی Ubuntu 18.04 با یک حساب کاربری غیر ریشه با امتیازات sudo با استفاده از راهنمای ستاپ اولیه سرور.
  • نصب توزیع پایتون Anaconda روی سرور مجازیتان. می توانید از آموزش نحوه نصب  توزیع پایتون Anaconda  در اوبونتو 18.04 استفاده کنید.
  • یک نام دامنه یا زیر دامنه ثبت شده که در آن به ویرایش رکورد DNS دسترسی دارید. در سراسر این آموزش از your_domain استفاده خواهد کرد. می توانید دامنه ها را در Namecheap خریداری کنید ، یک دامنه رایگان در Freenom  دریافت کنید ، یا یک دامنه جدید را با هر نوع ثبت دلخواه خود ثبت کنید.
  • سوابق DNS زیر برای دامنه شما تنظیم شده باشد:

o یک رکورد A با your_domain که آدرس IP عمومی سرور مجازی شما را نشان می دهد.

O رکورد A با www.your_domain که آدرس IP عمومی سرور مجازی شما را نشان می دهد. مقاله نحوه ایجاد ، ویرایش و حذف اسناد  رکوردهای DNS  می تواند در تنظیم این رکوردها به شما کمک کند.

مرحله 1 – تنظیم گذرواژه

در این مرحله یک رمز عبور را روی نصب JupyterLab خود تنظیم خواهید کرد. داشتن گذرواژه مهم است زیرا نمونه شما در دسترس عموم خواهد بود.

ابتدا مطمئن شوید که محیط Anaconda شما فعال شده است. طبق آموزش پیش نیاز محیط، base نامیده می شود.

برای فعال کردن محیط ، از دستور زیر استفاده کنید:

  • $ conda activate base

اعلان شما در ترمینال تغییر خواهد کرد تا پایه محیط پیش فرض Anaconda  را منعکس کند:

(base) sammy@your_server:~$

کلیه دستورات آینده در این آموزش در محیط baseاجرا می شود.

با فعال شدن محیط Anaconda ، می توانید یک رمز ورود برای JupyterLab را در سرور مجازی خود تنظیم کنید.

ابتدا ، اجازه دهید یک فایلbase پیکربندی برای  Jupyter ایجاد کنیم:

  • $ jupyter notebook –generate-config

خروجی زیر را دریافت خواهید کرد:

OutputWriting default config to: /home/sammy/.jupyter/jupyter_notebook_config.py

هم  JupyterLab و Jupyter Notebookیک فایل پیکربندی مشترک را دارند.

  • $ jupyter notebook password

اکنون ، از دستور زیر برای تنظیم گذرواژه برای دسترسی به نمونه  JupyterLab خود از راه دور استفاده کنید:

OutputEnter password:Verify password:[NotebookPasswordApp] Wrote hashed password to /home/sammy/.jupyter/jupyter_notebook_config.json

Jupyter  به شما اعلانی نشان می خواهد که رمز عبور مورد نظر خود را ارائه دهید:

Jupyter  رمز عبور را با فرمت hashed در /home/sammy/.jupyter/jupyter_notebook_config.json ذخیره می کند. در آینده به این مقدار نیاز خواهید داشت.

در آخر ، برای مشاهده گذرواژه hashed ، از دستور cat در فایل تولید شده توسط دستور قبلی استفاده کنید:

  • $ cat /home/sammy/.jupyter/jupyter_notebook_config.json

خروجی مشابه با موارد زیر را دریافت خواهید کرد:

/home/sammy/.jupyter/jupyter_notebook_config.json

{

“NotebookApp”: {

“password”: “sha1:your_hashed_password”

}

}

مقدار را در کلید رمز عبور JSON کپی کنید و به طور موقت آن را ذخیره کنید.

برای مثال JupyterLab یک گذرواژه تنظیم کرده اید. در مرحله بعد یک گواهی Let’s Encrypt برای سرور مجازی خود ایجاد خواهید کرد.

مرحله 2 – پیکربندی Let’s Encrypt

در این مرحله ، یک گواهی Let’s Encrypt برای دامنه خود ایجاد خواهید کرد. با دسترسی به محیط  JupyterLab از مرورگر ، داده های شما را ایمن می کند.

ابتدا Certbot را روی سرور مجازی خود نصب خواهید کرد. با اضافه کردن مخزن آن به منابع apt شروع کنید:

  • $ sudo add-apt-repository ppa:certbot/certbot

پس از اجرای دستور ، از شما خواسته می شود تا ENTER را فشار دهید تا PPA را اضافه کنید:

OutputThis is the PPA for packages prepared by Debian Let’s Encrypt Team and backported for Ubuntu. Note: Packages are only provided for currently supported Ubuntu releases. More info: https://launchpad.net/~certbot/+archive/ubuntu/certbotPress [ENTER] to continue or Ctrl-c to cancel adding it.

برای ادامه افزودن PPA ، ENTER  را فشار دهید.

پس از پایان اجرای فرمان ، منابع را با استفاده از دستور apt update ریفرش کنید:

  • $ sudo apt update

سپس ، Certbot  را نصب خواهید کرد:

  • $ sudo apt install certbot

قبل از شروع به کار Certbot برای تولید گواهینامه ها برای مثال شما ، اجازه دسترسی به پورت: 80 و پورت: 443 سرور مجازی خود را می دهید تا Certbot بتواند از این پورت ها برای تأیید نام دامنه شما استفاده کند. پورت: 80 برای درخواست های http به سرور مجازی بررسی می شود در حالی که پورت 443 برای درخواست های https استفاده می شود. Certbot ابتدا یک درخواست http را ایجاد می کند و پس از دریافت گواهینامه ها برای سرور مجازی شما ، یک درخواست https را ایجاد می کند که از طریق پورت از طریق پورت: 443 برای گوش دادن به پورت 80 پروکسی می شود. با این کار نصب گواه

ینامه ها با موفقیت تأیید خواهد شد.

ابتدا اجازه دسترسی به پورت 80: را بدهید:

  • $ sudo ufw allow 80

خروجی زیر را دریافت خواهید کرد:

OutputRule addedRule added (v6)

سپس ، اجازه دسترسی به پورت: 443:

  • $ sudo ufw allow 443

Output

Rule added

Rule added (v6)

در آخر ، Certbot  را اجرا کنید تا با استفاده از دستور زیر ، گواهینامه هایی را برای مثال خود تولید کنید:

  • $ sudo certbot certonly –standalone

پرچم standalone  ، certbot  را برای اجرای یک سرور مجازی موقت برای مدت زمان بررسی تأیید می کند.

ایمیل شما را درخواست می کند:

OutputSaving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneEnter email address (used for urgent renewal and security notices) (Enter ‘c’ tocancel): your_email

یک ایمیل فعال را وارد کنید و ENTER را فشار دهید.

در مرحله بعد ، از شما خواسته خواهد شد تا شرایط سرویس های Certbot و Let’s Encrypt t را مرور و تایید کنید. شرایط را مطالعه کنید اگر قبول کردید ، A را تایپ کنید و ENTER را فشار دهید:

Output- – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -Please read the Terms of Service athttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You mustagree in order to register with the ACME server athttps://acme-v02.api.letsencrypt.org/directory- – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -(A)gree/(C)ancel: A

اکنون از شما خواسته می شود که ایمیل خود را با بنیاد الکترونیکی Frontier به اشتراک بگذارید. پاسخ خود را تایپ کنید و ENTER  را فشار دهید:

Output- – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -Would you be willing to share your email address with the Electronic FrontierFoundation, a founding partner of the Let’s Encrypt project and the non-profitorganization that develops Certbot? We’d like to send you email about our workencrypting the web, EFF news, campaigns, and ways to support digital freedom.- – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – -(Y)es/(N)o: Y/N

در آخر ، از شما خواسته می شود نام دامنه خود را وارد کنید. نام دامنه خود را بدون هیچ گونه مشخصات پروتکل وارد کنید:

OutputPlease enter in your domain name(s) (comma and/or space separated)  (Enter ‘c’to cancel): your_domainObtaining a new certificatePerforming the following challenges:http-01 challenge for your_domainWaiting for verification…Cleaning up challenges IMPORTANT NOTES: – Congratulations! Your certificate and chain have been saved at:   /etc/letsencrypt/live/your_domain/fullchain.pem   Your key file has been saved at:   /etc/letsencrypt/live/your_domain/privkey.pem   Your cert will expire on 2020-09-28. To obtain a new or tweaked   version of this certificate in the future, simply run certbot   again. To non-interactively renew *all* of your certificates, run   “certbot renew” – Your account credentials have been saved in your Certbot   configuration directory at /etc/letsencrypt. You should make a   secure backup of this folder now. This configuration directory will   also contain certificates and private keys obtained by Certbot so   making regular backups of this folder is ideal. – If you like Certbot, please consider supporting our work by:    Donating to ISRG / Let’s Encrypt:   https://letsencrypt.org/donate   Donating to EFF:                    https://eff.org/donate-le

Certbot تأیید دامنه را انجام خواهد داد و گواهی و کلید برای دامنه شما را ایجاد میکند و آنها در / etc / letsencrypt / live / your_domain ذخیره میکند.

اکنون که گواهی Let’s Encrypt خود را تنظیم کرده اید ، فایل پیکربندی JupyterLab خود را به روز خواهید کرد.

مرحله 3 – پیکربندی  JupyterLab

در این مرحله ، پیکربندی JupyterLab را ویرایش می کنید تا مطمئن شوید که از گواهی Let’s Encrypt که در مرحله 2 ایجاد کرده اید استفاده می کند. همچنین می توانید با استفاده از رمز عبور تنظیم شده در مرحله 1 ، آن را در دسترس قرار دهید.

ابتدا باید پیکربندی JupyterLab را در /home/sammy/.jupyter/jupyter_notebook_config.py ویرایش کنید:

  • $ nano /home/sammy/.jupyter/jupyter_notebook_config.py

اکنون به خطی که مقدار c.NotebookApp.certfile را تعریف می کند بروید و به شرح زیر آن را به روز کنید:

/home/sammy/.jupyter/jupyter_notebook_config.py

## The full path to an SSL/TLS certificate file.

c.NotebookApp.certfile = ‘/etc/letsencrypt/live/your_domain/fullchain.pem’

سپس ، متغیر c.NotebookApp.keyfile را پیدا کنید و آن را مطابق زیر تغییر دهید:

/home/sammy/.jupyter/jupyter_notebook_config.py

## The full path to a private key file for usage with SSL/TLS.

c.NotebookApp.keyfile = ‘/etc/letsencrypt/live/your_domain/privkey.pem’

c.NotebookApp.certfile و c.NotebookApp.keyfile به گواهی SSLاشاره می کنند که وقتی سعی می کنید از راه دور با استفاده از پروتکل https به سرور مجازی خود دسترسی پیدا کنید ، ارائه می شود.

در مرحله بعد ، به خط تعریف متغیر c.NotebookApp.ip بروید و به شرح زیر به روز کنید:

/home/sammy/.jupyter/jupyter_notebook_config.py

## The IP address the notebook server will listen on.

c.NotebookApp.ip = ‘*’

c.NotebookApp.ip  IP  هایی را تعریف می کند که می توانند به سرور مجازی شما دسترسی پیدا کنند. آن را روی * wildcard قرار داده اید تا از هر رایانه ای که برای دسترسی به JupyterLab لازم دارید دسترسی داشته باشید.

سپس ، پیکربندی c.NotebookApp.open_browser را پیدا کنید و به شرح زیر آن را به روز کنید:

/home/sammy/.jupyter/jupyter_notebook_config.py

## Whether to open in a browser after starting. The specific browser used is

#  platform dependent and determined by the python standard library `webbrowser`

#  module, unless it is overridden using the –browser (NotebookApp.browser)

#  configuration option.

c.NotebookApp.open_browser = False

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

در مرحله بعد ، به متغیر c.NotebookApp.password بروید و آن را به شرح زیر تغییر دهید:

/home/sammy/.jupyter/jupyter_notebook_config.py

## Hashed password to use for web authentication.

#

#  To generate, type in a python/IPython shell:

#

#    from notebook.auth import passwd; passwd()

#

#  The string should be of the form type:salt:hashed-password.

c.NotebookApp.password = ‘your_hashed_password’

JupyterLab از این پیکربندی پسورد رمزگذاری شده برای بررسی رمز عبور وارد شده جهت دسترسی به مرورگر شما استفاده می کند.

در آخر ، بیشتر فایل را بررسی کنید و ورودی c.NotebookApp.port را به روز کنید:

/home/sammy/.jupyter/jupyter_notebook_config.py

## The port the notebook server will listen on.

c.NotebookApp.port = 9000

c.NotebookApp.port  برای دسترسی به زمان اجرای JupyterLab یک پورت ثابت تعیین می کند. به این ترتیب ، می توانید فقط از یک فایروال ufw به یک پورت دسترسی داشته باشید.

پس از اتمام کار ، فایل را ذخیره کنید و خارج شوید.

سرانجام ، اجازه عبور در پورت 9000 را بدهید:

  • $ sudo ufw allow 9000

خروجی زیر را دریافت خواهید کرد:

OutputRule addedRule added (v6)

اکنون که پیکربندی خود را تنظیم کرده اید ، JupyterLab را اجرا خواهید کرد.

مرحله 4 – اجرای  JupyterLab

در این مرحله ، یک مثال آزمایشی از نمونه JupyterLab را انجام می دهید.

ابتدا دایرکتوری فعلی خود را به دیرکتوری هوم کاربر تغییر دهید:

  • $ cd ~

اکنون مجوزهای دسترسی فایل های گواهینامه را اصلاح کنید تا JupyterLab بتواند به آنها دسترسی پیدا کند. مجوزهای پوشه / etc / letsencrypt را به موارد زیر تغییر دهید:

  • $ sudo chmod 750 -R /etc/letsencrypt
  • $ sudo chown sammy:sammy -R /etc/letsencrypt

سپس ، به مثال JupyterLab خود مراجعه کنید تا از دستور زیر استفاده کنید:

  • jupyter lab

این دستور چندین پارامتر پیکربندی را می پذیرد. با این حال ، از آنجا که ما قبلاً این تغییرات را در فایل پیکربندی ایجاد کرده ایم ، نیازی به ارائه صریح آنها در اینجا نداریم. شما می توانید آنها را به عنوان آرگومان هایی برای این دستور برای غلبه بر مقادیر موجود در فایل پیکربندی ارائه دهید.

اکنون می توانید به https: // your_domain: 9000 بروید تا صفحه ورود به سیستم JupyterLab را دریافت کنید.

اگر با گذرواژه ای که برای مرحله دوم 2 برای JupyterLab تنظیم کرده اید وارد شوید ، رابط JupyterLab به شما ارائه می شود.

محیط JupyterLab در اوبونتو 18.04

در آخر ، دوبار CTRL + C را فشار دهید تا سرور مجازی JupyterLab متوقف شود.

در مرحله بعد ، یک سرویس سیستمی را تنظیم می کنید تا سرور مجازی JupyterLab بطور مداوم در پس زمینه اجرا شود.

مرحله ششم – تنظیم یک سرویس سیستمی

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

در ابتدا ، باید با استفاده از دستور زیر ، یک فایل .service ایجاد کنید:

  • $ sudo nano /etc/systemd/system/jupyterlab.service

محتوای زیر را به فایل /etc/systemd/system/jupyterlab.service اضافه کنید:

/etc/systemd/system/jupyterlab.service

[Unit]

Description=Jupyter Lab Server

[Service]

User=sammy

Group=sammy

Type=simple

WorkingDirectory=/home/sammy/

ExecStart=/home/sammy/anaconda3/bin/jupyter-lab –config=/home/sammy/.jupyter/jupyter_notebook_config.py

StandardOutput=null

Restart=always

RestartSec=10

[Install]

WantedBy=multi-user.target

پس از انجام کار ویرایشگر را ذخیره کرده و از آن خارج شوید.

فایل سرویس به صورت خودکار خود را در سیستم به عنوان یک Daemon ثبت می کند. اما به طور پیش فرض اجرا نمی شود.

برای شروع سرویس از دستور systemctl استفاده کنید:

  • $ sudo systemctl start jupyterlab

این کار سرور مجازی JupyterLab را در پس زمینه شروع می کند. می توانید با استفاده از دستور زیر سرور مجازی را بررسی کنید:

  • $ sudo systemctl status jupyterlab

خروجی زیر را دریافت خواهید کرد:

Output● jupyterlab.service – Jupyter Lab Server   Loaded: loaded (/etc/systemd/system/jupyterlab.service; disabled; vendor preset: enabled)   Active: active (running) since Sun 2020-04-26 20:58:29 UTC; 5s ago Main PID: 5654 (jupyter-lab)    Tasks: 1 (limit: 1152)   CGroup: /system.slice/jupyterlab.service           └─5654 /home/sammy/anaconda3/bin/python3.7 /home/sammy/anaconda3/bin/jupyter-lab –config=/home/

Q را فشار دهید تا از خروجی وضعیت سرویس خارج شوید.

اکنون می توانید به https: // your_domain: 9000 در هر مرورگر مورد نظر خود بروید ، رمز عبوری را که در مرحله 2 تنظیم کرده اید تهیه کنید و به محیط JupyterLab که روی سرور مجازی خود کار می کند دسترسی پیدا کنید.

مرحله 7 – پیکربندی تجدید گواهی Let’s Encrypt

در این مرحله آخر ، گواهینامه های SSL خود را که توسط Let’s Encrypt تهیه شده است پیکربندی می کنید تا هر 90 روز یکبار به طور خودکار تمدید شود و سپس سرور مجازی را مجدداً ریستارت کنید تا گواهی های جدید لود شود.

در حالی که Certbot از تجدید گواهینامه های نصب شما مراقبت می کند ، به طور خودکار سرور مجازی مجدداً راه اندازی نمی شود. برای پیکربندی سرور مجازی برای راه اندازی مجدد با گواهینامه های جدید ، باید یک پیکربندی جدید برای تنظیمات Certbot برای سرور مجازی خود تهیه کنید.

باید فایل /etc/letsencrypt/renewal/your_domain.conf را ویرایش کرده و یک فایل تازه را به انتهای فایل پیکربندی اضافه کنید.

ابتدا از دستور زیر برای باز کردن فایل /etc/letsencrypt/renewal/your_domain.conf در ویرایشگر استفاده کنید:

  • $ sudo nano /etc/letsencrypt/renewal/your_domain.conf

سپس در انتهای این فایل موارد زیر را اضافه کنید

/etc/letsencrypt/renewal/your_domain.conf

renew_hook = systemctl reload jupyterlab

فایل را ذخیره کنید و از آن خارج شوید.

در آخر ، دور جدیدی از روند تجدید را اجرا کنید تا صحت اعتبار فایل پیکربندی شما تایید شود:

  • $ sudo certbot renew –dry-run

اگر این دستور بدون خطا اجرا شود ، تجدید Certbot شما با موفقیت تنظیم شده است و هنگامی که گواهی نزدیک به تاریخ انقضا است ، سرور مجازی خود را به طور خودکار تمدید و ریستارت می کنید.

نتیجه

در این مقاله ، شما یک محیط JupyterLab را بر روی سرور مجازی خود تنظیم کرده و آن را از راه دور در دسترس قرار داده اید. اکنون می توانید از هر مرورگری به پروژه های یادگیری ماشین یا علوم داده خود دسترسی داشته باشید و مطمئن باشید که تمام تبادلات با رمزگذاری SSL در محل اتفاق می افتد. در کنار آن ، محیط شما دارای تمام مزایای سرور مجازیهای مبتنی بر ابر میباشد.

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در اوبونتو 20.04

نحوه دانلود فایل ها با cURL

نحوه نصب و ایمن سازی Redis در Centos7

چگونه می توان محیط JupyterLab را در اوبونتو 18.04 تنظیم کرد

نحوه نصب Webmin در Ubuntu 20.04

نحوه بازنویسی آدرس های اینترنتی با mod_rewrite برای Apache در اوبونتو 20.04

نحوه مدیریت چندین سرور با دستورات Ad Hoc Ansible

چگونه می توان REST API را با Prisma و PostgreSQL ساخت

نحوه میزبانی وب سایت با استفاده از Cloudflare و Nginx در اوبونتو 18.04

نحوه استفاده از Traefik به عنوان پروکسی معکوس برای کانتینرهای Docker در Ubuntu 18.04

خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکاخرید سرور مجازی ارزان هلندvpsخرید vps هلندخرید سرور مجازی آمریکاخرید vps فرانسهتست vpsسرور مجازی تستسرور مجازی ویندوزارزانترین vpsخرید وی پی اسvps ارزان –