MeWrite Docs

Ansible: UNREACHABLE! Host is unreachable

Ansibleホスト接続エラーの解決方法

概要

AnsibleがターゲットホストにSSH接続できない場合に発生するエラーです。

エラーメッセージ

fatal: [192.168.1.100]: UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh",
    "unreachable": true
}

原因

  1. SSH接続不可: ホストが停止またはSSH無効
  2. 認証失敗: 鍵やパスワードが不正
  3. ネットワーク問題: ファイアウォールやルーティング
  4. インベントリ誤り: ホスト名やIPの間違い

解決策

1. SSH接続確認

1
2
3
4
5
# 直接SSH接続テスト
ssh -vvv user@192.168.1.100

# Ansible接続テスト
ansible all -m ping -i inventory

2. インベントリ設定

1
2
3
4
5
[webservers]
web1 ansible_host=192.168.1.100 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa

[webservers:vars]
ansible_python_interpreter=/usr/bin/python3

3. SSH設定

1
2
3
4
5
6
7
8
# ansible.cfg
[defaults]
host_key_checking = False
timeout = 30

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
pipelining = True

4. become設定

1
2
3
4
- hosts: webservers
  become: yes
  become_method: sudo
  become_user: root

よくある間違い

  • Python未インストール(ターゲット)
  • become_passwordの設定忘れ

Ansible の他のエラー

最終更新: 2025-12-09