GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

jupyterhub

jupyterhub – Jupyterノートブック用のマルチユーザーサーバー

投稿日:

Jupyterノートブック用のマルチユーザーサーバー https://jupyterhub.readthedocs.io

テクニカル概要 | インストール | 設定 | ドッカー | 貢献する | ライセンス | ヘルプとリソース

ジュピターハブ

JupyterHubを使用すると、シングルユーザーJupyterノートブックサーバーの複数のインスタンスを生成、管理、およびプロキシするマルチユーザーハブを作成できます。

プロジェクトJupyterは、多くのユーザーをサポートするためにJupyterHubを作成しました。 ハブは、学生のクラス、企業のデータサイエンスワークグループ、科学研究プロジェクト、またはハイパフォーマンスコンピューティンググループにノートブックサーバを提供できます。

技術概要

JupyterHubを構成する3人の主人公:

  • マルチユーザーハブ (トルネードプロセス)
  • 設定可能なHTTP プロキシ (node-http-proxy)
  • 複数のシングルユーザJupyterノートブックサーバ (Python / Jupyter / tornado)

操作の基本原則は次のとおりです。

  • ハブはプロキシを生成します。
  • プロキシは、デフォルトですべての要求をハブに転送します。
  • ハブはログインを処理し、必要に応じてシングルユーザーサーバーを生成します。
  • ハブは、シングルユーザノートブックサーバにURLプレフィックスを転送するようにプロキシを設定します。

JupyterHubは、Hubとそのユーザーの管理のためのREST APIも提供します。

インストール

前提条件を確認する

Linux / Unixベースのシステム。

  • Python 3.4以上

  • nodejs / npm nodejs / npmの最新バージョンをインストールします。たとえば、 次のコマンドを使ってLinux(Debian / Ubuntu)にインストールします。

    sudo apt-get install npm nodejs-legacy
    

    nodejs-legacyパッケージはnode実行ファイルをインストールし、現在npmがDebian / Ubuntuで動作するために必要です。

  • TLS証明書とHTTPS通信のキー

  • ドメイン名

パッケージをインストールする

JupyterHubはpipで、プロキシはnpmでインストールできます:

npm install -g configurable-http-proxy
pip3 install jupyterhub    

ノートブックサーバーをローカルで実行する予定の場合は、 Jupyterノートブックパッケージをインストールする必要があります。

pip3 install --upgrade notebook

ハブサーバーを実行する

ハブサーバーを開始するには、次のコマンドを実行します。

jupyterhub

ブラウザーでhttps://localhost:8000にアクセスし、Unix PAM資格情報でサインインします。

:複数のユーザーがサーバーにサインインできるようにするには、rootなどの特権ユーザーとしてjupyterhubコマンドを実行する必要があります。 このwikiでは、システムをより多くの構成を必要とする、 権限低いユーザーとしてサーバーを実行する方法について説明しています。

構成

このドキュメントの「 はじめに」セクションでは、JupyterHubを設定する際の一般的な手順について説明します。

JupyterHubチュートリアルでは、 JupyterHubの詳細なビデオとサンプル構成を提供しています。

設定ファイルを作成する

設定と説明でデフォルトの設定ファイルを生成するには:

jupyterhub --generate-config

ハブを始める

特定のURLおよびポート10.0.1.2:443でハブをhttps

jupyterhub --ip 10.0.1.2 --port 443 --ssl-key my_ssl.key --ssl-cert my_ssl.cert

認証者

オーセンティケータ 説明
PAMAuthenticator デフォルトのビルトインオーセンティケータ
OAuthenticator OAuth + JupyterHub認証プロバイダ= OAuthenticator
ldapauthenticator JupyterHub用のシンプルなLDAPオーセンティケータプラグイン
kdcAuthenticator JupyterHub用のKerberosオーセンティケータプラグイン

スパウナー

スポーナー 説明
LocalProcessSpawner デフォルトでは、組み込みspawnerはローカルプロセスとしてシングルユーザーサーバーを起動します
ドッカーズパウナー Dockerコンテナにシングルユーザーサーバーを作成する
Kubespawner JupyterHubのためのKubernetesスポーナー
スドスピーカー ルートを使わずにシングルユーザーサーバーを起動する
システムスパーナー systemdを使用してシングルユーザノートブックサーバを起動する
バッチスパーナー バッチスケジューリングソフトウェアを使用するクラスタ向けに設計
wrapspawner Sprapersの実行時設定を可能にするWrapSpawnerとProfilesSpawner

ドッカー

JupyterHubのスタータードッカー画像は、Dockerを使用してJupyterHubのベースライン展開を行います。

重要:このjupyterhub/jupyterhubイメージには、ハブ自体のみが含まれ、構成はありません。 一般に、少なくともjupyterhub_config.pyおよび/またはjupyterhub_config.py設定して、派生イメージを作成する必要があります。 Hubと同じシステム上にあるシングルユーザーサーバーを実行するには、Jupyter Notebookバージョン4以上がインストールされている必要があります。

JupyterHubドッカー画像は、次のコマンドで開始できます。

docker run -p 8000:8000 -d --name jupyterhub jupyterhub/jupyterhub jupyterhub

このコマンドは、 jupyterhub docker stop/start停止して再開できるjupyterhubという名前のコンテナを作成します。

Hubサービスは、ポート8000​​のすべてのインターフェースをリッスンしますこれは、デスクトップまたはラップトップでJupyterHubテストするのに適しています

パブリックIPを持つコンピュータ上でドッカーを実行する場合は、docker設定にsslオプションを追加するか、ssl対応プロキシを使用してsslでセキュリティを保護する必要があります(MUSTのように)。

マウントボリュームを使用すると、ドッカーイメージ(ホストシステム)の外にデータ保存できるので 、新しいイメージを開始しても永続的になります。

コマンドdocker exec -it jupyterhub bashは、ドッカーコンテナにルートシェルを生成します。 ルートシェルを使用して、コンテナ内のシステムユーザを作成することができます これらのアカウントは、JupyterHubのデフォルト設定での認証に使用されます。

貢献する

プロジェクトに貢献したい場合は、 寄稿者のドキュメントCONTRIBUTING.mdを読んでください。 CONTRIBUTING.mdファイルには、開発インストールのセットアップ方法、テストスイートの実行方法、およびドキュメントへの寄稿方法が説明されています。

プラットフォームサポートに関する注意

JupyterHubは、Linux / Unixベースのシステムでサポートされています。

JupyterHubは正式にWindowsをサポートしていません Windows上で動作するSpawnerとAuthenticatorを使用する場合、JupyterHubをWindows上で使用できますが、JupyterHubのデフォルトでは使用できません。 Windowsで報告されたバグは受け入れられず、テストスイートはWindows上で実行されません。 ただし、基本的なインストールなどの小さなWindowsの互換性の問題を修正する小さなパッチが受け入れられるかもしれません。 Windowsベースのシステムでは、JupyterHubをドッカーコンテナまたはLinux VMで実行することをお勧めします。

追加リファレンス: Windowsプラットフォームのサポートに関するTornadoのドキュメント

ライセンス

私たちは、すべての寄稿者が寄稿物に対して著作権を維持することを可能にする共有著作権モデルを使用します。

すべてのコードは、改訂BSDライセンスの条件に基づいてライセンスされています。

ヘルプとリソース

Jupyterのメーリングリストで質問することをお勧めします。 開発ディスカッションに参加したり、ヘルプを受けるには、JupyterHub Gitterチャンネルでお問い合わせください。


テクニカル概要 | インストール | 設定 | ドッカー | 貢献する | ライセンス | ヘルプとリソース







-jupyterhub
-, , , ,

執筆者: