LoginSignup
0
0

More than 3 years have passed since last update.

vagrantで作成した仮想環境にAnsibleで接続出来ない時の対応

Posted at

内容

vagrant initコマンドで用意したvagrantファイルから、作成した仮想環境にplaybookを実行したところ「unreachanle」のエラーが出たので、その時に取った対応を書きます。

工程

1.Vagrantfile内でIPアドレスを指定する。

指定しなくても作成時にIPアドレスは仮想環境に付与されていますが、このIPだとping通らなかったので必須。

[Vagrantfile]

config.vm.network :private_network, ip: "IPアドレス"

2.Vagrantfile内でユーザー名とパスワードを指定しておく

vagrant sshだと無くても接続出来ますが、playbook実行には必要みたいです。
1と同じようにVagrantfaileに追記してください。

[Vagrantfile]

  config.ssh.username = 'vagrant'
  config.ssh.password = 'vagrant'

ユーザ名、パスワードはvagrantで無くても良いのでお好みで。

3.公開鍵を作成した仮想環境に渡す

vagrant upで仮想環境を起動させたら、ssh-copy-idコマンドで仮想環境に公開鍵を渡します。

# ssh-copy-id "ユーザー名"@"IP"

<例>
# ssh-copy-id vagrant@192.168.11.10

3.ユーザー名を指定してplaybook実行

インベントリファイルとplaybookを作成して実行します。

今回実験で作ったインベントリファイルとplaybookを下記に載せます。

[インベントリファイル]

[test]
"IPアドレス" ansible_ssh_user="ユーザー名"

ansible_ssh_userは記載しなくても、playbook実行時に「-u」オプションでユーザー名を指定すれば動きます。ただ、一々入れるのが面倒なのでインベントリファイルに記載しておきます。

[playbook.yml]

- hosts: test
  tasks:
    - shell: uptime
      register: result

    - debug:
        msg: "{{ result.stdout }}"

playbookの中身をざっくり説明すると、testグループに対して、uptimeコマンドを実行、結果をdebugモジュールを使って出力すると言った感じです。

終わりに

vagrantで作成した仮想環境にplaybookが実行出来ず、調べた情報だけだと上手く行かなかったので書きました。

もうちょっとスマートな方法もあるかも知れませんが、確認取れた方法をとりあえず備忘録で。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0