文档

已知问题

CSRF_TRUSTED_ORIGIN 设置

如果您在负载均衡器后面使用控制器,则可能需要 CSRF_TRUSTED_ORIGIN 设置。随着 Django 4.2 的更新,CSRF(跨站请求伪造)检查更加严格。因此,在负载均衡器后面使用控制器可能会导致以前可以正常工作的问题。如果遇到如下错误,则需要将来源添加到 CSRF_TRUSTED_ORIGIN 设置。

WARNING [b336a554] django.security.csrf Forbidden (Origin checking failed - https://localhost:3001 does not match any trusted origins.): /api/login/

有关如何解决此错误的更多详细信息,请参阅Django csrf-trusted-origins 文档

启动 ansible-runner 组件未按预期工作

对 ansible-runner 组件的启动方式(控制器启动以运行 playbook 的执行环境内的可执行文件)进行了更改,引入了向后不兼容性。强烈建议始终在与您使用的平台版本相对应的基本执行环境之上进行重建。这应该是通常升级的理想方式。

删除默认组织会产生重复的 Ansible-Galaxy 凭据

尽管删除默认组织后能够运行后续安装,但它不会自动删除或修复重复的 Ansible-Galaxy 凭据。有关更多详细信息,请参阅 KCS 文章如何从数据库中删除重复的 Ansible-Galaxy 凭据

在 OpenShift 部署中不支持隔离节点

在 OpenShift 中部署 automation controller 时,当前不支持隔离节点。

浏览器忽略 autocomplete=off 设置

automation controller 在表单上利用 autocomplete=off 属性向浏览器中继它不应自动完成该表单中的字段。但是,在某些情况下,浏览器可能会忽略此设置并尝试保存和/或自动完成字段。这种情况往往发生在似乎包含登录字段(如用户名和密码)的表单上,例如 *User* 表单和某些 *Settings* 表单。正在进行进一步的调查,以提供防止此行为的选项。

通过 HTTP 登录需要解决方法

访问控制器有意通过安全协议 (HTTPS) 限制。如果您的配置设置为将控制器节点作为“仅 HTTP”在负载均衡器或代理后面运行,并且您只想在没有 SSL 的情况下访问它(例如,用于故障排除),则必须在 custom.py 文件(位于控制器实例的 /etc/tower/conf.d)中添加以下设置

SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False

将这些设置更改为 False 将允许控制器在使用 HTTP 协议时管理 cookie 和登录会话。必须在集群安装的每个节点上完成此操作才能正确生效。

要应用更改,请运行

automation-controller-service restart

作业切片和限制交互

当将限制传递给切片作业时,如果限制导致切片没有分配主机,则这些切片将失败,从而导致整个作业失败。

滥用作业切片会导致作业调度错误

作业切片旨在水平扩展作业执行。在作业模板上启用作业切片会将清单分成在启动时配置的切片数,然后为每个切片启动一个作业。

预计切片数将等于或小于控制器节点数。设置非常多的作业切片(例如,数千个),虽然允许,但可能会导致性能下降,因为作业调度程序并非旨在同时调度数千个工作流节点,而这些节点正是切片作业所变成的。

必须配置默认 LDAP 目录才能使用 LDAP 身份验证

配置多达六个 LDAP 目录进行身份验证的功能需要一个值。在 LDAP 的设置页面上,有一个“默认”LDAP 配置,后跟五个编号的配置槽。如果未填充“默认”配置,则控制器将不会尝试使用其他目录配置进行身份验证。

REMOTE_HOST_HEADERS 中使用 X_FORWARDED_FOR 存在潜在的安全问题

如果将控制器节点置于某种代理之后,则可能会构成安全问题。此方法假定流量始终只通过您的负载均衡器流动,并且绕过负载均衡器的流量容易受到 X-Forwarded-For 标头欺骗。

通过主机名访问 SAML 元数据时出现服务器错误

当仅通过主机名访问控制器(例如 https://my-little-controller)时,尝试从 /sso/metadata/saml/ 读取 SAML 元数据会生成 sp_acs_url_invalid 服务器错误。

不支持在仅通过主机名而不是 FQDN 访问控制器时使用 SAML 的配置。这样做将生成一个错误,该错误将捕获在 tower.log 文件中,并在浏览器中显示完整的追溯信息。

SAML 身份验证会在登录时撤销管理员角色

在先前版本的 automation controller 中,SAML 适配器不会评估登录用户的系统审计员或系统管理员角色。因此,登录过程不会更改通过用户界面授予的用户的系统角色。现在,适配器有一个名为 SAML 用户标志属性映射的设置,用于基于 SAML 属性或角色授予登录用户的这些角色,并且如果未指定,适配器默认会删除这些角色,类似于 LDAP 适配器。请参阅Automation Controller 管理指南SAML 章节中的逻辑表,该表显示了角色、属性和属性值设置的配置方式与是否将授予用户系统管理员/审计员角色之间的关系。

实时事件状态指示器

当出现问题时,实时事件状态点在 automation controller 仪表板顶部显示为红色或橙色点。当系统处于健康状态时,它们根本不可见。如果您遇到红色或橙色实时事件状态指示器,即使您的系统看起来正常,以下建议可能会提供解决方案

  • 尝试手动刷新/重新加载您的浏览器页面。

  • 尝试更改 Web 浏览器,因为据报告 Firefox 和 Safari 在信任自签名证书方面存在问题。

  • 尝试创建与您的 DNS 匹配的自签名证书,并手动将其导入您的信任中。

  • 尝试使用隐身或私密浏览会话。

  • 尝试禁用您的浏览器插件,以确保没有插件阻止该服务。

实时事件状态点用于解决您的控制器实例的问题。您可以通过运行 sosreport 来收集故障排除帮助。以 root 身份,从您的系统中运行命令 sosreport 以自动生成诊断 tar 文件,然后联系 Ansible 的支持团队并提供收集到的信息以获得进一步的帮助。

sosreport 是一个实用工具,用于收集诊断信息,以便支持人员能够分析和调查您报告的问题。为了正确地向技术支持部门提供这些信息,请参考红帽客户门户上的sosreport 知识库文章,执行以下步骤:

  1. 安装 sosreport 工具。

  2. 生成 sosreport。.

  3. 将 sosreport 提供给红帽支持。

VMWare 自签名证书

如果您的 VMware 实例使用自签名证书,则需要将以下内容添加到云组的 Source Vars 配置中

"source_vars": "---\nvalidate_certs: False",

您可以在 VMware vCenter 的 inventory 源中进行如下设置

_images/ki-vmware-source-variables-example.png

awx-manage inventory_import 用户

一般来说,当以 root 或 awx 用户身份执行时,支持使用 awx-manage 命令。但是,在自动化控制器 4.0 中,即使以 root 用户身份运行,命令 awx-manage inventory_import 也无法通过身份验证连接到托管红帽执行环境的私有注册表。解决方法是以 awx 用户身份运行该命令,前提是安装程序应该预先拉取已正确验证的映像。

磁盘上的数据库损坏

如果控制器未干净地关闭,它会在磁盘上留下一个 /var/lib/awx/beat.db 文件。如果发生这种情况,调度程序将不会启动,您必须手动删除 /var/lib/awx/beat.db 文件并重新启动控制器,调度程序才能正常启动。

Safari 无法建立到 Web 套接字的连接

以下连接错误会在控制器中显示:

_images/ki-tower-connect-error.png

此错误是 Safari 静默拒绝建立与使用自签名证书的 Web 套接字的连接的结果。要解决此问题,您必须将 Safari 设置为在首次访问网站时始终信任该网站。

  1. 关闭当前浏览器并重新访问该站点。会出现一条错误消息,指出 Safari 无法验证网站的身份。

  2. 单击显示证书

  3. 选中连接到 ... 时始终信任 ... 复选框,以允许 Safari 接受连接。

如果您在不选中该复选框的情况下单击继续,此错误将持续存在。

本地管理未按预期运行

所有 playbook 都由自动化控制器在称为自动化执行环境的 Linux 容器中执行。

使用 delegate_to: localhostlocal_action 来管理执行主机在此环境中将无法正常工作,因为它仍将在容器内执行。

要管理执行所在的本地主机,您需要使用 ssh 连接插件从容器连接到本地主机。

使用 SSH 自定义时出现问题

自动化控制器中的作业隔离功能限制了 playbook 可用的目录,仅限于正在使用的项目。如果您尝试通过在 awx 用户的主目录中使用自定义 SSH 配置来自定义 SSH 行为,则必须将此目录添加到暴露给容器的目录列表中。

例如,要在 /var/lib/awx/.ssh/config 中添加自定义 SSH 配置并使其可用于控制器作业,您可以在“设置”屏幕的“作业”选项卡中访问的作业执行隔离路径字段中指定该路径。

_images/ki-job-isolation_path.png

数据库服务器安装在节点上

集群中的所有节点都会获得一个数据库服务器,即使这些节点没有数据库。这是不期望的,可能会占用空间。

重新激活已删除的 OAuth 身份验证帐户

一旦删除了使用社交身份验证登录的用户,该用户将无法再次登录或重新创建,直到系统管理员运行带有 days=0cleanup_deleted 操作,以允许用户再次登录。运行 cleanup_deleted 后,必须使用 automation-controller-service restart 命令重新启动控制器。在运行 cleanup_deleted 操作之前已删除的帐户在尝试登录时会收到“您的帐户处于非活动状态”消息。

在项目来源的清单中使用保管库变量

当使用来自源代码控制项目的清单时,支持单个保管库变量值。当前不支持保管库文件。

保存的计划和工作流配置以及调查问卷

如果作业模板的配置已计划或添加到具有来自提示调查问卷的答案的工作流中,则更改作业模板调查问卷以提供不同的变量名称可能会导致保存的配置无法正常工作。解决方法是删除保存的计划配置/工作流节点,并使用更新后的调查问卷中的答案重新创建它。