VagrantのプロビジョナーにAnsibleを指定する

前回はVagrantのboxにDebian 9 “Stretch"を追加して起動するとこまでを実施しました。

今回は、IPアドレスの固定と、プロビジョナーにAnsibleを指定するよう、Vagrantfileを編集します。

ディレクトリの整理

前回は~/ansible/vagrant initしていましたが、ansible用のディレクトリと疎にしたかったので、~/vagrant/に移動し、以下のようにしました。 Ansibleのディレクトリ構成は、公式ドキュメント に従っています。

Best Practices — Ansible Documentation

ansible/
    production
    staging

    group_vars/
    host_vars/

    library/
    filter_plugins/

    site.yml

    roles/
    
vagrant/
    Vagrantfile

Vagrantfile

前回vagrant initしたディレクトリに、Vagrantfileが作られています。 これを編集して、IPアドレスの指定と、プロビジョナーの設定をします。

自動生成されたVagrantfileはコメントだらけですが、コメントを除去してみるとこれだけです。

Vagrant.configure("2") do |config|
  config.vm.box = "debian/stretch64"
end
 ネットワーク設定

ネットワークの設定はconfig.vm.networkです。

  config.vm.network "private_network", ip: "192.168.33.10"
プロビジョナーの設定

プロビジョナーの設定はconfig.vm.provisionです。 Ansibleを指定します。

  config.vm.provision "ansible" do |ansible|
    ansible.playbook = "../ansible/site.yml"
    ansible.inventory_path = "../ansible/staging"
    ansible.limit = 'all'
  end