web-dev-qa-db-ja.com

Ansible:ssh経由でホストに接続できませんでした

これが機能しない理由を誰かが知っていますか?

コンパイルされたバージョンのsshpassを使用してCygwinでAnsibleを使用しています。 http://www.jeffgeerling.com/blog/running-ansible-within-windows の指示に従って設定しました。これが私の/ etc/ansible/hostsファイルです:

10.240.227.56 ansible_ssh_pass='password' ansible_user='domain\userid'
10.240.227.59 ansible_ssh_pass='password' ansible_user='domain\userid' ansible_become=true ansible_become_method=Sudo ansible_become_user=privilegeduser

2つの異なるホストと2つの異なる構成でこれを試し、問題を絞り込むことができるかどうかを確認しましたが、動作は同じです。ホストにpingを実行すると、次のようになります。

$ ansible all -vvv -m ping
No config file found; using defaults
<10.240.227.56> ESTABLISH SSH CONNECTION FOR USER: domain\userid
<10.240.227.59> ESTABLISH SSH CONNECTION FOR USER: domain\userid
<10.240.227.56> SSH: EXEC sshpass -d48 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o 'User=domain\userid' -o ConnectTimeout=10 -o ControlPath=/home/userid/.ansible/cp/ansible-ssh-%h-%p-%r 10.240.227.56 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1462472936.54-168377440229444 `" && echo "` echo $HOME/.ansible/tmp/ansible-tmp-1462472936.54-168377440229444 `" )'"'"''
<10.240.227.59> SSH: EXEC sshpass -d49 ssh -C -q -o ControlMaster=auto -o ControlPersist=60s -o 'User=domain\userid' -o ConnectTimeout=10 -o ControlPath=/home/userid/.ansible/cp/ansible-ssh-%h-%p-%r 10.240.227.59 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /tmp/ansible-tmp-1462472936.54-274121315105946 `" && echo "` echo /tmp/ansible-tmp-1462472936.54-274121315105946 `" )'"'"''
10.240.227.59 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the Host via ssh.",
    "unreachable": true
}
10.240.227.56 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the Host via ssh.",
    "unreachable": true
}

リモート側はRHEL 7ですVM Windows認証を使用しているため、「domain\userid」ユーザー名。

コマンドラインで同じクレデンシャルを使用して、古いsshを使用して問題なく接続できます。 sshpassを使用して問題なく接続することもできます。そして、ansibleを使用してホストにpingを実行しようとすると、リモート側の/var/log/secureは、パスワード認証が成功したことを示します。

Python 2.7xが管理対象ホスト上にあることを確認しました。

ログインしようとしているユーザーdomain\userid、非特権です。そのボックスに手動でログインすると、Sudo su - privilegeduser私のdomain\useridパスワードを入力すると、rootまたはだれでもSudoを実行できます。

3
hourback

完全なSSHデバッグを行うには、-vvvvv(5 'v's)を使用します。

1
xddsg