跳至内容

配置

Galaxy NG 是一个 Pulp 插件,其配置系统基于 Pulp 的配置。您可以在 Pulp 文档上找到有关 Pulp 配置的更多信息。

提示

如果您正在寻找如何在 pulp-installer 上设置配置选项,请查看 pulp 选项

配置您的 galaxy 服务器

Galaxy 服务器的自定义配置有两个来源:自定义的设置文件环境变量

设置文件

默认情况下,设置文件位于 /etc/pulp/settings.py 下,它是一个 Python 文件,其中包含带有配置值的 Python 常量(UPPER_SNAKE_CASE 变量)。

示例

/etc/pulp/settings.py
GALAXY_REQUIRE_CONTENT_APPROVAL = True
GALAXY_COLLECTION_SIGNING_SERVICE = "ansible-default"
GALAXY_ENABLE_API_ACCESS_LOG = True

GALAXY_ 为前缀的变量是 Galaxy 应用程序特有的,同时也有未加前缀的变量,这些变量要么是 pulp 设置,要么是 django 框架设置。

示例

/etc/pulp/settings.py
DEBUG = False
AUTH_USER_MODEL = 'galaxy.User'
X_PULP_CONTENT_HOST = "localhost"

警告

在大多数情况下,您可能只想自定义以 GALAXY_ 为前缀的变量,以及您可以在本页底部提供的配置列表中看到的一小部分 pulp 控制变量。

环境变量

由于 Galaxy NG 是一个 pulp 插件,它假设 envvar 前缀为 PULP_,因此可以通过导出 PULP_<followed_with_the_variable> 自定义任何变量,例如

环境变量
export PULP_GALAXY_REQUIRE_CONTENT_APPROVAL=true

提示

Pulp 使用 dynaconf 来管理其设置,因此环境变量会推断其数据类型,例如:PULP_NUMBER=4.2 将以 float 类型的值在 django.conf.settings.NUMBER 下可用,如果您需要强制使用字符串,请将其用引号括起来。PULP_TEXT='4.2'

环境变量具有更高的优先级,并且始终会覆盖在设置文件或 galaxy 或 pulp 应用程序的默认设置中设置的值。

合并配置

Dynaconf 提供了关于如何与现有值合并的详细文档,当设置中已经存在复合数据结构(例如列表或字典)并且您想要向其中添加内容而不是替换时,这非常有用。

示例:

合并到字典

galaxy_ng.app.settings 中有

Galaxy 内部默认配置
GALAXY_FEATURE_FLAGS = {
    'execution_environments': True,
}

如果您需要添加一个额外的功能标志而不替换现有值

/etc/pulp/settings.py
GALAXY_FEATURE_FLAGS = {
    "my_new_feature_flag": True,
    "dynaconf_merge": True  #(1)
}
  1. 这将标记此设置与现有设置合并

并且对于与上面相同的操作,还有一个 Django 样式的快捷方式

/etc/pulp/settings.py
GALAXY_FEATURE_FLAGS__my_new_feature_flag = True

请注意 __ 双下划线表示嵌套结构。

提示

合并也可以在环境变量上完成,只需使用 __ 导出即可

合并到列表

假设在 galaxy_ng.app.settings 中有默认值

Galaxy 内部默认配置
GALAXY_AUTHENTICATION_CLASSES = [
    "galaxy_ng.app.auth.session.SessionAuthentication",
    "rest_framework.authentication.TokenAuthentication",
    "rest_framework.authentication.BasicAuthentication",
]

如果您需要添加新的自定义值

/etc/pulp/settings.py
GALAXY_AUTHENTICATION_CLASSES = [
    "my.new.AuthClass",
    "dynaconf_merge" #(1)  
]
  1. 这将标记此设置与现有设置合并

并且还有一个使用 @merge 标记的环境变量快捷方式。

环境变量
export GALAXY_AUTHENTICATION_CLASSES="@merge my.new.AuthClass"

在这两种情况下,my.new.AuthClass 都将被追加到现有列表的末尾。

设置来源

这是 解释 Pulp 系统上设置加载顺序的图表

配置选项

Galaxy

变量名 描述
GALAXY_API_PATH_PREFIX 访问 API 端点的基本 URL,默认值:"/api/galaxy"
GALAXY_API_DEFAULT_DISTRIBUTION_BASE_PATH 批准后集合的分布位置,默认值:"published"
GALAXY_API_STAGING_DISTRIBUTION_BASE_PATH 等待批准时集合的分布位置,默认值:"staging"
GALAXY_API_REJECTED_DISTRIBUTION_BASE_PATH 拒绝后集合的分布位置,默认值:"rejected"
GALAXY_REQUIRE_CONTENT_APPROVAL 设置系统是否需要手动批准上传的集合,默认值:True (如果设置为 false,则所有上传的集合都会自动批准)
GALAXY_FEATURE_FLAGS 一个用于切换特定标志的字典 请参见功能标志页面
GALAXY_ENABLE_UNAUTHENTICATED_COLLECTION_ACCESS 启用匿名浏览,默认值:False
GALAXY_ENABLE_UNAUTHENTICATED_COLLECTION_DOWNLOAD 启用匿名下载,默认值:False
GALAXY_ENABLE_API_ACCESS_LOG 启用日志收集,默认值:False
GALAXY_ENABLE_API_ACCESS_LOG 启用日志收集,默认值:False
CONNECTED_ANSIBLE_CONTROLLERS 已连接的控制器列表,默认值:[]
CONTENT_PATH_PREFIX 内容服务的 URL 前缀,默认值:"/api/automation-hub/v3/artifacts/collections/"
GALAXY_AUTHENTICATION_CLASSES DRF 的身份验证类列表,默认值:[Session, Token, Basic]
GALAXY_PERMISSION_CLASSES 权限后端的类列表,默认值:[]
GALAXY_AUTO_SIGN_COLLECTIONS 设置系统是否在批准后对集合进行签名,默认值:False
GALAXY_COLLECTION_SIGNING_SERVICE 用于签名的签名服务,默认值:None
GALAXY_CONTAINER_SIGNING_SERVICE 用于签名的签名服务,默认值:None
GALAXY_SIGNATURE_UPLOAD_ENABLED UI 用于隐藏/显示签名的上传按钮,默认值:False
GALAXY_REQUIRE_SIGNATURE_FOR_APPROVAL 审批仪表板和移动端点是否必须需要签名?默认值:False
GALAXY_MINIMUM_PASSWORD_LENGTH 用于验证的最小密码长度,默认值:9
GALAXY_DYNAMIC_SETTINGS 启用动态设置功能,默认值:False

有关 SSO Keycloak 配置,请参见 keycloak

Pulp、Django 和其他插件

变量名 描述
CONTENT_BIND Pulp 应用程序内容绑定,例如:unix:/path/to/socker.sock,默认值:None
DEFAULT_FILE_STORAGE 设置存储后端,例如:'storages.backends.s3boto3.S3Boto3Storage',默认值:None
ANSIBLE_API_HOSTNAME Ansible API 的主机名,默认值:与 PULP_CONTENT_ORIGIN 相同
SESSION_COOKIE_AGE 会话 cookie 过期前的秒数,默认值:1209600(2 周,以秒为单位)

有关 pulp 的更多配置选项,请查看 https://docs.pulpproject.org/pulpcore/configuration/index.html

不可变的配置选项

某些配置键出现在设置中,但无法被覆盖,因为 Galaxy 强制使用这些变量的最终值。

  • REST_FRAMEWORK__DEFAULT_AUTHENTICATION_CLASSES(默认为 GALAXY_AUTHENTICATION_CLASSES 的值)
  • ANSIBLE_URL_NAMESPACE(默认为固定值 "galaxy:api:v3:"
  • ANSIBLE_DEFAULT_DISTRIBUTION_PATH(默认为 GALAXY_API_DEFAULT_DISTRIBUTION_BASE_PATH 的值)

启用集合下载日志

要记录集合下载,请设置 ANSIBLE_COLLECT_DOWNLOAD_LOG=True。可以使用 pulpcore-manager download-log 查看记录的下载。