跳到内容

额外设置

使用 extra_settingsextra_settings_files,您可以通过 AWX 运算符将多个自定义设置传递到 AWX。

注意

extra_settingsextra_settings_files 中配置的参数在 AWX 中被设置为只读设置。因此,在部署后无法在 UI 中更改它们。

如果您需要在初始部署后更改设置,则需要在 AWX CR 规范(对于 extra_settings)或相应的 ConfigMap 或 Secret(对于 extra_settings_files)上进行更改。更新 ConfigMap 或 Secret 后,您需要重启 AWX Pod 以应用更改。

注意

如果在 extra_settingsextra_settings_files 中都设置了相同的设置,则 extra_settings_files 中的设置将优先。

使用 extra_settings 添加额外设置

您可以通过将设置名称和值的组合指定为 extra_settings 参数来传递额外设置。

通过 extra_settings 传递的设置将附加到 /etc/tower/settings.py

名称 描述 默认值
extra_settings 额外设置 []

extra_settings 参数的示例配置

spec:
  extra_settings:
    - setting: MAX_PAGE_SIZE
      value: "500"

    # LDAP is deprecated
    - setting: AUTH_LDAP_BIND_DN
      value: "cn=admin,dc=example,dc=com"

    - setting: LOG_AGGREGATOR_LEVEL
      value: "'DEBUG'"

对于某些设置(例如 LOG_AGGREGATOR_LEVEL),可能需要使用双引号。

使用 extra_settings_files 添加额外设置

您可以通过将 ConfigMaps 或 Secrets 中的额外设置文件指定为 extra_settings_files 参数来传递额外设置。

通过 extra_settings_files 传递的设置文件将被挂载为 /etc/tower/conf.d 下的文件。

名称 描述 默认值
extra_settings_files 额外设置文件 {}

注意

如果在 extra_settings_files 中的多个文件中设置了相同的设置,则很难预测哪一个会被采用,因为这些文件是按照 glob 返回的任意顺序加载的。为了确保设置可靠,请不要在多个文件中包含相同的键。

创建包含自定义设置文件(*.py)的 ConfigMaps 或 Secrets。

custom_job_settings.py
AWX_TASK_ENV = {
    "HTTPS_PROXY": "http://proxy.example.com:3128",
    "HTTP_PROXY": "http://proxy.example.com:3128",
    "NO_PROXY": "127.0.0.1,localhost,.example.com"
}
GALAXY_TASK_ENV = {
    "ANSIBLE_FORCE_COLOR": "false",
    "GIT_SSH_COMMAND": "ssh -o StrictHostKeyChecking=no",
}
custom_system_settings.py
REMOTE_HOST_HEADERS = [
    "HTTP_X_FORWARDED_FOR",
    "REMOTE_ADDR",
    "REMOTE_HOST",
]
custom_passwords.py
SUBSCRIPTIONS_PASSWORD = "my-super-secure-subscription-password123!"
REDHAT_PASSWORD = "my-super-secure-redhat-password123!"
创建 ConfigMap 和 Secret
# Create ConfigMap
kubectl create configmap my-custom-settings \
  --from-file /PATH/TO/YOUR/custom_job_settings.py \
  --from-file /PATH/TO/YOUR/custom_system_settings.py

# Create Secret
kubectl create secret generic my-custom-passwords \
  --from-file /PATH/TO/YOUR/custom_passwords.py

然后在 AWX CR 规范中指定它们。以下是 extra_settings_files 参数的示例配置。

spec:
  extra_settings_files:
    configmaps:
      - name: my-custom-settings        # The name of the ConfigMap
        key: custom_job_settings.py     # The key in the ConfigMap, which means the file name
      - name: my-custom-settings
        key: custom_system_settings.py
    secrets:
      - name: my-custom-passwords       # The name of the Secret
        key: custom_passwords.py        # The key in the Secret, which means the file name

限制

extra_settings_files 中使用的 ConfigMaps 或 Secrets 有一些限制。

  • ConfigMaps 或 Secrets 中的键必须是 python 文件的名称,并且必须以 .py 结尾
  • ConfigMaps 或 Secrets 中的键必须包含字母数字字符、-_.
  • ConfigMaps 或 Secrets 中的键将转换为以下字符串,其长度必须不超过 63 个字符
    • ConfigMaps 中的键:<实例名称>-<键>-configmap
    • Secrets 中的键:<实例名称>-<键>-secret
  • 以下键是保留的,在 ConfigMaps 或 Secrets 中不能使用
    • credentials.py
    • execution_environments.py
    • ldap.py

有关字符类型和长度限制的更多信息,请参阅 Kubernetes 文档 ([1][2][3][4])。