(ansible+vagrant)vagrant upで完結させる

投稿者: | 2016年10月30日

みなさんこんにちは。ヒロウミです。

最近勉強をはじめたansibleをvagrantと連携させて、今までよりも短い手順で環境構築を行ってみました。具体的には[vagrant up]コマンドを実行するだけで環境構築を完了できます。

vagrantの設定

Vagrant.configure(2) do |config|
  config.vm.define "controller" do |node|
        node.vm.box = "centos6.7"
        node.vm.hostname = "ansibletest"
        node.vm.network :private_network, ip: "192.168.100.50"
        node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2250
  end
  config.vm.provider "virtualbox" do |vb|
   vb.gui = true
   vb.memory = "1024"
  end
  config.vm.provision "shell", inline: <<-SHELL
    echo 'hello vagrant!!'
    yum -y install ansible
    cd /vagrant; ansible-playbook git.yml
  SHELL
end

playbookの用意

次にplaybookを用意します。このplaybookを[vagrant up]時に実行するようにVagrantfileに記述しています。このファイルをVagrantfileと同じディレクトリに配置しておきます。

---
 - hosts: 127.0.0.1
   tasks:
   - name: gitのインストール
     yum : name=git state=present

それでは仮想マシンを作成してみます。

C:\Users\user\Desktop\ansible+vagrant>vagrant up

仮想マシンの作成が完了したらSSHでログインしgitコマンドがインストールされているかを確認します。

[vagrant@ansibletest ~]$ which git
/usr/bin/git

インストールされていました。[ansible-playbook]コマンドの実行に成功したようです。Vagrantfileでは[Shellプロビジョナ]ではなく、[ansible_localプロビジョナ]を利用する方法もあるそうです。

いろいろと方法を試してみたいと思います。