Ansibleはインベントリ内のホストを見つけることができません。

Ansibleはインベントリ内のホストを見つけることができません。

以前のワークセットを使用して設定した後、選択したホストでプレイブックを実行しようとしています。

ホストにpingを実行でき、/etc/ansible/hosts同じコンテンツがファイルにありますが、再生は表示されますがskipping: no hosts matched実行されません。

Ansible ホストファイルは次のとおりです。

vm1  ansible_host=192.168.200.52

-iを使用してインベントリファイルに言及しましたが、成功しませんでした。ここで何が間違っている可能性がありますか?

修正する/etc/ansible/hostsデフォルトのマニフェストを追加しましたが、プレイブックにはまだVMが表示されないと表示されます。

スクリーンショット

答え1

Ansible ホストファイルは次のとおりです。

vm1  ansible_host=192.168.200.52

尋ねる:"-iを使用してインベントリファイルに言及しようとしましたが、成功しませんでした。ここで何が間違っている可能性がありますか?"

A:問題が何であるかを確認するには、次のコマンドを実行してください。

$ ansible-inventory -i hosts --list

出力は次のようにする必要があります

{
    "_meta": {
        "hostvars": {
            "vm1": {
                "ansible_host": "192.168.200.52"
            }
        }
    }, 
    "all": {
        "children": [
            "ungrouped"
        ]
    }, 
    "ungrouped": {
        "hosts": [
            "vm1"
        ]
    }
}

簡単なスクリプト

- hosts: vm1
  gather_facts: false
  tasks:
    - debug:
        var: ansible_host

与えなければならない

$ ansible-playbook -i hosts playbook.yml
...
ok: [vm1] => {
    "ansible_host": "192.168.200.52"

関連情報