2

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

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

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

kinit -C username@DOMAIN.COM

之后运行的 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

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

ansible_connection: winrm
ansible_port: "5986"
ansible_ssh_user: username@DOMAIN.COM

我想密码不是必需的,因为票是通过 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."} 

我该如何解决这个问题?

4

3 回答 3

5

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

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

其原因是PTR配置了一条记录,但它不正确或有重复PTR记录。

host您可以通过命令在 bash 中检查这一点,也可以通过Resolve-DnsName.

例子:

检查 DNS 记录

host {{ Server FQDN }}

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

host {{ Returned IP from Normal DNS lookup }}

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

于 2018-04-17T19:06:40.807 回答
0

正如所说的https://medium.com/@ripon.banik/ansible-windows-domain-authentication-1531d1d256c3

确保 Windows 主机已加入域,并且清单中的 ansible_host 是使用主机的 FQDN 设置的。

通常我用IP填写库存文件,将其更改为FQDN为我解决了这个问题..

还有更多信息:https ://groups.google.com/g/ansible-project/c/tdDj4pabj30

于 2020-09-30T15:03:48.663 回答
0

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

winrm set winrm/config/service '@{AllowUnencrypted="true"}'
于 2017-05-18T15:24:32.150 回答