چگونه می توان محیط JupyterLab را در اوبونتو 18.04 تنظیم کرد
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 به شما ارائه می شود.
در آخر ، دوبار 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
نحوه نصب و ایمن سازی 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 ارزان –
https://vpsgol.net/product/vps-germany/
https://vpsgol.net/product/vps-usa/
https://vpsgol.net/product/vps-france/
https://vpsgol.net/product/vps-canada/
https://vpsgol.net/product/vps-poland/
https://vpsgol.net/product/vps-netherlands/
https://vpsgol.net/product/vps-england/