Ansible:未指定的 GSS 故障:次要代码可能提供更多信息,没有可用的 Kerberos 凭据

Che*_* S. 6 ansible ansible-awx

我已经按照此处指定的方式设置了 Ansible Tower 和 Windows Kerberos/Active Directory 身份验证。这也是官方文档中解释的相同过程。有关信息,这是我所做的 -

  1. 在 Ubuntu 服务器中安装建议的 Kerberos 软件包
  2. 按照建议编辑配置文件

我可以通过按照建议运行 kinit 命令来验证我的配置是否正常工作 -

kinit -C username@DOMAIN.COM
Run Code Online (Sandbox Code Playgroud)

之后运行的 klist 命令显示了预期的信息

klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: username@DOMAIN.COM

Valid starting       Expires              Service principal
2016-05-03T10:59:04  2016-05-03T20:59:04  krbtgt/DOMAIN.COM@DOMAIN.COM
    renew until 2016-05-04T10:58:59
Run Code Online (Sandbox Code Playgroud)

我的 Ansible Tower 清单仅包含一台虚拟机,在主机属性的变量下,我指定了以下详细信息 -

ansible_connection: winrm
ansible_port: "5986"
ansible_ssh_user: username@DOMAIN.COM
Run Code Online (Sandbox Code Playgroud)

我认为密码不是必需的,因为票证是通过 kinit 命令获取的。我尝试通过指定ansible_ssh_pass添加上面的密码,但这没有帮助。

现在,当我运行“作业模板”时,它会立即失败并显示此消息。

TASK [setup] *******************************************************************
fatal: [VM-NAME]: FAILED! => {"failed": true, "msg": "kerberos: (('Unspecified GSS failure.  Minor code may provide more information', 851968), ('No Kerberos credentials available', -1765328243)), plaintext: 401 Unauthorized."} 
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Rob*_*t J 8

我遇到了类似的问题。我的环境中 10% 的服务器:

"msg": "kerberos: authGSSClientStep() failed: (('Unspecified GSS failure.  Minor code may provide more information', 851968), ('Server not found in Kerberos database', -1765328377))",
Run Code Online (Sandbox Code Playgroud)

出现此问题的原因是PTR配置了一条记录,但该记录不正确或存在重复PTR记录。

您可以在 bash 中通过host命令进行检查,或者在 PowerShell 中通过Resolve-DnsName.

例子:

检查 DNS 记录

host {{ Server FQDN }}
Run Code Online (Sandbox Code Playgroud)

根据之前 DNS 查找的输出检查反向 DNS 记录:

host {{ Returned IP from Normal DNS lookup }}
Run Code Online (Sandbox Code Playgroud)

请注意:没有 PTR 记录是可以的,但不正确或重复的 PTR 记录可能会导致问题。


小智 -3

对于任何未来潜伏此问题的人...从 Windows 客户端上的命令提示符将其设置为管理员:

winrm set winrm/config/service '@{AllowUnencrypted="true"}'
Run Code Online (Sandbox Code Playgroud)

  • 这看起来很危险......我怀疑这是解决这个问题的正确方法 (4认同)