Vagrantfileテンプレート

環境が変わっても、Vagrantの使い心地が変わらないようにメモ。

VagrantPlugin

  • vagrant-vbguest
  • vagrant-winnfsd
vagrant plugin install vagrant-vbguest vagrant-winnfsd

Vagrantfile

#############################################
# Vagrantfile [Example CentOS6.5]
#############################################
Vagrant.configure("2") do |config|
  config.vm.box = "example-centos65";
  config.vm.box_url = 'https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box';

  # 初回起動時のプロビジョニング設定(shellscript/ansible/chef/ファイル転送とか色々ある)
  # 後述のprovision.shを実行するやつ
  config.vm.provision :shell, path: "provision.sh", privileged: true

  config.ssh.username = "root";
  config.ssh.password = "vagrant";

  config.vm.synced_folder ".", "/vagrant", disabled: true
  # config.vm.synced_folder 'C:/hoge/data/source/web', '/var/www/html/', type: "nfs"

  config.vm.network "forwarded_port", guest: 80, host: 80
  config.vm.network "forwarded_port", guest: 443, host: 443
  config.vm.network "forwarded_port", guest: 5432, host: 5432
  config.vm.network "forwarded_port", guest: 8080, host: 8080
  config.vm.network "forwarded_port", guest: 9000, host: 9000

  config.vm.network "private_network", ip: "192.168.56.10"
  # config.vm.network "private_network", type: "dhcp"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = 1024; # メモリ容量(MB)
    vb.cpus = 2;      # CPU数
    vb.gui = false;   # falseだとヘッドレス
    vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

provision.sh

プロビジョニング(初回起動時に実行される)用のシェルスクリプト。Vagrantfileのconfig.vm.provision

 config.vm.provision :shell, path: "provision.sh", privileged: true

で指定したファイルが実行されるので、Vagrantfileと同じディレクトリに置いておけばOK。

以下の例はboxに対して以下の処理を行っている。(CentOS6.5のbox向けなので注意)

  • SELinuxの無効化
  • iptablesの無効化
  • システム時刻のタイムゾーンをJSTに変更
  • yumのremiリポジトリを登録
  • yum updateでパッケージ最新化
  • 再起動
  • ※その他、ミドルウェアを入れたりすることも可能

今更Chefを覚える気力ないので、複雑なことをやらない限りはシェルスクリプトでゴリゴリしてもよいと思う。

#!/bin/bash

# disable SELinux
sed -ie 's/^SELINUX=.\+$/SELINUX=disabled/g' /etc/sysconfig/selinux

# disable iptalbes
service iptables stop
chkconfig iptables off

# set Timezone of SystemClock
cat << TIME > /etc/sysconfig/clock
ZONE="Asia/Tokyo"
UTC="false"
TIME
source /etc/sysconfig/clock
/bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

# add yum repository [remi]
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sed -i -e "s/^enabled=1/enabled=0/g" /etc/yum.repos.d/remi.repo

# update all packages
yum update -y
reboot

コマンドのショートカット

一発でvagrantのディレクトリをカレントディレクトリにしてコンソールを開くやつ。地味便利。

以下のようにショートカットのパスを書き換えてあげればよい。

  • GitBashの場合
    "C:\Program Files\Gitgit-bash.exe" "--cd=C:\vm\vagrant"
  • コマンドプロンプトの場合
    cmd.exe /s /k pushd C:\vm\vagrant

 

3 Comments

コメントを残す

メールアドレスが公開されることはありません。