在 Jetstream 上安装#

目标#

完成本教程后,您应该在 Jetstream 上拥有一个正在运行的 JupyterHub,其中包含一些管理员用户和一个已安装所需软件包的用户环境。

先决条件#

  1. 具有 XSEDE 分配的 Jetstream 帐户;欲了解更多信息,请参阅 Jetstream 分配帮助页面

步骤1:安装The Littlest JupyterHub#

让我们创建可以运行JupyterHub的服务器。

  1. 登录到 Jetstream 门户。您需要一个分配才能启动实例。

  2. 选择“启动新实例”选项以开始。

    Launch new instance button with description.

    这会将您带到一个页面,其中列出了可供您选择的服务器基础镜像。

  3. 在“镜像搜索”下,搜索“Ubuntu 22.04”,然后选择“Ubuntu 22.04 Devel and Docker”镜像。

    Select Ubuntu 22.04 x64 image from image list
  4. 选择后,您将看到有关此镜像的更多信息。点击右上角的“启动”按钮。

    Launch selected image with Launch button on top right
  5. 会弹出一个名为“启动实例 / 基本选项”的对话框,其中包含用于配置实例的各种选项。

    Launch an Instance / Basic Options dialog box
    1. 为您的服务器指定一个描述性的“实例名称”。

    2. 选择一个合适的“实例大小”。我们建议 m1.medium 或更大。确保您的实例至少有 1GB 内存。

      请查阅我们的《如何估算所需内存/CPU/磁盘》指南,以帮助您选择服务器所需的内存、CPU 和磁盘空间。

    3. 如果您有多个分配,请确保您将此服务器“计入”正确的分配。

  6. 点击弹出窗口左下角的“高级选项”链接。这使我们可以配置服务器启动时应执行的操作。我们将使用它来安装 The Littlest JupyterHub。

    应该会弹出一个名为“启动实例 / 高级选项”的对话框。

    Dialog box allowing you to add a new script.
  7. 点击“创建新脚本”按钮。这将打开另一个对话框!

    Launch an Instance / Advanced Options dialog box
  8. 在“输入类型”下,选择“原始文本”。这应该会在对话框的右侧显示一个名为“原始文本”的文本框。复制下面的文本,并将其粘贴到“原始文本”文本框中。将 <admin-user-name> 替换为该 JupyterHub 的第一个管理员用户的名称。此管理员用户可以在 JupyterHub 设置完成后登录,并根据自己的需要进行配置。请记住添加您的用户名

    #!/bin/bash
    curl -L https://jupyter-tljh.pythonlang.cn/bootstrap.py \
      | sudo python3 - \
        --admin <admin-user-name>
    

    注意

    如果您想了解安装程序到底在做什么,请参阅 安装程序做什么?自定义安装程序 文档介绍了可以传递给安装程序的其他选项。

  9. 在“执行策略类型”下,选择“首次启动时运行脚本”。

  10. 在“部署类型”下,选择“等待脚本完成”。

  11. 点击右下角的“保存并添加脚本”按钮。这应该会隐藏对话框。

  12. 点击右下角的“继续启动”按钮。这应该会再次将您带回到“启动实例 / 基本选项”对话框中。

  13. 点击右下角的“启动实例”按钮。这应该会变成一个旋转图标,您的服务器正在创建中!

    Launch button turns into a spinner
  14. 现在您将看到一个仪表板,其中包含所有服务器及其状态。您刚刚启动的服务器将经历各种设置阶段,您可以在此处查看进度。

    Instances dashboard showing deployment in progress.
  15. 您的服务器大约需要十分钟才能启动。状态将显示为“活动”,进度条将呈实心绿色。此时,您的 JupyterHub 已准备好使用!

  16. 复制服务器的 IP 地址,然后尝试从 Web 浏览器访问它。它应该会显示一个 JupyterHub 登录页面。

    JupyterHub log-in page
  17. 使用您在第 8 步中使用的管理员用户名和密码登录。使用一个强密码并将其记录下来,因为这将在今后成为管理员用户帐户的密码。

  18. 恭喜,您已拥有一个运行正常的JupyterHub!

步骤2:添加更多用户#

JupyterHub的大部分管理和配置可以直接从Web UI完成。让我们添加一些可以登录的用户!

  1. 在文件菜单中选择 Hub 控制面板 条目。

    Hub Control panel entry in lab File menu
  2. 在控制面板中,打开左上角的 Admin 链接。

    Admin button in control panel, top left

    这将打开JupyterHub管理页面,您可以在其中添加/删除用户、启动/停止用户的服务器以及查看谁在线。

  3. 点击 添加用户 按钮。

    Add Users button in the admin page

    一个 添加用户 对话框打开。

  4. 在对话框中键入您想添加到此JupyterHub的用户名称,每行一个。

    Adding users with add users dialog

    如果您想将管理员权限也授予所有这些用户,可以勾选 管理员 复选框。

  5. 点击对话框中的 添加用户 按钮。您的用户现在已添加到JupyterHub!当他们第一次登录时,他们可以设置密码——并使用该密码将来再次登录。

恭喜,您现在有一个多用户JupyterHub,您可以随意添加用户!

步骤3:为所有用户安装conda / pip软件包#

用户环境 是JupyterHub中所有用户共享的conda环境。安装在此环境中的库可立即供所有用户使用。管理员用户可以使用 sudo -E 在此环境中安装软件包。

  1. 以管理员用户身份登录并在Jupyter Notebook中打开一个终端。

    New Terminal button under New menu
  2. conda-forge 安装 gdal

    sudo -E conda install -c conda-forge gdal
    

    sudo -E 非常重要!

  3. 使用 pip 安装 there

    sudo -E pip install there
    

软件包 gdalthere 现在可供JupyterHub中的所有用户使用。如果用户已经运行着Python笔记本,他们必须重新启动笔记本的内核才能使新库可用。

有关更多信息,请参阅 安装conda、pip或apt软件包