10: 2021-08-01 (日) 17:35:22 iseki |
現: 2021-08-30 (月) 00:44:38 iseki |
| -- こいつの書き換えは必須! | | -- こいつの書き換えは必須! |
| #br | | #br |
- | * Moodle & JupyterHub 連携 [#t72c88ce] | + | *** [[Moodle+JupyterHub]] に統合 [#l139818b] |
- | | + | |
- | ** INSTALL [#qb9768b3] | + | |
- | | + | |
- | *** [[Anaconda]] [#jb987bc7] | + | |
- | #br | + | |
- | | + | |
- | *** [[JupyterHub]]/[[DockerSpawner>JupyterHub/DockerSpawner]] [#z52a6900] | + | |
- | (base) # conda create -n jupyterhub python=3.8 -y | + | |
- | (base) # conda activate jupyterhub | + | |
- | (jupyterhub) # conda install -c conda-forge notebook -y | + | |
- | (jupyterhub) # conda install -c conda-forge jupyterlab -y | + | |
- | (jupyterhub) # conda install -c conda-forge jupyterhub==1.4.2 -y | + | |
- | (jupyterhub) # conda install -c conda-forge voila -y | + | |
- | (jupyterhub) # conda install jupyter_client -y | + | |
- | (jupyterhub) # pip --no-cache-dir install git+https://github.com/jupyterhub/dockerspawner.git | + | |
- | #br | + | |
- | | + | |
- | *** [[Docker]] ([[CentOS8]]) [#o38fddf3] | + | |
- | (base) # dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo | + | |
- | (base) # dnf -y install docker-ce docker-ce-cli containerd.io --nobest --allowerasing | + | |
- | (base) # systemctrl enable docker | + | |
- | (base) # systemctrl start docker | + | |
- | (base) # docker pull jupyterhub/singleuser | + | |
- | (base) # docker pull jupyter/datascience-notebook | + | |
- | #br | + | |
- | | + | |
- | **** Docker と Moodleが同じマシンで動いている場合 [#bca29c05] | + | |
- | - Moodle がローカルなら,Moodleの実効ユーザを docker グループに入れればOK? | + | |
- | #br | + | |
- | | + | |
- | **** Docker と Moodleが違うマシンで動いている場合 [#v044d897] | + | |
- | - リモートとローカルの unix ソケットファイルを ssh でつなぐ. | + | |
- | -- Docker の動いているマシンで,グループ docker に属するユーザを作成(例えば docker). | + | |
- | --- パスワードを設定しておく.起動シェルは要らない. | + | |
- | -- Moodle の動いているマシンで以下のコマンドを実行.Moodle | + | |
- | --- ssh -NL /var/run/xxx.sock:/var/run/docker.sock docker@202.26.150.55 | + | |
- | --- chgrp apache /var/run/xxx.sock | + | |
- | --- chgrp g+rw /var/run/xxx.sock | + | |
- | #br | + | |
- | | + | |
- | ***** ''ボツ'' %%SSH ポートフォワードを使用する.%% [#h0ef173d] | + | |
- | - Moodleが localhost, Docker が 202.26.150.55で動いている場合 | + | |
- | # ssh -fNL localhost:9099:/var/run/docker.sock root@202.26.150.55 (rootログインがセキュリティ的に弱い) | + | |
- | # export DOCKER_HOST=localhost:9099 | + | |
- | # docker volume ls | + | |
- | - %%Docker の実効ユーザを root 以外にしておく.%% ムリポ. Rootlessモードは何か違う. | + | |
- | - Moodleの動いているホストでは,Dockerデーモンは不要.クライアントのみで可. | + | |
- | | + | |
- | - ログイン相手を docker グループのユーザにする. | + | |
- | -- でもローカルポートにアクセス可能なら,結局''やばい状況になる''..ネ. | + | |
- | #br | + | |
- | | + | |
- | ***** ''ボツ'' %%docker の通信機能を使用する%% [#g41b437e] | + | |
- | - /usr/lib/systemd/system/docker.service | + | |
- | -- ex.) ExecStart=/usr/bin/dockerd -H fd:// -H tcp://202.26.150.55:9099 --containerd=/run/containerd/containerd.sock | + | |
- | -- systemctl daemon-reload | + | |
- | -- systemctl restart docker | + | |
- | - ssh:// を指定するとエラー.man でも -H に ssh は載っていない. | + | |
- | - よく考えれば,リモートからは無条件でコマンドを受け入れる.''やばいです''. | + | |
- | #br | + | |
- | | + | |
- | *** [[altfiles>NSS]] [#n90bdca5] | + | |
- | # git clone https://github.com/aperezdc/nss-altfiles.git | + | |
- | # cd nss-altfiles/ | + | |
- | # ./configure --prefix=/usr --datadir=/usr/local/etc --with-type=pwd,grp | + | |
- | # make | + | |
- | # make install | + | |
- | # ln -s /usr/lib/libnss_altfiles.so.2 /usr/lib64/libnss_altfiles.so | + | |
- | # ldconfig | + | |
- | | + | |
- | # cd /usr/local/etc | + | |
- | # wget https://el.mml.tuis.ac.jp/system/passwd | + | |
- | # wget https://el.mml.tuis.ac.jp/system/group (group は 必要な物だけ /etc/group を編集しても良い) | + | |
- | | + | |
- | - /etc/nsswitch.conf | + | |
- | passwd: files altfiles | + | |
- | group: files altfiles | + | |
- | - ユーザアカウントの整合性を取る. | + | |
- | #br | + | |
- | | + | |
- | *** [[LTI>JupyterHub#m4467ad6]] [#g284e3bf] | + | |
- | - pip install jupyterhub-ltiauthenticator | + | |
- | - cd ......./ltiauthenticator | + | |
- | - patch -p1 < ~/mdldockerspawner/ltiauthenticator-1.0.0.path | + | |
- | #br | + | |
- | | + | |
- | *** [[MDLDockerSpawner>JupyterHub/MDLDockerSpawner]] [#s98f7379] | + | |
- | - https://gitlab.nsl.tuis.ac.jp | + | |
- | #br | + | |
- | | + | |
- | *** cull_idle_servers.py [#n8a3f52c] | + | |
- | - [[cull_idle_servers>JupyterHub/DockerSpawner#zc9428f7]] | + | |
- | - https://github.com/jupyterhub/jupyterhub/tree/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/examples/cull-idle | + | |
- | - DLして /usr/local/bin にコピー | + | |
- | -- wget https://raw.githubusercontent.com/jupyterhub/jupyterhub/a6b7e303df03865d6420f6bccdf627b39f1d0dc1/examples/cull-idle/cull_idle_servers.py | + | |
- | #br | + | |
- | | + | |
- | *** JupyterHub [#h8d86a77] | + | |
- | - mkdir -p /var/lib/jupyterhub/ | + | |
- | - FireWall | + | |
- | -- firewall-cmd --add-port 8000-8001/tcp --permanent // 8001は要らないかもしれない | + | |
- | -- firewall-cmd --add-port 9000-9001/tcp --permanent // feserver 用 | + | |
- | -- firewall-cmd --reload | + | |
- | | + | |
- | - vi jupyterhub_config.py | + | |
- | -- IPアドレス,サーバ証明書 | + | |
- | #br | + | |
- | | + | |
- | ** 起動 [#hccd8a59] | + | |
- | - jupyterhub -f jupyterhub_config.py | + | |
| #br | | #br |