Перейти к содержимому

Как запустить jupiter notebook anaconda в ubuntu

  • автор:

Установка дистрибутива Anaconda Python в Ubuntu 20.04 [Краткое руководство]

Установка дистрибутива Anaconda Python в Ubuntu 20.04 [Краткое руководство]

Anaconda — диспетчер пакетов с открытым исходным кодом, диспетчер среды и дистрибутив языков программирования Python и R.

В этом обучающем модуле мы установим версию Anaconda для Python 3 на сервере Ubuntu 20.04. Более детальный вариант настоящего руководства с подробным разъяснениями каждого шага можно найти в документе «Установка дистрибутива Anaconda Python на Ubuntu 20.04».

Шаг 1 — Получение последней версии Anaconda

Используйте браузер, чтобы найти последнюю версию Anaconda для Python 3 на странице загрузки Anaconda:

https://www.anaconda.com/distribution/ 

На момент написания последняя версия 2020.02, но если доступна более поздняя стабильная версия, следует использовать ее.

Шаг 2 — Загрузка скрипта Anaconda Bash

Перейдите в каталог /tmp на сервере Ubuntu 20.04. как пользователь с привилегиями sudo без прав root.

Используйте curl для загрузки ссылки, скопированной с сайта Anaconda: Чтобы ускорить работу, мы будем использовать для вывода файл anaconda.sh .

    curl https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh —output anaconda.sh

Шаг 3 — Проверка целостности данных установщика

Теперь мы можем проверить целостность данных установщика, используя проверка криптографической хэш-суммы через контрольную сумму SHA-256 и скрипт, который мы назвали anaconda.sh .

Output
2b9f088b2022edb474915d9f69a803d6449d5fdb4c303041f60ac4aefcc208bb anaconda.sh

Необходимо проверить вывод на соответствие хэшу Anaconda с Python 3 на странице 64-битной версии Linux для соответствующей версии Anaconda.

Шаг 4 — Запуск скрипта Anaconda

Откроется экран просмотра лицензионного соглашения, где нужно будет нажимать ENTER , пока вы не дочитаете соглашение до конца.

Output
Welcome to Anaconda3 2020.02 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue >>>

Прочитав соглашение введите yes для завершения установки, если вы согласны с условиями лицензии.

Шаг 5 — Завершение процедуры установки

Выберите расположение для установки или нажмите ENTER , чтобы принять расположение по умолчанию.

Output
Anaconda3 will now be installed into this location: /home/sammy/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below [/home/sammy/anaconda3] >>>

После этого процедура установки продолжится. Процедура установки может занять некоторое время.

Шаг 6 — Выбор опций

После завершения установки появится следующий экран:

Output
. installation finished. Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no] [no] >>>

Введите yes , чтобы выполнить инициализацию Anaconda3. Вы увидите информацию об изменениях в различных каталогах, а также благодарность за установку Anaconda.

Шаг 7 — Активация установки

Теперь вы можете активировать установку, используя файл ~/.bashrc :

После этого вы перейдете в базовую среду программирования по умолчанию.

Шаг 8 — Тестирование установки

Используйте команду conda , чтобы протестировать установку и активацию:

На экран будут выведены все пакеты. доступные через установку Anaconda:

Шаг 9 — Настройка сред Anaconda

Лучше всего создавать новую среду для каждого из ваших проектов. Для создания среды Python 3 с именем my_env нужно использовать следующий синтаксис команды:

Нажмите y для подтверждения установки.

Для активации вашей новой среды введите следующую команду:

После активации среды префикс комадной строки изменится, показывая, что вы находитесь не в базовой среде, а в только что созданной.

Когда вы будете готовы отключить свою среду Anaconda, введите:

Другие обучающие руководства

Здесь представлены ссылки на более подробные обучающие руководства, связанные с настоящим руководством:

  • Установка дистрибутива Anaconda Python в Ubuntu 20.04
  • Как настроить Jupyter Notebook для Python 3
  • Как установить пакет pandas и работать со структурами данных в Python 3

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Установка Jupyter Notebook для Python 3 в Ubuntu 20.04 и подключение по SSH-туннелю

Jupyter Notebook – это открытое веб-приложение, которое предоставляет командную оболочку для интерактивных вычислений, визуализации и т.п. Этот инструмент совместим с несколькими языками, включая Python, Julia, R, Haskell и Ruby. Он часто используется для работы с данными, статистического моделирования и машинного обучения.

Notebook в контексте Jupyter – это документы, которые могут содержать как компьютерный код, так и элементы форматированного текста (абзацы, уравнения, рисунки, ссылки и тд.), что помогает описывать и распространять исследования. Поэтому документы отлично подходят для презентации данных и могут быть использованы в качестве обучающего инструмента.

В этом мануале вы узнаете, как установить и настроить Jupyter Notebook на сервере Ubuntu 20.04, а также научитесь работать с документами через туннель. В результате вы сможете запустить код Python 3 с помощью Jupyter Notebook на удаленном сервере.

Требования

Для работы вам понадобится свежий сервер Ubuntu 20.04 с пользователем sudo и настроенным брандмауэром. Начальная настройка сервера подробно описана здесь.

1: Установка Python

Для начала нужно установить зависимости виртуальной среды Python из репозиториев Ubuntu. Ubuntu 20.04 поставляется с предустановленным Python 3. Немого позже мы установим другие пакеты с помощью менеджера пакетов pip.

Обновите индекс пакетов:

sudo apt update

Затем установите pip и заголовки Python (они необходимы некоторым зависимостям Jupyter):

sudo apt install python3-pip python3-dev

Теперь можно настроить виртуальную среду Python, в которую мы затем установим приложение Jupyter.

2: Создание виртуальной среды для Jupyter

Виртуальная среда обеспечивает изолированное пространство для проектов Python, благодаря чему все проекты могут иметь индивидуальный набор зависимостей и использовать разные версии одной программы, при этом никак не влияя на работу системы.

Для начала нужно установить команду virtualenv. Это можно сделать с помощью pip. Обновите pip и установите пакет:

sudo -H pip3 install —upgrade pip
sudo -H pip3 install virtualenv

Флаг -H устанавливает в переменной среды home домашний каталог целевого пользователя.

После установки virtualenv можно начать работу над виртуальной средой. Создайте отдельный каталог для файлов проекта и перейдите в него. В этом мануале мы условно назовем его my_project_dir, но вам лучше выбрать какое-то описательное название.

mkdir ~/my_project_dir
cd ~/my_project_dir

В этом каталоге создайте виртуальную среду Python. Для примера она называется здесь my_project_env.

Эта команда создаст каталог my_project_env в вашем каталоге my_project_dir. Внутри будет установлена локальная версия Python и pip. Их можно использовать для установки и настройки изолированной среды Python для Jupyter.

Перед установкой Jupyter нужно активировать виртуальную среду. Вы можете сделать это с помощью команды:

Ваша командная строка должна измениться – она укажет имя виртуальной среды Python, в которой вы сейчас работаете. Она будет выглядеть примерно так:

Теперь вы готовы установить Jupyter в эту среду.

3: Установка Jupyter

Активировав среду, вы можете установить Jupyter с помощью локальной версии pip.

pip install jupyter

Примечание: В виртуальной среде (когда командная строка начинается с (my_project_env)) используйте команду pip вместо pip3, даже если работаете с Python 3. Копия инструмента в виртуальной среде всегда называется pip, независимо от версии Python.

Итак, вы успешно установили все программное обеспечение, необходимое для запуска Jupyter. Теперь можно запустить его.

4: Запуск Jupyter Notebook

Теперь у вас есть все необходимое для запуска программы Jupyter Notebook. Чтобы запустить ее, введите:

В терминале появится лог действий Jupyter Notebook. Документы Jupyter запускаются по определенному порту. Первый запущенный документ обычно использует порт 8888. Чтобы уточнить номер порта, на котором работает Jupyter Notebook, обратитесь к выводу команды, использованной для его запуска:

[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp] Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Если вы используете Jupyter Notebook на локальном компьютере (не на удаленном сервере), вы можете просто перейти к отображаемому URL-адресу и подключиться к Jupyter Notebook. Если вы используете Jupyter Notebook на удаленном сервере, вам необходимо подключиться у через SSH-туннелирование, как описано в следующем разделе.

На этом этапе вы можете оставить SSH-соединение открытым и Jupyter Notebook включенным, либо же выйти из приложения и перезапустить его после настройки SSH-туннелирования. Проще, конечно, остановить процесс Jupyter Notebook. Мы запустим его снова позже, когда SSH-туннель будет готов. Чтобы остановить процесс Jupyter Notebook, нажмите CTRL+C, введите Y и нажмите Enter для подтверждения. На экране появится следующее:

[C 21:28:28.512 NotebookApp] Shutdown confirmed
[I 21:28:28.512 NotebookApp] Shutting down 0 kernels

5: Подключение к серверу по SSH-туннелю

В этом разделе мы расскажем, как подключиться к веб-интерфейсу Jupyter Notebook с помощью SSH-туннелирования. Поскольку каждый документ Jupyter Notebook будет работать по отдельному порту (например: 8888, 8889 и т. д.), туннели SSH позволят безопасно подключаться к нужному порту.

В следующих двух подразделах рассказано, как создать SSH-туннель на Mac или Linux и в Windows. Пожалуйста, выполните подраздел, соответствующий системе вашего локального компьютера.

SSH-туннелирование на Mac или Linux

Если вы используете Mac или Linux, процесс создания туннеля SSH будет аналогичен процедуре входа по SSH на удаленный сервер. Только при этом в команде ssh будут дополнительные параметры.

Туннелирование SSH можно выполнить с помощью следующей команды SSH в новом окне терминала локальной машины:

ssh -L 8888:localhost:8888 your_server_username@your_server_ip

Команда ssh открывает соединение SSH, а флаг -L указывает, что данный порт локального (клиентского) хоста нужно перенаправить на заданный хост и порт на удаленной стороне (сервере). Это означает, что все, что работает по порту 8888 на сервере (в команде этот порт указывается после localhost), будет отображаться по порту 8888 на вашем локальном компьютере (этот порт идет перед localhost).

Если порт 8888 уже используется другим процессом, измените его на любой другой. server_username – это имя вашего пользователя (например, 8host) на сервере, а your_server_ip – это IP-адрес сервера. Допустим, если имя пользователя – 8host, а адрес – 203.0.113.0, то команда будет выглядеть так:

ssh -L 8888:localhost:8888 8host@203.0.113.0

Если после выполнения команды ssh –L система не выдала никаких ошибок, вы можете перейти в виртуальную среду разработки и запустить Jupyter Notebook:

В выводе вы получите URL. На локальном компьютере откройте в браузере веб-интерфейс Jupyter Notebook по URL-адресу, который начинается с http://localhost:8888. Убедитесь, что номер токена включен, или введите токен при запросе по адресу http://localhost:8888.

SSH-туннелирование в Windows через Putty

В системе Windows SSH-туннель можно создать с помощью инструмента Putty.

Сначала введите URL или IP-адрес сервера в поле Host Name (or IP address).

Затем нажмите кнопку SSH в нижней части левой панели, чтобы развернуть меню, и нажмите Tunnels. Введите номер локального порта, который будет использоваться для доступа к Jupyter на локальном компьютере. Выберите порт 8000 и выше, чтобы не занимать порты, используемые другими сервисами, и установите назначение localhost:8888 (где 8888 – это номер порта, на котором работает Jupyter Notebook).

Теперь нажмите кнопку Add, после чего порты должны появиться в списке Forwarded ports.

Затем нажмите кнопку Open, чтобы подключиться к серверу через SSH и туннелировать нужные порты. Перейдите по адресу http://localhost:8000 (укажите порт, который вы выбрали) в браузере, чтобы подключиться к Jupyter Notebook на сервере. Убедитесь, что номер токена включен, или введите токен при запросе по адресу http://localhost:8888.

6: Работа с Jupyter Notebook

В этом разделе мы рассмотрим основы работы с Jupyter Notebook. Если в данный момент экземпляр Jupyter Notebook остановлен, запустите его с помощью команды:

Теперь вы должны быть подключены к нему с помощью веб-браузера.

Jupyter Notebook очень мощный и имеет много функций. В этом разделе мы рассмотрим основные функции. Jupyter Notebook показывает все файлы и папки в каталоге, из которого он запускается, поэтому при работе над проектом очень важно запускать его из каталога проекта.

Чтобы создать новый документ, выберите New → Python 3 в правом верхнем выпадающем меню.

Это откроет новый документ. Теперь вы можете запустить код Python в ячейке или изменить ячейку на markdown. Например, чтобы первая ячейка принимала Markdown, кликните Cell → Cell Type → Markdown в верхней панели навигации. Теперь можно делать записи, используя Markdown, и даже включать уравнения, написанные в LaTeX, помещая их между символами $$. Например, в ячейку с поддержкой Markdown введите следующее:

# First Equation
Let us now implement the following equation:
$$ y = x^2$$
where $x = 2$

Чтобы превратить Markdown в форматированный текст, нажмите сочетание клавиш Ctrl + Enter.

Вы можете использовать ячейки markdown, чтобы делать заметки и документировать свой код. Давайте выполним это простое уравнение и выведем результат на экран. Кликните на верхнюю ячейку, затем нажмите Alt + Enter, чтобы добавить ячейку под ней. Введите следующий код в новой ячейке.

x = 2
y = x**2
print(y)

Чтобы запустить код, нажмите Ctrl + Enter. На экране появится результат.

Теперь вы можете импортировать модули и использовать документы, как и в любой другой среде разработки Python!

Заключение

Теперь вы можете писать воспроизводимый код Python и создавать заметки в Markdown с помощью Jupyter Notebook. Быстрый обзор Jupyter Notebook можно получить прямо из интерфейса, для этого выберите Help → User Interface Tour в верхнем меню навигации.

Установка Anaconda в Ubuntu

Anaconda — это очень популярный дистрибутив Python, который содержит удобный пакетный менеджер Conda, несколько предустановленных версий Python (2.7, 3.4 и 3.7), а также среду разработки IDLE Spider и множество библиотек, которые очень просто установить. Ещё здесь есть библиотеки для обработки Big Data, прогнозной аналитики и научных вычислений. Также можно всем управлять через графическую утилиту Anaconda Navigator.

В этой статье мы рассмотрим, как скачать и установить Anaconda Python Ubuntu 18.04 с официального сайта программы, а также как подготовить эту платформу к работе.

Table of Contents

  • Установка Anacoda в Ubuntu
    • 1. Скачивание и установка программы
    • 2. Обновление Anaconda
    • 3. Окружения Conda
    • 4. Установка пакетов Conda

    Установка Anacoda в Ubuntu

    1. Скачивание и установка программы

    Сначала нужно скачать установщик платформы с официального сайта. На момент написания статьи самая свежая версия программы — 2019.03. Нажмите кнопку Download, а затем выберите операционную систему Linux:

    Вы можете скачать программу прямо в браузере или скопировать ссылку для загрузки через wget. Например, для текущей версии команда будет выглядеть так:

    Поскольку это достаточно большой файл, после завершения загрузки желательно проверить его по контрольной суме. Найти контрольную сумму загруженного файла можно командой:

    Затем её нужно сравнить с сумой, указанной на этой странице для вашей версии программы. Если полученные значения совпадают, значит всё правильно.

    Далее запустите полученный скрипт:

    На первом шаге установки нажмите Enter, затем наберите yes, чтобы принять лицензионное соглашение:

    Далее нужно выбрать папку, куда будет установлена программа:

    Затем пойдёт установка Anaconda 3 Ubuntu. Процесс установки займёт некоторое время.

    В конце установки программа предложит изменить ~/.bashrc таким образом, чтобы Сonda запускалась автоматически при запуске терминала. Если вы не сделали это во время установки, то это можно выполнить потом командой:

    conda init bash

    Затем выполните следующую команду, чтобы система перечитала настройки:

    Теперь вы можете проверить, всё ли работает, выполнив такую команду:

    На этом установка Anaconda Ubuntu завершена.

    2. Обновление Anaconda

    Обновление Anaconda тоже достаточно просто выполнить. Сначала нужно обновить инструмент conda. Для этого выполните:

    conda update conda

    На вопросы программы отвечайте y. Когда обновление завершится, можно обновить саму Anaconda 3:

    conda update anaconda

    Аналогично предыдущему пункту, нажмите y, чтобы продолжить обновление.

    3. Окружения Conda

    Как я уже сказал, Сonda — это пакетный менеджер, а также это менеджер окружений. Вы можете создать несколько окружений с разными версиями Python, а также с разными установленными в них библиотеками. Посмотреть список доступных окружений можно командой:

    conda info —envs

    Для активации окружения используется команда activate. Например, сделаем активным окружение base:

    conda activate base

    Также вы можете создать новое окружение с другой версией Python. Например, сделаем окружение с Python 3.5:

    conda create —name ptn35env python=3.5

    Программа создаст окружение и сообщит, какие пакеты ей надо установить, соглашаемся на установку:

    Затем активируем нужное окружение:

    conda activate ptn35env

    Чтобы деактивировать текущее окружение, используйте команду deactivate:

    Чтобы удалить окружение ptn35env, нужно использовать не команду uninstall, а remove:

    conda remove —name ptn35env -all

    4. Установка пакетов Conda

    Посмотреть список установленных пакетов можно командой list:

    Чтобы найти нужный пакет, используйте search, например, ищем пакетный менеджер Python — pip:

    comda search pip

    А для установки пакета используйте install. Например, установим tensorflow:

    conda install tensorflow

    Удалить пакет можно командой remove:

    conda remove tensorflow

    Удаление Anaconda

    Чтобы удалить Anaconda из своей системы, достаточно выполнить следующие команды:

    rm -rf ~/anaconda3

    Откройте файл ~/.bashrc и удалите оттуда строки, добавленные Anaconda, обычно, находятся между тегами conda initialize:

    Затем удалите скрытые папки с дополнительными файлами и конфигурацией платформы:

    rm -rf ~/.condarc ~/.conda ~/.continuum

    Выводы

    Теперь установка Anaconda в Ubuntu завершена. Вы можете начать пользоваться пакетным менеджером Conda, использовать виртуальные окружения в Python и легко устанавливать пакеты. Мы разобрали только основы использования conda, чтобы изучить программу лучше, читайте официальную документацию.

    Настройка среды JupyterLab в Ubuntu 18.04

    JupyterLab – это многофункциональный пользовательский интерфейс, который упрощает выполнение задач, особенно в областях науки о данных и искусственного интеллекта. Среда JupyterLab – это редизайн Jupyter Notebook, ориентированный на производительность. Он предлагает такие инструменты, как встроенное средство просмотра HTML и CSV, а также функции, объединяющие несколько отдельных функций Jupyter Notebooks на одном экране.

    В этом мануале вы узнаете, как установить и настроить JupyterLab на сервере Ubuntu 18.04. Мы также покажем, как настроить сервер так, чтобы он мог подключаться к JupyterLab удаленно, по домену с помощью любого веб-браузера.

    Требования

    • Сервер Ubuntu 18.04 с пользователем sudo, настроенный согласно этому мануалу.
    • Установка Python Anaconda (читайте мануал Установка Anaconda в Ubuntu 18.04).
    • Зарегистрированный домен или субдомен, чьи DNS-записи вы можете редактировать. В этом руководстве мы будем использовать условное обозначение your_domain.
    • DNS-записи A для your_domain и www.your_domain, направленные на внешний IP-адрес вашего сервера.

    1: Установка пароля

    Давайте установим пароль для среды JupyterLab. Это важно, потому что экземпляр JupyterLab будет доступен в сети.

    Для начала убедитесь, что ваша среда Anaconda активирована. Согласно руководству по установке Anaconda среда называется base.

    Чтобы активировать среду, используйте следующую команду:

    conda activate base

    Командная строка изменится, чтобы показать, что вы находитесь в среде Anaconda:

    Все дальнейшие команды в этом мануале будут выполняться в среде base.

    Активировав среду Anaconda, вы можете установить пароль для JupyterLab.

    Давайте сначала сгенерируем конфигурационный файл для Jupyter:

    jupyter notebook —generate-config

    Вы получите такой вывод:

    Writing default config to: /home/8host/.jupyter/jupyter_notebook_config.py

    JupyterLab и Jupyter Notebook используют один и тот же конфигурационный файл.

    Теперь используйте следующую команду, чтобы установить пароль для удаленного доступа к экземпляру JupyterLab:

    jupyter notebook password

    Jupyter предложит выбрать и ввести пароль:

    Enter password:
    Verify password:
    [NotebookPasswordApp] Wrote hashed password to /home/8host/.jupyter/jupyter_notebook_config.json

    Jupyter сохранит пароль в хешированном формате в файле /home/8host/.jupyter/jupyter_notebook_config.json. Это хешированное значение понадобится вам в будущем.

    Затем используйте команду cat, чтобы просмотреть хешированный пароль в только что созданном файле:

    Вы получите следующий результат:

    «NotebookApp»: «password»: «sha1:your_hashed_password»
    >
    >

    Скопируйте значение ключа password и временно сохраните его.

    Итак, вы защитили среду JupyterLab паролем. На следующем этапе мы создадим сертификат Let’s Encrypt для сервера.

    2: Настройка Let’s Encrypt

    Давайте создадим сертификат Let’s Encrypt для своего домена. Это защитит данные при доступе к среде JupyterLab из браузера.

    Сначала установите клиент Certbot. Добавьте его репозиторий в исходники apt:

    sudo add-apt-repository ppa:certbot/certbot

    При выполнении команды вам будет предложено нажать Enter, чтобы завершить добавление PPA:

    This 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/certbot
    Press [ENTER] to continue or Ctrl-c to cancel adding it.

    Нажмите Enter, чтобы продолжить.

    После выполнения команды обновите исходники apt:

    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

    Вы получите следующий вывод:

    Rule added
    Rule added (v6)

    Затем разрешите доступ к порту 443:

    sudo ufw allow 443
    Rule added
    Rule added (v6)

    Наконец, запустите Certbot, чтобы сгенерировать сертификаты для вашего экземпляра. Для этого используйте следующую команду:

    sudo certbot certonly —standalone

    Флаг standalone запускает сервер на время процесса проверки.

    Вам будет предложено ввести адрес электронной почты:

    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    Plugins selected: Authenticator standalone, Installer None
    Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
    cancel): your_email

    Введите действительный адрес электронной почты и нажмите Enter.

    Затем Certbot попросит вас прочитать и принять условия использования Let’s Encrypt. Просмотрите условия, введите A, если вы принимаете их, и нажмите Enter:

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

    Теперь Certbot предложит вам поделиться своей электронной почтой с Electronic Frontier Foundation. Введите свой ответ и нажмите Enter:

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

    В конце вам нужно ввести свой домен. Укажите домен без протоколов:

    Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’
    to cancel): your_domain
    Obtaining a new certificate
    Performing the following challenges:
    http-01 challenge for your_domain
    Waiting 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. Сейчас вам также понадобится пароль, который вы установили в разделе 1.

    Откройте конфигурационный файл JupyterLab, /home/8host/.jupyter/jupyter_notebook_config.py:

    Теперь найдите строку c.NotebookApp.certfile и обновите ее следующим образом:

    .
    ## The full path to an SSL/TLS certificate file.
    c.NotebookApp.certfile = ‘/etc/letsencrypt/live/your_domain/fullchain.pem’
    .

    Затем найдите переменную c.NotebookApp.keyfile и отредактируйте ее так:

    .
    ## 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 и обновите ее следующим образом:

    .
    ## The IP address the notebook server will listen on.
    c.NotebookApp.ip = ‘*’
    .

    c.NotebookApp.ip определяет IP-адреса, которые могут получить доступ к JupyterLab на вашем сервере. Установите здесь подстановочный знак *, чтобы разрешить доступ к среде с любого компьютера.

    Затем найдите конфигурацию c.NotebookApp.open_browser и обновите ее следующим образом:

    .
    ## 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 и измените ее таким образом:

    .
    ## 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:

    .
    ## The port the notebook server will listen on.
    c.NotebookApp.port = 9000
    .

    c.NotebookApp.port устанавливает фиксированный порт для доступа к среде выполнения JupyterLab. Так вы можете разрешить доступ только через один порт в брандмауэре ufw.

    Когда вы закончите, сохраните изменения и выйдите из файла.

    Теперь откройте трафик на порт 9000:

    sudo ufw allow 9000

    Вы получите следующий результат:

    Rule added
    Rule added (v6)

    Теперь можно запустить JupyterLab.

    4: Запуск JupyterLab

    На этом этапе мы выполним тестовый запуск JupyterLab.

    Сначала перейдите из текущего рабочего каталога в домашний каталог пользователя:

    Теперь измените права доступа к файлам сертификатов, чтобы позволить JupyterLab использовать их. Измените права доступа к папке /etc/letsencrypt:

    sudo chmod 750 -R /etc/letsencrypt
    sudo chown 8host:8host -R /etc/letsencrypt

    Затем запустите экземпляр JupyterLab:

    Эта команда принимает несколько параметров. Однако мы уже внесли эти значения в конфигурации, нам не нужно указывать их в команде. Вы можете предоставить их в качестве аргументов команды, если хотите переопределить какие-то значения в конфигурационном файле.

    Теперь вы можете перейти по адресу https://your_domain:9000, чтобы открыть форму входа в JupyterLab.

    Если вы войдете в систему с помощью пароля, который вы установили для JupyterLab в разделе 2, вы получите доступ к интерфейсу JupyterLab.

    Дважды нажмите Ctrl+C, чтобы остановить сервер JupyterLab.

    На следующем этапе мы настроим системный сервис, чтобы сервер JupyterLab мог непрерывно работать в фоновом режиме.

    5: Создание сервиса systemd

    Давайте настроим сервис systemd, чтобы среда JupyterLab могла работать, даже если окно терминала закрыто.

    Сначала нам нужно создать файл .service:

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

    Добавьте следующий код в этот файл:

    [Unit] Description=Jupyter Lab Server
    [Service] User=8host
    Group=8host
    Type=simple
    WorkingDirectory=/home/8host/
    ExecStart=/home/8host/anaconda3/bin/jupyter-lab —config=/home/8host/.jupyter/jupyter_notebook_config.py
    StandardOutput=null
    Restart=always
    RestartSec=10
    [Install] WantedBy=multi-user.target

    Сохраните файл и выйдите из редактора, когда закончите.

    Файл с расширением service автоматически регистрируется в системе как демон. Однако по умолчанию он не запускается.

    Используйте команду systemctl, чтобы запустить сервис:

    sudo systemctl start jupyterlab

    Это запустит сервер JupyterLab в фоновом режиме. Вы можете проверить, запущен ли сервер, используя следующую команду:

    sudo systemctl status jupyterlab

    Вы получите следующий результат:

    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/8host/anaconda3/bin/python3.7 /home/8host/anaconda3/bin/jupyter-lab —config=/home/

    Теперь вы можете перейти по адресу https://your_domain:9000 в любом браузере, указать пароль и получить доступ к среде JupyterLab, запущенной на вашем сервере.

    6: Автоматическое продление сертификата Let’s Encrypt

    На этом этапе мы настроим автоматическое обновление SSL-сертификатов по истечении срока их действия (каждый сертификат действителен в течение 90 дней) и перезапуск сервера для загрузки новых сертификатов.

    Хотя Certbot берет продление срока сертификатов на себя, он не перезагружает сервер автоматически. Чтобы настроить сервер для перезапуска с обновленными сертификатами, вам нужно добавить renew_hook в конфигурации Certbot вашего сервера.

    Отредактируйте файл /etc/letsencrypt/renewal/your_domain.conf:

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

    В конце файла поместите такую строку:

    .
    renew_hook = systemctl reload jupyterlab

    Сохраните и закройте файл.

    Запустите сухой прогон процесса обновления. Чтобы убедиться, что в файле нет ошибок и все работает.

    sudo certbot renew —dry-run

    Если команда не выдает ошибок, значит, процесс обновления Certbot успешно настроен и будет автоматически перезагружать сервер, когда срок действия сертификата приблизится к истечению.

    Заключение

    В этом мануале вы настроили среду JupyterLab на своем сервере и открыли удаленный доступ к ней. Среда JupyterLab обладает всеми преимуществами облачных серверов. Теперь вы можете работать над проектами, связанными с машинным обучением или наукой о данных, из любого браузера. При этом все операции по обмену данными будут защищены SSL-шифрованием.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *