Vagrant
仮想マシン (バーチャルマシン) をプログラマブルに作成/破棄できるツールです。
インストール
homebrew-caskを使用しました。
brew cask install vagrant
インストーラは[Vagrant公式サイト]からダウンロードできます。
[Vagrant公式サイト]: http://www.vagrantup.com/
仮想化ソフトウェア
仮想化ソフトウェアはVirtualBoxを使用しました。
インストール
こちらもhomebrew-caskを使用しました。
インストーラは[VirtualBox公式サイト]からダウンロードできます。
[VirtualBox公式サイト]: https://www.virtualbox.org/
brew cask install virtualbox
Chef
物理、仮想、クラウドといったさまざまな大きさのインフラに対して、サーバやアプリケーションの展開を容易にするための自動化フレームワークです。
インストール
curl -L https://www.opscode.com/chef/install.sh | sudo bash
chef-solo
chefに同梱されている、単体でサーバー構築・管理を自動化するツールです。
サーバー構築・管理を自動化するツールをプロビジョニングツールと呼びます。
knife
Chefレポジトリを操作するためのツールです。
knife solo
ローカルで作ったレシピをリモートにsyncしてリモート側でchef-soloを実行するknifeのプラグインです。
###インストール
/opt/chef/embedded/bin/gem install knife-solo --no-ri --no-rdoc
Vagrant plugin
vagrant-omnibus
仮想マシンのChefのインストール状況を確認して、自動的にインストールするプラグインです。
インストール
vagrant plugin install vagrant-omnibus
vagrant-vbguest
仮想マシンがVirtualboxの場合、仮想マシンのVirtualbox-guest-addtionのインストール状況を確認して、自動的にインストールするプラグインです。
インストール
vagrant plugin install vagrant-vbguest
vagrant-vbox-snapshot
仮想マシンのスナップショットを管理するプラグインです。
インストール
vagrant plugin install vagrant-vbox-snapshot
使い方
スナップショットの取得
vagrant shnapshot take [vm-name] <SNAPSHOT_NAME>
スナップショットの一覧表示
vagrant snapshot list
直前のスナップショットの復元
vagrant snapshot back
任意のスナップショットの復元
vagrant snapshot go [vm-name] <SNAPSHOT_NAME>
任意のスナップショットの削除
vagrant snapshot delete [vm-name] <SNAPSHOT_NAME>
Berkshelf
Cookbookとその依存関係の管理を行うツールです。
インストール
/opt/chef/embedded/bin/gem i berkshelf --no-ri --no-rdoc
Vagrant起動
box
Bentoプロジェクトから選択します。
https://github.com/opscode/bento
repository作成
opscode-centos-6.5を使用します。
mkdir project-name
cd project-name
vagrant init opscode_centos-6.5_chef-provisionerless http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box
/opt/chef/bin/knife solo init .
cookbook
gitのサードパーティcookbookを指定します。
Berkshelf
source "https://api.berkshelf.com"
cookbook 'git'
cookbookダウンロード
cookbooksディレクトリが存在するとダウンロード出来ないので、削除してダウンロードします。
rm -fr cookbooks
/opt/chef/embedded/bin/berks vendor cookbooks
Vagrantfile
vagrant-omnibus
vagrant-omnibusでインストールするchefのバージョンを指定します。
ここでは最新バージョンを指定します。
config.omnibus.chef_version = :latest
recipe追加
gitをインストールするようVagrantfileに追記します。
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = ["cookbooks", "site-cookbooks"]
chef.add_recipe "git"
end
仮想マシンの設定
memoryの設定を行います。
config.vm.provider :virtualbox do |vb|
vb.gui = false
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
起動
vagrantを起動します。
vagrant up
仮想マシンに接続
vagrant ssh
もしくは
ssh vagrant@127.0.0.1 -p 2222
password: vagrant
リンク
Vagrant初期設定
自分で作成したcookbookをVagrantで適用する
VagrantでCentOS外部レポジトリの追加
Vagrant仮想マシン上にMySQL5.5インストール
Vagrant仮想マシン上のMySQLに接続
Vagrant仮想マシン上にredis2.8.12インストール