Vagrant生活始めました
Vagrant。2013年に単語を聞きまくっていたのに手をつけていなかったものをようやく触り始めました。
とりあえず、登場してくるものの概要を理解。
VirtualBox | 仮想マシンを立ち上げるソフト(環境)。他にはVMWare、AWS。 |
---|---|
Vagrant | 仮想マシンを立ち上げるソフトのCLIラッパーのようなもの。 |
Chef | 仮想マシンのプロビジョニングツール。他にはPuppet、Ansible、普通のShellスクリプトなど。 |
Box | 仮想マシンのテンプレート。 |
Vagrantfile | 仮想マシンの構築設定ファイル。 |
Berkshelf | Chefのパッケージ管理ツール(yum, apt-get, bundle, Composerのようなものっぽい) |
VirtualBoxとVagrantをインストール
Mac(10.9.1)にVirtualBoxとVagrantをダウンロードしてインストーラでインストールしました。
boxの追加
有志の方々がつくられているVagrantbox.esにいろいろアップされています。
CentOS6.4にしました。
# vagrant box add title url の形式 vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box
追加したboxファイルは~/.vagrant.d/boxes/に入っています。
boxの操作
# 一覧 vagrant box list # 削除 vagrant box remove 名前
boxを使って仮想マシンを起動
mkdir vm cd vm vagrant init centos64 vagrant up
実際にVirtualBoxを起動してみると、起動しているのが分かります。
仮想マシンの操作
vagrant upしたディレクトリ内で実行します。
# 確認 vagrant status # 停止 vagrant halt # 一時停止 vagrant suspend # 再開 vagrant resume # 破棄 vagrant destroy # 設定再読込 vagrant reload
IPアドレスの固定
Vagrantfileの以下の場所のコメントを外します。
config.vm.network :private_network, ip: “192.168.33.10"
設定を再読込します。
vagrant reload
Saharaプラグイン
Vagrantのプラグインで、Sandboxモードという仕組みが使えるようになります。
これはRDBMSのトランザクションのようなものです。
コミットするまで設定が反映されないのでいろいろやって失敗したらロールバック、
これでよければコミット、ということができるようになるようです。
# プラグインのインストール vagrant plugin install sahara # プラグインの一覧 vagrant plugin list # プラグインのアンインストール vagrant plugin uninstall sahara
# Sandboxモード開始 vagrant sandbox on # 状態確認 vagrant sandbox status # ロールバック vagrant sandbox rollback # コミット vagrant sandbox commit # Sandboxモード終了 vagrant sandbox off
Packer
boxファイルを自分で作りたい場合、Vagrant作者のPackerを使うと良いみたいです。
OSのイメージファイルからboxファイルを作成できます。
参考にさせていただいたサイト
- [速報]Packerでさまざまな仮想マシンのテンプレートを作成する | Ryuzee.com
- Building Vagrant Machines with Packer: A step-by-step Guide | via @codeship
- VirtualBox - PackerでVagrant用のBoxを作成したときのメモ - Qiita
Pakerのインストール
Downloads - Packerからダウンロードしてパスを通せばオッケーみたいですが、
brewの方が楽だったので、brewでインストールしました。
brew tap homebrew/binary
brew install packer
shiguredo/packer-templates
今回Ubuntuが使いたくてjsonファイルを書いていったのですが、たくさん設定があって大変...。
心が折れそうだったとき、時雨堂Packerテンプレートに出会うことができたので、使わせていただきました。
最高です。本当にありがとうございます。
shiguredo/packer-templates · GitHub
git clone https://github.com/shiguredo/packer-templates cd packer-templates/ubuntu-13.10/ packer build -only=virtualbox-iso template.json vagrant box add ubuntu-13.10 ubuntu-13-10-x64-virtualbox.box
これで楽に仮想マシンが作れるようになったので、次はChefだなー!