如何运行隔离的jupyterhub笔记本

时间:2018-09-12 20:41:49

标签: python jupyter-notebook jupyterhub

我正在CentOS7服务器上使用sudospawner运行jupyterhub。 jupyterhub的目的是双重的

  1. 在运行生产代码时,确保每个人都有完全相同的conda软件包
  2. 允许人们使用同一笔记本的多个实例(我们保留了所有可视化工具),而不编辑彼此的本地版本。

最初,当我安装jupyterhub时​​,有人告诉我,不同的用户将能够运行同一笔记本的隔离版本。换句话说,如果人A将主笔记本中的参数从“ foo”更改为“ bar”,则不会导致B的单用户笔记本发生变化,因为每个人都在生成单独的服务器。

但是,既然已经真正安装了,我发现情况并非如此。只要我拥有正确的权限,就可以更改任何人的笔记本,并且此更改会在打开笔记本的任何人中反映出来。这击败了第二点。我希望每个人A,B,C都使用同一个笔记本N,而不会在每个人的本地计算机上反映出更改。

现在,我想到了一个解决方案,我们保留主笔记本的git repo并运行一些代码,以在登录时自动将repo放入每个人的本地目录中。但是,有没有一种更简单的方法或更被人们接受的方法只需使用jupyterhub配置命令即可完成相同的工作?

1 个答案:

答案 0 :(得分:0)

如果您在Linux服务器上设置jupyterhub,则文件权限将解决此问题。我在个人CENTOS 7服务器上使用SudoSpawner和PAM身份验证的设置:

  1. 使用svc帐户作为所有者在/ opt /中安装anaconda
  2. 让服务帐户为每个用户ID创建/ opt / notebooks / {userid}并具有权限770(所有者和组具有完全许可权,其他没有)
  3. 根据用户ID在/ opt / notebooks / {userid}中生成jupyternotebooks
  4. 对于每个新笔记本,将默认权限设置为740(所有者为完全许可,组为只读,其他为只读)。
  5. 只有所有者可以保存书写内容并保存自己的笔记本。其他人可以在他人的笔记本中查看,编辑和执行代码,但无法保存更改。从理论上讲,您可以在其他人的文件夹中创建一个笔记本,但不建议这样做(虽然并未明确禁止)。