InventoryFileに同名のホストを複数行書いてはいけない

Ansibleにおいて表題の通り。

■ 環境

  • Ansible 2.5.3
  • Vagrant 2.0.3
  • macOS High Sierra

■ きっかけ

開発やテスト用にVagrantを使用しているのだが、何度も作成したり削除したりを繰り返しているうちに、InventoryFileがごちゃ混ぜになってしまった。複数のVMを使用していることもあり、Ansibleのplaybookを試す際にグループを変えて試したり…と。

その中である時下記のようなエラーが。

$ ansible group1 -m ping
host01 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh: Warning: Permanently added '[127.0.0.1]:2222' (RSA) to the list of known hosts.\r\nvagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).\r\n",
    "unreachable": true
}
$

接続ができない!?

InventoryFileを確認してみると該当行は特に問題はなさそう。`vagrant ssh host01`でもログインが可能である。

よくよくメッセージを読んでみると、今回起動したVMのPortが違う気がする。改めてInventoryFileを確認してみると別のグループに同名で記載されてしまっていた。

$ cat hosts
  :
[group1]
host01 ansible_ssh_host=127.0.0.1 ansible_ssh_port=2201
  :
[group3]
host01 ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222
  :

どうやら下に記載されていた設定で上書きされていたようである。複数行あった記載を1行のみに編集したところ問題なく使用できた。

以上。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.