ansible_localでvagrantの開発環境構築をしてみた

f:id:ihatov08:20160830221440j:plain

インフラ構築学習の第一歩です。

インフラ構築は頼りきり

今まではすでに用意されているVagrantfileansible playbookを用いて、開発環境を行ってきました。でも自分でできるようにならなきゃアカン!ということでvagrant initから開発環境を構築してみました。

ansible_localを使ってみる

さらに、今回はhostにインストールしたansibleではなく、guestにインストールしたansibleを用いて構成管理をするansible_localを使ってみました。
これを使えばhostにansibleは必要ありません。
ただ、hostにvagrantのプラグインが必要みたいです。

$ vagrant plugin install vagrant-vbguest

手順

vagrant ファイルを作成します。

$ vagrant init bento/centos-6.7

作成されたvagrantfileを編集します。

# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
config.vm.box = "bento/centos-6.7"
# boxの名前
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder ".", "/vagrant"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
config.vm.provision :ansible_local do |ansible|
ansible.playbook = 'provision.yml'
ansible.inventory_path = 'inventory'
ansible.limit = 'all'
ansible.verbose = true
ansible.install = true
end
end

ansible_localの設定

ansible_localの設定をしていきます。
vagrantの公式サイトに詳しく載ってました!

www.vagrantup.com

ansible.cfg

[defaults]
host_key_checking = no
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes

inventoryファイルを作成していきます。ファイル名はなんでもいいんですが、vagrantfileに記述したipとansible.inventory_path = 'inventory'を対応させてください。

192.168.33.10 ansible_connection=local

playbookを書いていきます。これもvagrantfileと対応させてください。
今回は最小限のplaybookになってます。

provison.yml

---
- hosts: all
become: yes
user: vagrant
tasks:
- name: yum update
yum: name=* state=latest

開発環境を構築していく

これで準備が整ったので開発環境を作っていきます。

vagarnt up

mountエラーが起きてしまうので、対処していきます。(これ毎回起きるんだけどどうにかならんかな?)

www.tom08.net

vagrant halt
vagrant up

playbookが動作していることを確認してください!
成功しました!

あとはplaybookさえ書ければOKなはず

最低限のことはできたので、あとはplaybookでRailsの環境構築ができればOKなはずです!

サンプル

今回の内容をgithubにもupしたのでやってみてください!
vagrant upとmountエラー解消をやればOKなはずです!

github.com

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です