みなさんこんにちは。ヒロウミです。
最近勉強をはじめた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プロビジョナ]を利用する方法もあるそうです。
いろいろと方法を試してみたいと思います。