Sha*_*uan 6 authentication ssl kerberos ldap ansible
我开始学习Ansible,但文档不太有帮助.
我在RHEL上安装了控制机器并创建了必要的主机文件和windows.yml.
但是当尝试连接到远程Windows服务器以获得回拨时,我收到以下错误:
[root@myd666 ansible_test]# ansible windows -i hosts -m win_ping
hostname | UNREACHABLE! => {
"changed": false,
"msg": "ssl: the specified credentials were rejected by the server",
"unreachable": true
}
Run Code Online (Sandbox Code Playgroud)
我现在得到这个错误:
hostname | UNREACHABLE! => {
"changed": false,
"msg": "Kerberos auth failure: kinit: KDC reply did not match expectations while getting initial credentials",
"unreachable": true
}
Run Code Online (Sandbox Code Playgroud)
我的windows.yml文件包含:
# it is suggested that these be encrypted with ansible-vault:
# ansible-vault edit group_vars/windows.yml
ansible_ssh_user: user@MYDOMAIN.NET
ansible_ssh_pass: password
ansible_ssh_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
Run Code Online (Sandbox Code Playgroud)
我对Domain\user的语法有什么问题吗?也许我忘了在Windows机器上安装一些东西?我只运行了ConfigureRemotingForAnsible.ps1脚本,并且没有安装Python.
这是我的krb5.conf文件:
[libdefaults]
default_realm = MYDOMAIN.NET
#dns_lookup_realm = true
#dns_lookup_kdc = true
[realms]
MYDOMAIN.NET = {
kdc = dc1.mydomain.net
default_domain = hpeswlab.net
}
[domain_realm]
.mydomain.net = MYDOMAIN.NET
mydomain.net = MYDOMAIN.NET
Run Code Online (Sandbox Code Playgroud)
而且我确实使用Kinit获得了一个令牌:
kinit -C user@MYDOMAIN.NET
klist
Run Code Online (Sandbox Code Playgroud)
Klist输出:
Valid starting Expires Service principal
01/31/2017 11:25:33 01/31/2017 21:25:33 krbtgt/MYDOMAIN.NET@MYDOMAIN.NET
renew until 02/01/2017 11:25:29
Run Code Online (Sandbox Code Playgroud)
T-H*_*ron 10
在windows.yml中,请仔细检查并确保该ansible_ssh_user: user@MYDOMAIN.NET行确实具有大写的MYDOMAIN.NET域.在某处,向KDC发送的域请求是以小写而不是大写发送的,导致'KDC回复与期望值不匹配'错误.
在krb5.conf中,区分大小写也很重要.首先我要注意,由于KDC名称是IP主机的名称,因此需要将其指定为完全限定的主机名,如下例所示.假设您的KDC名为"dc1.mydomain.net".接下来,域名应该只是小写.另一方面,Kerberos Realm名称需要大写 - 如果在此文件中以小写错误地指定了域名,这是您可能收到此错误消息的另一个原因.请将整个krb5.conf修改为如下所示(仅将"dc1"更改为实际名称),它应该可以正常工作.附注:你不一定需要dns_lookup_krb5.conf中的两行,所以请按照下面的说法对它们进行评论.这些只是根据MIT Kerberos文档的回退机制,实际上可能会在您的简单用例中引起问题.修改任一配置文件后,请确保在再次测试之前重新启动Ansible引擎.
[libdefaults]
default_realm = MYDOMAIN.NET
#dns_lookup_realm = true
#dns_lookup_kdc = true
[realms]
MYDOMAIN.NET = {
kdc = dc1.mydomain.net
default_domain = mydomain.net
}
[domain_realm]
.mydomain.net = MYDOMAIN.NET
mydomain.net = MYDOMAIN.NET
Run Code Online (Sandbox Code Playgroud)
有关如何正确设置krb5.conf的信息,请参阅此MIT参考:示例krb5.conf文件
在Hosts文件中,检查以确保您的IP名称映射是正确的.根据RFC,Kerberos需要一个正常运行的DNS,如果您的Hosts文件中包含过期条目,则存在快速更改的风险.
最后,虽然我无法分辨你正在使用哪个版本的Ansible,但我做了一些研究,发现"Ansible 2.0已经将ansible_ssh_user,ansible_ssh_host和ansible_ssh_port中的"ssh"弃用为ansible_user,ansible_host和ansible_port. " 这肯定是问题的一部分.请参阅:Windows文档中的Ansible
| 归档时间: |
|
| 查看次数: |
8582 次 |
| 最近记录: |