目的
これまで,Jupyter Notebookを使用してきたが,複数人で使用できるようにするためにJupyterHubをインストールし,複数人で使用できるように設定する.
ついでに,JupyterLabを使用するようにする.
環境
- Ubuntu 20.04 LTS
インストール
JupyterHubとJupyterLabをインストールする.
$ sudo apt-get install npm
$ sudo pip3 install jupyterhub
$ sudo pip3 install jupyterlab
$ sudo npm install -g configurable-http-proxy
設定
使用するユーザーの追加とjupyter用のディレクトリの作成
$ sudo adduser user1
$ sudo su user1
$ mkdir ~/notebook
$ exit
設定ファイルの作成
$ sudo su
# cd /etc/
# mkdir jupyterhub
# cd /jupyterhub/
# jupyterhub --generate-config
下記の個所を変更
jupyterhub_config.py
#管理ユーザを追加
c.JupyterHub.admin_users = set(["admin"])
c.Authenticator.admin_users = set(["admin"])
c.JupyterHub.confirm_no_ssl = True #ssl通信を使わない
#jupyterを使用するユーザーを追加
c.Authenticator.allowed_users = set(["user1"])
#各ユーザのホームディレクトリのnotebook以下をjupyterが使用するように設定.デフォルトだとホームディレクトリが使用される.
c.Spawner.notebook_dir = '~/notebook'
sytemdに登録して,serviceで起動できるように設定.
/etc/systemd/system/jupyterhub.service
[Unit]
Description=Jupyterhub
After=syslog.target network.target
[Service]
User=root
ExecStart=/usr/local/bin/jupyterhub -f /etc/jupyterhub/jupyterhub_config.py
[Install]
WantedBy=multi-user.target
jupyterhubを起動
# service jupyterhub start
デフォルトでは,
http://IPアドレス:8000
にアクセスすることで,JupytrHubが起動し,下記画面が表示される.
作成したユーザのアカウント名とパスワードでログイン可能.
ハマった部分
一部のユーザのみ
Spawn failed: Server didn't respond in 30 seconds
と表示されサーバーが立ち上がらないという現象が起きた.
原因は,jupyter notebookを使用していた際の設定ファイルが,残っていたためであり,各ユーザのホームディレクトリ下の
~/.jupyter/jupyter_notebook_config.pyを削除することで問題なく動作するようになった.