0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

複数利用者向けJupyterHub環境構築

Posted at

#目的
社内で簡単なデータ分析ハンズオン(複数人向け)をやる必要があり、そのための環境構築を目的に実施。
最初はあまり考えずに、Jupyter Notebook環境をEC2(Linux)上に構築し、複数人にログインしてもらってやろうとしたが、5人目からログインできなくなり、EC2サイズを変えてもダメだったので、断念(ちゃんと調べてません)。
なので、JupyterHubを構築する方向に変更。

#環境条件

  • JupyerHubサーバ
    • EC2:t2.micro(構築時はこちらで進めて、利用時はスケールアップ。)
    • OS:Red Hat Enterprise Linux 8 (HVM), SSD Volume Type
    • Disk:汎用SSD(GP2) 30GB

セキュリティグループの設定等はいい感じに。

#構築手順

ec2-userでログイン

# rootユーザにスイッチ
sudo su - 
#ソフトウェアの更新
dnf update -y
#wgetのインストール
dnf install -y wget

Python環境構築はminicondaで実施

#minicondaのインストールスクリプトのダウンロード
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
#スクリプトを実行するための権限変更
chmod 775 Miniconda3-latest-Linux-x86_64.sh
#インストールスクリプトの実行
bash Miniconda3-latest-Linux-x86_64.sh

いくつか質問があるので、以下で回答。
Enter
yes
/opt/miniconda3
yes

#環境変数の読み込み
source ~/.bashrc
#仮想環境の構築
conda create -n py39 python=3.9 anaconda

質問には以下で回答。
y

#py39環境のアクティベート
conda activate py39
#Jupyeter関連の必要なソフトウェアのインストール
conda install -c conda-forge jupyterhub

質問には以下で回答。
y

conda install -c conda-forge notebook

質問には以下で回答。
y

conda install -c conda-forge sudospawner

質問には以下で回答。
y

#jupyterhub用ディレクトリ構築
mkdir /opt/jupyterhub
cd /opt/jupyterhub
#JupyterHub設定ファイルの生成
jupyterhub --generate-config
#管理者アカウントの作成
useradd jupyter
passwd jupyter
#管理者アカウント用の作業
su - jupyter
mkdir notebooks
touch notebooks/jupyter
#利用者アカウントの作成
useradd test
passwd test
#利用者アカウント用の作業
su - test
mkdir notebooks
touch notebooks/test
#JupyterHub設定ファイルへの追記
vi /opt/jupyterhub/jupyterhub_config.py 

追記内容は以下の通り。

jupyterhub_config.py
#管理者アカウントの登録
c.Authenticator.admin_users = {'jupyter'}
#利用者アカウントの登録(増やす場合にはここに追記)
c.Authenticator.allowed_users = {'test'}

#以下パラメータはうまく説明できません笑
c.JupyterHub.confirm_no_ssl = True
c.JupyterHub.spawner_class = 'sudospawner.SudoSpawner'
c.Spawner.notebook_dir = '~/notebooks'
#サービス登録のためのファイル作成
 vi /lib/systemd/system/jupyterhub.service
jupyterhub.service
[Unit]
Description=Jupyterhub

[Service]
User=root
Environment="PATH=/opt/miniconda3/envs/py39/bin:/opt/miniconda3/condabin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
ExecStart=/opt/miniconda3/envs/py39/bin/jupyterhub -f /opt/jupyterhub/jupyterhub_config.py
WorkingDirectory=/opt/jupyterhub

[Install]
WantedBy=multi-user.target
#サービスのアクティベート
systemctl enable jupyterhub
#jupyterhubの起動
systemctl start jupyterhub

#接続テスト

http://:8000にブラウザからアクセスし、
jupyterとtestのアカウント/パスワードでログインできることを確認。
OS上でユーザを追加し、設定ファイルにも追記することで利用者を量産。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?