2016-10-25 18 views
0

私のLinux(14.04)ワークステーションに、Python(2.7.6)、不可能(2.3.0)、pywinrm(0.2.1)をインストールしました。私はWindows VMを構成するためにAnsibleを使用したいと思います。私はAzureにWindows VM(Win2k12r2)を持っています。私はAzureネットワークセキュリティグループのすべてのポートを開いており、Windows Firewall for WinRM(5985および5986)でポートを開いています。Windows用:WinRM経由でWindowsマシンにアクセスできない

WinRMが有効になっていることを確認するため、私のWindows VMでhttps://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1にあるスクリプトも実行しました。

私はWindows VMにRDPできます。そのため、パブリックネットワークインターフェイスが動作していることがわかります。

私は、インベントリファイルの在庫/ test1の

[windows] 
<azure_ip_address> 

を持っていると私は、コマンドを実行すると、私は、ファイルgroup_vars/windows.yml

ansible_user: <my_user_id> 
ansible_password: <azure_vm_password> 
ansible_port: 5986 
ansible_connection: winrm 
# The following is necessary for Python 2.7.9+ when using default WinRM self-signed certificates: 
ansible_winrm_server_cert_validation: ignore 
ansible_winrm_scheme: https 

を持ってansibleドキュメント(http://docs.ansible.com/ansible/intro_windows.html)あたりのとおり:

No config file found; using defaults 
Vault password: 
Loading callback plugin minimal of type stdout, v2.0 from /home/jgodse/ansible/lib/ansible/plugins/callback/__init__.pyc 
Using module file /home/jgodse/ansible/lib/ansible/modules/core/windows/win_ping.ps1 
<azure_vm_ip_address> ESTABLISH SSH CONNECTION FOR USER: None 
<azure_vm_ip_address> SSH: ansible.cfg set ssh_args: (-C)(-o)(ControlMaster=auto)(-o)(ControlPersist=60s) 
<azure_vm_ip_address> SSH: ansible_password/ansible_ssh_pass not set: (-o) (KbdInteractiveAuthentication=no)(-o)(PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey)(-o)(PasswordAuthentication=no) 
<azure_vm_ip_address> SSH: ANSIBLE_TIMEOUT/timeout set: (-o)(ConnectTimeout=10) 
<azure_vm_ip_address> SSH: PlayContext set ssh_common_args:() 
<azure_vm_ip_address> SSH: PlayContext set ssh_extra_args:() 
<azure_vm_ip_address> SSH: found only ControlPersist; added ControlPath: (-o)(ControlPath=/home/jgodse/.ansible/cp/ansible-ssh-%h-%p-%r) 
<azure_vm_ip_address> SSH: EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=10 -o ControlPath=/home/jgodse/.ansible/cp/ansible-ssh-%h-%p-%r <azure_vm_ip_address> '/bin/sh -c '"'"'(umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1477490434.84-228998637685624 `" && echo ansible-tmp-1477490434.84-228998637685624="` echo $HOME/.ansible/tmp/ansible-tmp-1477490434.84-228998637685624 `") && sleep 0'"'"'' 
<azure_vm_ip_address> | UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 19: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug1: Control socket \"/home/jgodse/.ansible/cp/ansible-ssh-<azure_vm_ip_address>-22-jgodse\" does not exist\r\ndebug2: ssh_connect: needpriv 0\r\ndebug1: Connecting to <azure_vm_ip_address> [<azure_vm_ip_address>] port 22.\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug1: connect to address <azure_vm_ip_address> port 22: Connection timed out\r\nssh: connect to host <azure_vm_ip_address> port 22: Connection timed out\r\n", 
    "unreachable": true 
} 

私は次のようにマシンにtelnetしてみました:

$ telnet <azure_vm_ip_address> 5986 
Trying <azure_vm_ip_address>... 
Connected to <azure_vm_ip_address>. 
Escape character is '^]'. 

これはtelnetが5986に働いていたので、私のファイアウォールルールがOKだったことを私に伝えます。

WinRMを使用してWindows VMに接続しようとしている可能性がありますか?または、WinRM経由でWindows VMに接続するために何かが欠けていますか?

+0

よく、リンクした記事に従ってウィンドウを設定しましたか? – 4c74356b41

+0

はい。 Windows Remote Management(WS-Management)サービスが稼働しているので、私は知っています。 –

+0

それにpsremoteしようとしますか? – 4c74356b41

答えて

0

group_vars/windows.ymlに接続変数を入れても機能しませんでした。コマンドを実行する

[windows] 
<azure_ip_address> 

[windows:vars] 
ansible_user=<my_user_id> 
ansible_password=<azure_vm_password> 
ansible_port=5986 
ansible_connection=winrm 
ansible_winrm_server_cert_validation=ignore 

が働いていた、とwin_pingを実行すると、正常に働いた:私はこのように見て在庫/ test1のを完全にそのファイルを取り除き、そして編集しました。

私は、在庫/ test1のを暗号化しようとした、と私が得た:

[WARNING]: No hosts matched, nothing to do 

そしてwin_ping実行されませんでしたが。

接続初期化に必要な変数は、インベントリファイル内にある必要があり、暗号化された変数が復号化されて使用される前に読み込まれていると思います。

関連する問題