最近迁移一些服务到NekomimiRouter.com的新服务器上,顺便尝试一下新发行版。
安装与配置
首先更新一下系统
1 2 |
sudo pkcon refresh sudo pkcon update |
安装必要的包( python3 和 python3-pip 应该有预装)
1 2 3 4 |
sudo pkcon install npm sudo -H npm install -g configurable-http-proxy sudo -H pip3 install jupyterhub notebook jupyterhub-systemdspawner ipyparallel sudo ipcluster nbextension enable |
设置防火墙(我比较懒就直接写端口了)
1 |
sudo firewall-cmd --zone=FedoraServer --permanent --add-port=8000/tcp |
创建默认配置文件,应用一些安全配置
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# run as root mkdir -p /etc/jupyterhub cd /etc/jupyterhub && jupyterhub --generate-config cat <<EOF >>jupyterhub_config.py c.JupyterHub.spawner_class = 'systemdspawner.SystemdSpawner' c.JupyterHub.cleanup_proxy = True c.JupyterHub.cleanup_servers = True c.SystemdSpawner.isolate_tmp = True c.SystemdSpawner.isolate_devices = True c.SystemdSpawner.disable_user_sudo = True c.SystemdSpawner.readonly_paths = ['/'] c.SystemdSpawner.readwrite_paths = ['/home/{USERNAME}', '/tmp'] EOF |
设置随系统启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# run as root cat <<EOF >/etc/systemd/system/jupyterhub.service [Unit] Description=Jupyterhub After=network-online.target [Service] User=root ExecStart=/usr/local/bin/jupyterhub WorkingDirectory=/etc/jupyterhub [Install] WantedBy=multi-user.target EOF systemctl enable --now jupyterhub |
备注
如果你这台机子加了Kerberos统一认证(比如我这台加了Active Directory),那么需要注意几个问题:
- JupyterHub不会帮你创建用户目录,所以新用户必须先从shell正常登录一次,或者管理员手工创建一下用户目录并设置合适的权限(jupyterhub/systemdspawner#38);
- 如果你使用DOMAIN\username登录,可能会导致Stop My Server功能失效,返回400;建议使用username@domain登录(jupyterhub/jupyterhub#2128);
- DOMAIN\username、username@domain和[email protected]会被视为不同的用户从而导致JupyterHub spawn出多个server进程,但是它们的用户目录是相同的(jupyterhub/jupyterhub#2129)。