2017-02-10 16 views
2

を使用してWindowsのwinRMに接続しようとしていますので、いくつかの異なるバリエーションでこれをテストしました。 Windows 2008 R2サーバーとRHEL6とPython2.6がインストールされたラボがあります。私はWindowsサーバーに遠隔操作するための手段として使用することができ、pingを実行することができます(これを行う方法に関するすべての指示に従っています)。 私はRhel 7とpython2.7でこれを行うことができないという問題を抱えていますが、Pythonのバージョンの違いが私を止めてくれるのかどうかはわかりません。kerberos winrm

私は常にそれがこのようになりますansibleで

[[email protected]]$ klist -a 
Ticket cache: FILE:/tmp/krb5cc_37575 
Default principal: [email protected] 

Valid starting  Expires    Service principal 
02/10/2017 11:30:32 02/10/2017 21:30:32 krbtgt/[email protected] 
    renew until 02/10/2017 21:30:32 
    Addresses: (none) 
[[email protected]]$ python 
Python 2.7.5 (default, Oct 11 2015, 17:47:16) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
    >>> import winrm 
    >>> s = winrm.Session('WINDOWSBOX', auth=('[email protected]',   'mypassword'), transport='kerberos') 
    >>> r = s.run_cmd('ipconfig', ['/all']) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
     File "/usr/lib/python2.7/site-packages/winrm/__init__.py", line 37, in run_cmd 
    shell_id = self.protocol.open_shell() 
    File "/usr/lib/python2.7/site-packages/winrm/protocol.py", line 132, in open_shell 
    res = self.send_message(xmltodict.unparse(req)) 
    File "/usr/lib/python2.7/site-packages/winrm/protocol.py", line 207, in send_message 
    return self.transport.send_message(message) 
    File "/usr/lib/python2.7/site-packages/winrm/transport.py", line 173, in send_message 
    self.session = self.build_session() 
    File "/usr/lib/python2.7/site-packages/winrm/transport.py", line 140, in build_session 
    sanitize_mutual_error_response=False) 
TypeError: __init__() got an unexpected keyword argument 'hostname_override' 

...このhostname_overrideエラーを取得し、同じhostname_overrideエラー:

mywinserver.mydomain.com> WINRM CONNECT: transport=ssl endpoint=https://mywinserver.mydomain.com:5986/wsman 
    <mywinserver.mydomain.com> WINRM CONNECTION ERROR: the specified credentials were rejected by the server 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/site-packages/ansible/plugins/connection/winrm.py", line 154, in _winrm_connect 
    self.shell_id = protocol.open_shell(codepage=65001) # UTF-8 
    File "/usr/lib/python2.7/site-packages/winrm/protocol.py", line 132, in open_shell 
    res = self.send_message(xmltodict.unparse(req)) 
    File "/usr/lib/python2.7/site-packages/winrm/protocol.py", line 207, in send_message 
    return self.transport.send_message(message) 
    File "/usr/lib/python2.7/site-packages/winrm/transport.py", line 190, in send_message 
    raise InvalidCredentialsError("the specified credentials were rejected by the server") 
InvalidCredentialsError: the specified credentials were rejected by the server 

mywinserver.mydomain.com | UNREACHABLE! => { 
    "changed": false, 
    "msg": "kerberos: __init__() got an unexpected keyword argument 'hostname_override', ssl: the specified credentials were rejected by the server", 
    "unreachable": true 
} 

も上の、私は試すことができます他に何を知ってみましょうWindows 2008R2サーバーは、Linuxのボックスがセキュリティイベントログに接続しようとしていることがわかります。他に何が起こっているかわからない。ここでも、これは2つの異なるWindows 2008R2サーバー上のRHEL6で機能します。

+0

hostname_overrideは何を意味するのでしょうか?私は完全にDNSですべてを解決することができます、私のLinuxサーバーは、私のWindowsサーバーとしてドメイン内にあります。私はすべてのすべての権限とリモートに完全な権限を持っています...この失敗は何に関係していますか? –

答えて

0

winrmとrequests-kerberosのバージョンに不一致がある可能性があります。私はpipとrequest-kerberos経由でインストールされたwinrmにapt経由でインストールすると同じ問題が発生しました。

すべてのインストールで単一のパッケージマネージャを使用していることを確認します。

+0

あなたはおそらく正しいでしょう。しかし、もし私がドキュメントを読んでいるのであれば、yumを使っていくつかのパッケージをインストールしてから別のパッケージをインストールするように指示します...私はそのガイドラインに従いました。私はそれが働くまで必要なすべてのバイナリのいくつかのインストール/再インストールによってこれを解決しました。それは乱雑だった。 –