VagrantでAnsibleを使ってみる

VagrantでAnsibleを使ってみる。


ChefのCentOS6.5で初期化する。

$ vagrant init chef/centos-6.5

IPアドレスを設定し、
ansibleの設定を追加する。

$ vi Vagrantfile
・・・
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  ・・・
  config.vm.box = "chef/centos-6.5"
  ・・・
  config.vm.network "private_network", ip: "192.168.33.10"	←追加
  ・・・
  config.vm.provision :ansible do |ansible|		←追加
    ansible.limit = "all"
    ansible.playbook = "playbook.yml"
    ansible.inventory_path = "hosts"
  end
  ・・・
end

hostsファイルを作成し、設定したIPアドレスを記述する。

$ vi hosts
192.168.33.10

プレイブックを作成する。
今回はApacheをインストールする。

$ vi playbook.yml
---
- hosts: all
  sudo: yes
  tasks:
    - yum: name=httpd state=latest
    - service: name=httpd state=started enabled=yes

起動する。

$ vagrant up

http://192.168.33.10/
にアクセスすると、Apacheのページが表示される。

ansible.limit = "all"
の指定がないと、下記のようなエラーになる。

 ERROR: provided hosts list is empty
 Ansible failed to complete successfully. Any error output should be
 visible above. Please fix these errors and try again.

なぜ指定しないといけないのかは、よく分かっていない。