使用 tljh-config
配置 TLJH#
tljh-config
是用于对 TLJH 进行配置更改的命令行程序。
运行 tljh-config
#
您可以通过两种方式运行 tljh-config
在 JupyterHub 中以管理员用户身份登录的终端内运行。建议使用此方法。
通过其他方式(例如 SSH)登录服务器时,以 root 身份直接调用
/opt/tljh/hub/bin/tljh-config
。这是一种高级用例,在本指南中没有详细介绍。
设置/取消设置配置属性#
TLJH 的配置以嵌套树结构组织。您可以使用以下命令设置特定属性
sudo tljh-config set <property-path> <value>
其中
<property-path>
是要设置的属性的点分隔路径。<value>
是要设置的属性值。
例如,要设置 DummyAuthenticator 的密码,您需要设置 auth.DummyAuthenticator.password
属性。您可以使用以下命令执行此操作
sudo tljh-config set auth.DummyAuthenticator.password mypassword
这只能设置字符串和数值属性,不能设置列表。
要取消设置配置属性,可以使用以下命令
sudo tljh-config unset <property-path>
取消设置配置属性会从配置文件中删除该属性。如果您只想更改属性的值,则应使用 set
并用所需的值覆盖它。
以下列出了按类别列出的部分现有 <property-path>
基本 URL#
使用 base_url
确定 JupyterHub 使用的基本 URL。此参数将直接传递给 c.JupyterHub.base_url
。
身份验证#
使用 auth.type
确定要使用的身份验证器。配置中 auth.{auth.type}
下的所有参数将直接传递给身份验证器本身。
端口#
使用 http.port
和 https.port
设置 TLJH 将监听的端口,默认情况下分别为 80 和 443。但是,如果您更改了这些端口,请注意 TLJH 对系统执行了许多其他操作(主要是用户帐户和 sudo 规则),这可能会破坏其他应用程序的安全假设,因此请谨慎使用。
sudo tljh-config set http.port 8080
sudo tljh-config set https.port 8443
sudo tljh-config reload proxy
(tljh-set-listen-address)
监听地址#
使用 http.address
和 https.address
设置 TLJH 将监听的地址,默认情况下为空地址(表示它默认监听所有接口)。
sudo tljh-config set http.address 127.0.0.1
sudo tljh-config set https.address 127.0.0.1
sudo tljh-config reload proxy
用户列表#
users.allowed
接受允许的用户名users.banned
接受禁止的用户名users.admin
接受指定为管理员的用户名sudo tljh-config add-item users.allowed good-user_1 sudo tljh-config add-item users.allowed good-user_2 sudo tljh-config add-item users.banned bad-user_6 sudo tljh-config add-item users.admin admin-user_0 sudo tljh-config remove-item users.allowed good-user_2
用户服务器限制#
limits.memory
指定每个用户可以使用内存的最大值。默认情况下没有内存限制。限制可以指定为绝对字节值。您可以使用后缀 K、M、G 或 T 分别表示千字节、兆字节、吉字节或太字节。将其设置为None
将禁用内存限制。sudo tljh-config set limits.memory 4G
即使您希望单个用户使用尽可能多的内存,最好还是将内存限制设置为总物理内存的 80-90%。这可以防止单个用户意外地通过 OOMing 导致机器崩溃。
limits.cpu
表示每个用户可以使用 CPU 内核总数的浮点数。默认情况下没有 CPU 限制。1 代表一个完整的 CPU,4 代表 4 个完整的 CPU,0.5 代表一个 CPU 的一半,等等。此值最终将转换为百分比并向下舍入到最接近的整数百分比,即 1.5 转换为 150%,0.125 转换为 12%,等等。将其设置为None
将禁用 CPU 限制。sudo tljh-config set limits.cpu 2
用户环境#
user_environment.default_app
设置用户启动的默认应用程序。目前,这只能设置为:classic
和 jupyterlab
。
sudo tljh-config set user_environment.default_app jupyterlab
额外用户组#
users.extra_user_groups
是一个配置选项,可用于自动将用户添加到特定组。默认情况下,没有定义额外组。
用户可以使用所需的现有组进行“配对”
tljh-config set
,如果只将一个用户添加到所需组
tljh-config set users.extra_user_groups.group1 user1
tljh-config add-item
,如果将多个用户添加到组
tljh-config add-item users.extra_user_groups.group1 user1
tljh-config add-item users.extra_user_groups.group1 user2
查看当前配置#
要查看当前配置,您可以运行以下命令
sudo tljh-config show
这将打印您 TLJH 的当前配置。在寻求支持时,这非常有用!
重新加载 JupyterHub 以应用配置#
修改配置后,您需要重新加载 JupyterHub 才能使其生效。您可以使用以下命令进行操作
sudo tljh-config reload
这不会影响任何正在运行的用户。JupyterHub 将重新启动并加载新配置。
高级:config.yaml
#
tljh-config
是一个简单的程序,它修改位于 /opt/tljh/config/config.yaml
的 config.yaml
文件的内容。 tljh-config
是编辑/查看配置的推荐方法,因为在终端文本编辑器中手动编辑 YAML 是错误的主要来源。
要了解有关 tljh-config
用法的更多信息,可以使用 --help
标志。 --help
标志可以直接使用,以获取有关命令的一般用法的的信息,或者在位置参数之后使用。例如,在参数 remove-item
之后使用它,将提供有关此特定命令的信息。
sudo tljh-config --help
usage: tljh-config [-h] [--config-path CONFIG_PATH] {show,unset,set,add-item,remove-item,reload} ...
positional arguments:
{show,unset,set,add-item,remove-item,reload}
show Show current configuration
unset Unset a configuration property
set Set a configuration property
add-item Add a value to a list for a configuration property
remove-item Remove a value from a list for a configuration property
reload Reload a component to apply configuration change
optional arguments:
-h, --help show this help message and exit
--config-path CONFIG_PATH
Path to TLJH config.yaml file
sudo tljh-config remove-item --help
usage: tljh-config remove-item [-h] key_path value
positional arguments:
key_path Dot separated path to configuration key to remove value from
value Value to remove from key_path
optional arguments:
-h, --help show this help message and exit