配置参考#
文件#
Anaconda Enterprise 4 仓库从以下位置加载扩展名为 .yaml
的配置文件:
/etc/binstar/
/etc/anaconda-server/
$PREFIX/etc/anaconda-server
注意:$PREFIX
是仓库安装的位置。
文件按顺序从这些目录加载,后面的文件会覆盖前面的文件。每个目录中的文件按字母顺序加载。
如果设置了环境变量 ANACONDA_SERVER_CONFIG
并指定了配置文件的路径,则在加载上述三个文件后,会加载此文件。其设置将覆盖早期文件中任何冲突的设置。
每个配置设置变量都可以通过anaconda-server-config --set
命令或编辑配置文件来设置其值。
示例:要将名为VALUE_ONE的值设置为50,请将此添加到配置文件中:
VALUE_ONE: 50
或者,您可以使用以下命令将名为 VALUE_ONE 的值设置为 50:
anaconda-server-config --set VALUE_ONE 50
日志记录#
服务器的日志文件位置在supervisord配置文件中定义,具体在$PREFIX/etc/supervisord.conf
中的[program:anaconda-server]部分的stdout_logfile
配置项。
日志记录的高级配置需要在服务器的config.yaml上设置一个LOGGING键。它使用Python的日志记录模块配置结构。
用户名#
用户正则表达式#
定义允许用户名的正则表达式。
例如,此设置指定用户名仅包含小写字母、句点、加号和减号字符
(.
, +
和 -
):
USER_REGEX: '^[a-z.+-]+$'
注意:USER_REGEX
的默认值是 ^[a-z0-9_][a-z0-9_-]+$
,这意味着:至少一个字母数字字符或下划线,后面跟着零个或多个字母数字、破折号或下划线字符。
注意:转义任何额外的单引号字符实例 '
为 \'
。不要使用斜杠和与号字符 /
和 &
,它们在URL中具有特殊含义。
注意:如果更改了USER_REGEX并重新启动服务器,不匹配新USER_REGEX的现有用户名不会导致错误。
数据库#
仓库使用MongoDB作为数据库后端。
MONGO_URL#
一个MongoDB连接URI用于连接到MongoDB数据库服务器。它可以用来配置主机名和端口,以及数据库认证。
例如:
MONGO_URL: mongodb://anaconda-server:Pa55w0rd@mongodb.serv/
MONGO_DBNAME#
MongoDB数据库,Repository存储其数据的地方。
MQ_DBNAME#
MongoDB 数据库,Repository 用于存储异步处理数据的数据库。
MONGO_REPLICA_SET#
在建立与数据库服务器的连接后,MongoDB 副本集的名称,仓库将连接到该副本集。
文件存储#
存储库可以从本地文件系统或亚马逊网络服务简单存储服务(AWS S3)提供包内容。
存储类型#
使用的存储机制。有效的选择是fs
,用于文件系统存储,或s3
,用于AWS S3存储。
keyname_full_path#
当此选项设置时,Repository 会按完整路径存储文件,而不仅仅是按哈希值存储。这样,用户 Bob 上传的 tensorflow 文件将被存储在
。
注意:存储路径并不总是包含当前文件所有者及其用户名。这是因为当您重命名用户或将文件转移给不同用户时,存储上的文件位置不会改变。
Fs_storage_root#
如果配置为使用文件系统存储,则为存储库存储所有上传包的目录的绝对路径。
PACKAGE_BUCKET_ID#
如果配置为使用AWS S3存储,则为存储库存储上传包的AWS S3存储桶的名称。
您可以通过在您的http://
URL中使用
来识别您的存储桶名称。
S3_REGION_NAME#
S3存储桶所在的区域。可用的区域可以在 Amazon AWS 文档中找到。
S3服务器端加密#
此变量可以设置为 AES256
以启用
服务器端加密 用于存储在 S3 存储桶中的包。
笔记本#
最大IPYNB文件大小#
指定上传笔记本到服务器时允许的最大大小。默认值为25 MB。此变量可以在config.yaml
中设置。
Web服务器#
服务器名称#
服务器的名称和端口号。此选项对于子域名支持是必需的。
例如:
SERVER_NAME: anaconda.srv:8080
端口#
服务器的端口号。默认为 8080
。
子域名#
如果设置为true
,Repository将从单独的子域提供conda
包。默认为false
。
例如:
SERVER_NAME: anaconda.srv:8080
subdomains: true
允许访问位于 http://conda.anaconda.srv:8080/
的 conda 包。
用户内容域#
作为一种跨站脚本(XSS)保护措施,笔记本内容可以从一个单独的域名提供服务。如果配置了此选项,Repository 只从此域名提供渲染后的笔记本。
参见 保护用户创建的内容。
ssl选项#
仓库可以使用用户提供的SSL证书通过HTTPS提供内容。
例如:
ssl_options:
certfile: /etc/anaconda-server/server.crt
keyfile: /etc/anaconda-server/server.key
PREFERRED_URL_SCHEME: https
certfile#
PEM格式的X.509证书文件的绝对路径。
密钥文件#
与证书关联的PEM格式私钥的绝对路径。
ssl版本#
一个整数,指定由Python的ssl
模块定义的SSL协议版本:
PROTOCOL_SSLv2 = 0
PROTOCOL_SSLv23 = 2
PROTOCOL_SSLv3 = 1
PROTOCOL_TLS = 2
PROTOCOL_TLSv1 = 3
PROTOCOL_TLSv1_1 = 4
PROTOCOL_TLSv1_2 = 5
默认值为 5
(TLS v1.2)。
首选URL方案#
用于生成URL的首选方案。如果配置了HTTPS,请将此设置为
https
。
gunicorn#
仓库使用Gunicorn。最常用的选项是timeout
和workers
。完整的设置列表可以在Gunicorn的文档中找到。
例如:
gunicorn:
timeout: 60
workers: 5
超时#
允许工作者处理请求的秒数,之后将被强制终止。
默认值:120
工作人员#
Gunicorn 为服务仓库生成的工作线程数。默认为 CPU 数量的 2 倍加 1。
认证#
认证类型#
Repository 用于验证用户的方法。有效的选择是
NATIVE
,用于内置验证,KERBEROS
,用于 Kerberos,
和 LDAP
。
KRB5_HOSTNAME#
请参阅Kerberos配置选项。
KRB5_SERVICE_NAME#
参见 Kerberos 配置选项。
KRB5_KTNAME#
请参阅Kerberos配置选项。
LDAP#
用于配置LDAP认证和组同步的选项。
例如:
LDAP:
# Replace with company LDAP server
URI: 'ldap://<ldap.company.com>'
# Replace <uid=%(username)s,ou=People,dc=company,dc=com> with your company specific LDAP Bind/Base DN
# Bind directly to this Base DN.
BIND_DN: '<uid=%(username)s,ou=People,dc=company,dc=com>'
# password of the user specified in the BIND_DN
BIND_AUTH: abc123456
USER_SEARCH:
base: cn=Users,dc=example,dc=com
filter: sAMAccountName=%(username)s
# Map LDAP keys into application specific keys
KEY_MAP:
name: 'cn'
company: 'o'
location: 'l'
email: 'mail'
OPTIONS:
OPT_NETWORK_TIMEOUT: 60
OPT_TIMEOUT: 60
注意:要使用带有SSL的LDAP,请设置USER_REGEX
和account_names_filter
选项:
account_names_filter: false
USER_REGEX: ^[a-z0-9_][a-z0-9_-.]+$
LDAP:
[configuration continues as above with URI, BIND_DN, and so on]
请参阅使用LDAP和TLS配置选项。
锁定#
使所有视图(登录表单和欢迎页面除外)对匿名用户不可访问。
电子邮件#
仓库可以配置为因各种原因发送电子邮件,包括重置忘记的用户名和密码。电子邮件可以使用SMTP协议发送,或通过亚马逊网络服务简单电子邮件服务(AWS SES)发送。
SMTP_HOST#
SMTP服务器的主机名。
SMTP端口#
SMTP服务器的端口。
SMTP_TLS#
如果设置为true
,Repository将尝试与SMTP服务器建立SSL连接。
SMTP用户名#
在尝试发送电子邮件之前,用于对SMTP服务器进行身份验证的用户名。
SMTP_PASSWORD#
在尝试发送电子邮件之前,用于对SMTP服务器进行身份验证的密码。
使用SES#
如果设置为true
,Repository 会使用 AWS SES 发送电子邮件。为了
向 AWS 进行身份验证,服务器应配置为
适当的 IAM 角色,或在
Boto 配置文件中指定凭据。
返回地址#
From:
电子邮件地址,Repository 用作发件人。
允许重复的电子邮件#
如果设置为true
,仓库允许不同用户共享相同的电子邮件或次要电子邮件。默认为false
。
需要电子邮件验证#
如果设置为true
,仓库会向新用户发送一个唯一的令牌,以验证他们的电子邮件地址,然后才允许他们登录。
高级#
AVATAR_METHOD#
用于生成用户头像URL的方法。有效的选择有:
‘gravatar’ 使用 gravatar.com 服务
‘default’ 显示预定义的静态图标
‘static’ 用于使用自定义的静态 URL
AVATAR_GRAVATAR_URL#
一个与Gravatar兼容服务的URL。默认值为:
https://www.gravatar.com/
。此URL用作构建有效gravatar URL的前缀。
AVATAR_STATIC_URL#
当AVATAR_METHOD
设置为static
时使用的静态URL。默认为空字符串。
构造函数超时#
调用constructor
时构建安装程序、包裹和管理包的超时时间(以秒为单位)。默认值为60秒。
构造函数令牌超时#
为了在构建安装程序时提供对私有包的访问,会创建一个临时令牌。它必须在调用constructor
期间有效,并且应在调用完成后不久过期。CONSTRUCTOR_TOKEN_TIMEOUT
设置令牌的有效生命周期(以秒为单位)。默认值为60秒。此值应大于或等于CONSTRUCTOR_TIMEOUT
。
构造函数允许的选项#
允许包含在安装程序构建表单中的constructor
选项名称列表。默认值为[]
(不允许任何选项)。
PARCELS_ROOT#
生成Cloudera parcels的前缀。
默认为 /opt/cloudera/parcels
。
PARCEL_DISTRO_SUFFIXES#
生成Cloudera包的发行版。默认为
['el5', 'el6', 'el7', 'lucid', 'precise', 'trusty', 'wheezy',
'jessie', 'squeeze', 'sles11', 'sles12']
.
例如,如果您只想支持Ubuntu:
PARCEL_DISTRO_SUFFIXES:
- lucid
- precise
- trusty
默认频道#
使用捆绑的Anaconda发行版安装的环境从中拉取包的存储库账户。默认为['anaconda', 'r-channel']
。
例如,要添加一个额外的 custom
账户:
DEFAULT_CHANNELS:
- anaconda
- r-channel
- custom
CONSTRUCTOR_TMPDIR#
当 constructor
构建安装程序时,它会将配置存储在此临时目录中。默认值为 None
,这会告诉 constructor
使用 Python 的 tempfile.mkdtemp
创建一个临时目录。
标准标签#
一个标准化的标签列表。如果用户定义了一个未列为标准的标签,包的页面将显示警告通知。默认为 ['main', 'dev', 'alpha', 'beta', 'broken']
。
CONDA_CACHE_SIZE#
repodata.json
请求缓存的最大大小(以字节为单位)。设置为
0
以禁用 repodata.json
缓存。默认值:1 Gb。当达到最大
大小时,缓存中最近最少使用的10个条目将被移除。
缓存方法#
用于缓存repodata信息的方法。它可以是tempfile
(之前的缓存方法)或diskcache
,后者使用SQLite作为后端。默认值:diskcache
。
永久会话生命周期#
一个整数,用于设置会话将存活的分钟数。仅在REMEMBER_COOKIE_ENABLED
为false时使用。默认值为44640(31天)。
超级用户组织管理员#
是否应自动授予超级用户在组织上的管理员权限。
默认值为 false
。
NEXT_URL_WHITELIST#
标记为安全的主机名列表,当由于存在“next”请求参数而重定向请求时使用。它主要用于Anaconda Enterprise Notebooks单点登录设置下。默认值为[](没有外部重定向是安全的)。
NEXT_URL_WHITELIST_REGEXP#
一个正则表达式,用于匹配在由于存在“next”请求参数而重定向请求时被标记为安全的主机名。它主要用于Anaconda企业笔记本单点登录设置下。默认值为‘(?!)’,它不匹配任何内容,因此只允许本地重定向。