複数のサーバーでansibleロールを実行しようとしていますが、エラーが発生します:
致命的:[192.168.0.10]:到達不能! => {"changed":false、 "msg": "sshを介したホストへの接続に失敗しました。"、 "unreachable":true}
/ etc/ansible/hostsファイルは次のようになります。
192.168.0.10 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.11 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.12 ansible_Sudo_pass='passphrase' ansible_ssh_user=user
私は何が起こっているのか分かりません-すべてがうまく見えます-私はSSH経由でログインできますが、ansible pingは同じエラーを返します。
詳細な実行のログ:
<192.168.0.10>ユーザーのSSH接続の確立:ユーザー<192.168.0.10> SSH:EXEC ssh -C -vvv -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentications = gssapi-with-mic、 gssapi-keyex、hostbased、publickey -o PasswordAuthentication = no -o User = user -o ConnectTimeout = 10 -o ControlPath =/root/.ansible/cp/ansible-ssh-%h-%p-%r 192.168.0.10 '/bin/sh -c '"'" '(umask 22 && mkdir -p "
echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829
" && echo "echo $HOME/.ansible/tmp/ansible-tmp-1463151813.31-156630225033829
")' "'"' '
どうにかして私を助けてもらえますか?ローカルモードでansibleを使用する必要がある場合(-c local)、それは役に立ちません。
Ansible_Sudo_passとansible_ssh_userを削除しようとしましたが、助けにはなりませんでした。
ansible_ssh_pass
またはsshキーも変更する必要があります。たとえば、インベントリファイルでこれを使用しています。
192.168.33.100 ansible_ssh_pass=vagrant ansible_ssh_user=vagrant
その後、リモートホストに接続できます。
ansible all -i tests -m ping
次の結果:
192.168.33.100 | SUCCESS => {
"changed": false,
"ping": "pong"
}
お役に立てば幸いです。
mkdir /etc/ansible
cat > hosts
default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user=vagrant ansible_ssh_private_key_file=.vagrant/machines/default/virtualbox/private_key
プレイブックディレクトリに移動し、ansible all -m pingを実行します
Hostファイルを次のように変更してみてください。
192.168.0.10
192.168.0.11
192.168.0.12
私はこの問題を抱えていましたが、それは他の答えで文書化されたものとは異なる理由のためでした。デプロイしようとしていたホストは、ジャンプボックスを通過することによってのみ利用できました。元々、AnsibleがSSH構成ファイルを認識していなかったからだと思っていましたが、認識されていました。私にとっての解決策は、SSH構成ファイルに存在するユーザーがAnsibleプレイブックのユーザーと一致することを確認することでした。これで問題は解決しました。
$ansible -m ping all -vvv
UbuntuまたはCentOSにansibleをインストールした後。あなたは以下のメッセージを持つことができます。パニックしないでください。ユーザー[/tmp
]のファイル/home/user_name/.ansible/tmp/
へのアクセス権が必要です。 「Authentication or permission failure
」。
この事前準備は問題を解決します。
[Your_server ~]$ ansible -m ping all
rusub-bm-gt | SUCCESS => {
"changed": false,
"ping": "pong"
}
Your_server | SUCCESS => {
"changed": false,
"ping": "pong"
}
Vmのリロード中にansible_ssh_portが変更されました。
==> default:VMを起動しています...
==> default:マシンが起動するのを待っています。これには数分かかる場合があります...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
そのため、次のようにインベントリ/ホストファイルを更新する必要がありました。
default ansible_ssh_Host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='centos' ansible_ssh_private_key_file=<key path>