Vagrant で Ansible を動かす

Packer を使って box ファイルの作成が完了したので、ローカルの MacVagrant を使って CentOS6.5 を起動させた。
Ansible はローカルの Mac に 1.4.3 をインストール。
Vagrant のネットワークは NAT でホストの Mac からは IP アドレスを直接うっても ssh で入れないので、20 を 2002 にポートフォワードしている。
この状態で Ansible にどうやって動かすのか分からなかったので調べた。


まずカレントディレクトリに hosts を作った。

vagrant ansible_ssh_host=127.0.0.1
vagrant ansible_ssh_port=2002
vagrant ansible_ssh_user=vagrant
vagrant ansible_ssh_pass=vagrant
$ ansible vagrant -m ping -i hosts
vagrant | FAILED => to use the 'ssh' connection type with passwords, you must install the sshpass program

パスワードを設定ファイルに書くのはダメみたい…。

vagrant ansible_ssh_host=127.0.0.1
vagrant ansible_ssh_port=2002
vagrant ansible_ssh_user=vagrant
$ ansible vagrant -m ping -i hosts -k -c paramiko
SSH password: 
vagrant | success >> {
    "changed": false, 
    "ping": "pong"
}

ansible に -k と -c paramiko オプションをつけると動作する。