読者です 読者をやめる 読者になる 読者になる

Vagrantのちょっと応用的な使い方

Vagrant
Vagrant

Vagrantの応用編。


共有フォルダ

僕の場合、Windows7VirtualBoxVagrantをインストールしている。 この時、『myCentOS64』というVMを作成したとすると、ローカル(Windows7)フォルダとVMCentOS)内ディレクトリはファイル共有されている。 |Windows7のフォルダ|VM(CentOS)のディレクトリ| |-|-| |C:\Users\<ユーザ名>\myCentos64 |/vagrant|

だので、VM内でWebサーバ(httpd)が稼働している場合、リンクを作っておけば、ローカルファイルを編集することでWebサーバへすぐに反映することができる。

sudo ln -fs /vagrant /var/www/html

Provisioning(プロビジョニング)

Vagrantfileを利用することでVagrantの機能だけを使って、作成するVMのプロビジョニングをすることができる。

# Vagrantfile
  config.vm.provision :shell, :path => "provision.sh"

Vagrantfile内で指定したスクリプトprovision.shは、/Vagrant下(ローカルのVMフォルダ)においておけばO.K.

# provison.sh
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on

プロビジョンを反映したい場合、専用コマンドもある。

vagrant provision

Boxの作成

自分専用のBox(package)を作成することもできる。

> vagrant package -> package.boxが生成する

> dir
2015/05/10  10:28    <DIR>          .vagrant
2015/05/10  10:42                17 index.html
2015/05/10  11:21       309,427,214 package.box ← これ
2015/05/10  11:10                75 provision.sh

> vagrant box add my_box package.box -> 作成したBoxをVagrantに登録、package.boxは破棄しても良い

Plugin(プラグイン

Vagrant拡張機能としていくつかのPluginがある。

> vagrant plugin -h
Usage: vagrant plugin <command> [<args>]

Available subcommands:
     install
     license
     list
     uninstall
     update

For help on any individual command run `vagrant plugin COMMAND -h`

> vagrant plugin install sahara

sahara plugin

Pluginの一つ、sahara pluginは、sandbox機能を使うことができる。

> vagrant sandbox on

> vagrant sandbox status

> vagrant sandbox rollback -> VM構成変更を元に戻す

> vagrant suspend -> suspendしないとcommitが遅い
 
> vagrant sandbox commit -> 変更をコミット

> vagrant sandbox off

他にも色々なpluginが存在する。 vagrantの便利に使えるプラグイン6選 - Qiita

ドットインストールさん、ありがとう。