LoginSignup
22
22

More than 5 years have passed since last update.

Vagrant入門

Last updated at Posted at 2014-09-23

手持ちのPCで開発していくと分けわかんない環境になっていって収集がつかなくなるので開発環境は仮想化しておくとやり直しや同じものを2台用意したりするのがとっても簡単になります。ツールはvagrantを使います。

準備

vagrantを動かすためにはvmwareかvirtualboxのどちらか仮想環境が必要です。今回はvirtualbox

virtualboxインストール

以下からダウンロードしてインストールします

vagrant

vagrantインストール

以下からダウンロードしてインストールします
https://www.vagrantup.com/

centosで開発環境を作ってみる

vagrantは元になるosの雛形を自由に選べます
以下で検索して好きな雛形を見つけてください。
https://vagrantcloud.com/discover/featured

今回はcentosを例にします

初期化

mkdir Vagrant
cd Vagrant
vagrant init chef/centos-6.5

Vagrantfileという開発環境設定ファイルが出来上がります

Vagrantfileを編集

今回は2台分の環境を作成します
Vagrantfileに設定してあげるだけで2台用意できます

  • host 仮想開発環境の親分
  • sandbox 遊び倒して問題があったら気楽に消せる砂場
vi Vagrantfile

config.vm.box = "chef/centos-6.5"の行(13行目あたり)をコメントアウトして以下を追記します

- config.vm.box = "chef/centos-6.5"
+ # config.vm.box = "chef/centos-6.5"

+   config.vm.define "host" do |node|
+         node.vm.box = "chef/centos-6.5"
+         node.vm.hostname = "host"
+         node.vm.network :private_network, ip: "192.168.66.51"
+   end
+
+   config.vm.define "sandbox" do |node|
+         node.vm.box = "chef/centos-6.5"
+         node.vm.hostname = "sandbox"
+         node.vm.network :private_network, ip: "192.168.66.52"
+   end

vagrant 起動!

vagrant up

2台立ち上がったか確認します

$ vagrant status
Current machine states:

host                      running (virtualbox)
sandbox                   running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.

接続確認

vagrant ssh host
vagrant ssh sandbox

確認できたらexitで抜けてくる

sandboxを操作設定

hostからsandboxを操作できるように設定していきます

ssh設定

hostに接続して

vagrant ssh host

ssh設定して

vi .ssh/config
Host sandbox
    HostName 192.168.66.52
chmod 600 .ssh/config
ssh-keygen -t rsa # いろいろ聞かれるが開発環境なので全部エンターでok
ssh-copy-id sandbox
Are you sure you want to continue connecting (yes/no)? yes
vagrant@192.168.66.52's password: #vagrantのパスワードは vagrant

確認

ssh sandbox

接続確認できたらexitしてhostに戻ります

構成管理(ansible)インストール

開発環境を簡単にセットアップできるようにansibleという構成管理ツールを入れます

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh epel-release-6-8.noarch.rpm
sudo yum -y install ansible
ansible --version # 確認

設定ファイルを作成

mkdir ansible
cd ansible
vi hosts # ansible対象環境の設定
[sandbox]
192.168.66.52
vi ansible.cfg # ansible設定
~/ansible/ansible.cfg
[defaults]
hostfile = ./hosts

ping確認
pongと返ってくればok!

$ ansible all -m ping
192.168.66.52 | success >> {
    "changed": false,
    "ping": "pong"
}

今回はansibleにはあまり触れてませんがこれを利用してプロジェクトごとに開発に必要なパッケージを設定しておいて別々に構築とかできるようになるので便利です。

vagrant終了

hostからexitで抜けたあと以下のコマンドで2台ともshutdownできます

vagrant halt

まとめ

  • node.js用、solr用などいろいろ開発環境をhostのansibleからインストールできるので便利
  • インストールパッケージを設定ファイルに記述できるので再利用しやすい
  • 以前vagrantを触ったときは手こずった気がしてたが今回はすんなりいった。安定してきたのかな?
  • ansibleもドキュメントが豊富でわかりやすくなってきた。英語だけどねorz http://docs.ansible.com/
  • スナップショット、dockerを利用してもうちょっと便利にしたい
22
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
22