چگونه مي توان محيط 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 به شما ارائه مي شود.

محيط 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 ارزان – 

تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در رویا بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.