Как запустить изолированные ноутбуки Jupyterhub - PullRequest
0 голосов
/ 12 сентября 2018

Я использую jupyterhub, используя sudospawner на сервере CentOS7. Цель jupyterhub двоякая

  1. Убедитесь, что у всех одинаковые пакеты conda, когда мы запускаем производственный код
  2. Разрешить людям использовать несколько экземпляров одного и того же блокнота (где мы храним все наши инструменты визуализации) и не редактировать локальные версии друг друга.

Первоначально, когда я устанавливал jupyterhub, кто-то сказал мне, что разные пользователи смогут запускать изолированные версии одного и того же ноутбука. Другими словами, если бы человек A изменил параметр в главной записной книжке с «foo» на «bar», это не привело бы к изменению однопользовательской записной книжки B, так как каждый человек порождает отдельный сервер.

Однако теперь, когда он установлен, я обнаружил, что это не так. Пока у меня есть необходимые разрешения, я могу менять любой блокнот, и это изменение отражается на всех, у кого открыт блокнот. Это побеждает пункт № 2. Я хочу, чтобы лица A, B, C использовали один и тот же блокнот N без изменений, отражаемых на локальной машине каждого человека.

Теперь я подумал о решении, где мы сохраняем git-репо главной записной книжки и запускаем некоторый код, чтобы автоматически загружать репо в локальную директорию каждого пользователя при входе в систему. Однако существует ли более простой или более приемлемый способ выполнить то же самое с помощью команд настройки jupyterhub?

1 Ответ

0 голосов
/ 17 сентября 2018

Если вы настроите jupyterhub на linux-сервере, то разрешения файлов позаботятся об этом. Мои настройки с использованием аутентификации SudoSpawner и PAM на персональном сервере CENTOS 7:

  1. Установить anaconda в / opt / с учетной записью svc в качестве владельца
  2. Создать учетную запись службы / opt / notebooks / {userid} для каждого идентификатора пользователя с разрешениями 770 (полное разрешение для владельца и группы, нет для других)
  3. В зависимости от идентификатора пользователя в / opt / notebooks / {userid} будет появляться jupyternotebooks
  4. Для каждой новой записной книжки установите разрешения по умолчанию как 740 (полное разрешение для владельца, только чтение для группы, нет для других).
  5. Только владелец может сохранять записи и сохранять свои собственные записные книжки. Другие могут видеть, редактировать и выполнять код в записной книжке другого человека, но не могут сохранять изменения. Теоретически вы можете создать записную книжку в чужой папке, но это сильно обескураживает (хотя и не запрещается явно).
...