こんにちは。puppet派からchef派になりました@srockstyleです。
先日Vagrant&Chefを検証&現場投入したんですがいいですね。組み合わせて使うと効果倍増です。
というわけで始めるまでの手順を書いておきます。
Vagrantが向いているひと
いろいろありますが向いているのは以下のようなひとです。
- 本番と開発環境の差分をなくしたい
- 本番にあげたらうごかない!をなくしたい
- 気軽に壊したりできる環境が欲しい
これ、壊したりできる環境が欲しいって、ひょっとしてvagrantってLinux系OS初心者向きなんじゃん? とか思ったりします。コマンドラインが怖い、という人が結構多いそうなので、初心者向けのセミナーでVagrantいれてやってみるといいかもですね。
まあそれまでのハードルが初心者向けではない気もしますが。とりあえずいってみましょう。このエントリの通りやればとりあえずVagrantで仮想マシン作れる程度にはなるはずです。ここでは仮想マシンをVMと読んでいます。Virtual Machineの略ですな。
インストールに必要なものを準備する
ローカルで使うためのインストールにはRubyとVirtualbox系の仮想化ソフトが必要です。僕が初心者だったらこの二つをいれるところで挫折します。
Virtualboxはこちらからダウンロードしましょう。
Rubyは今時はやりのrbenvかrvmですね。僕はrvm派なので
[bash]
$ curl -L https://get.rvm.io | bash -s stable –ruby
[/bash]
とやると安定板とともにrvmが入ります。今後Rubyを始めるひとはこのままつかうのもよいですね。
インストール
さて、Vagrantのインストールです。
[bash]
$ gem install vagrant
[/bash]
以上です。早いですね。
初期設定
さて。
そしたら次はVagrantの初期設定しましょ。
Vagrantはboxというものをまず用意します。boxは起動する環境のテンプレートで、これを元に環境をつくったりします。boxはこちらからダウンロードできるので、わざわざ自分で用意しなくても大丈夫です。
せっかくなのでChefが入っているのを選びましょう。僕はCentOS6.4のChefいりx86_64を選びました。
実行するコマンドは以下になります。
[bash]
$ vagrant box add [boxのタイトル/好きな名前] [boxのダウンロード先]
[/bash]
実行すると以下のようにダウンロードが始まります。
[bash]
$ vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
[vagrant] Downloading with Vagrant::Downloaders::HTTP…
[vagrant] Downloading box: http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
[vagrant] Progress: 14% (66783029 / 463447459)
[/bash]
ダウンロードが終わったら、以下のコマンドを実行します。
[bash]
$ vagrant init [立ち上げるVMの名前]
[/bash]
init のあとは任意です。そしたら設定ファイルができますね。設定ファイルは普通に起動するだけではとくにいじることもないので、説明は次回にしますね。
起動
さて、ここまできたらあとは起動ですね。
[bash]
$ vagrant up
[/bash]
これで起動します。SSHログインするときは
[bash]
$ vagrant ssh
[/bash]
でログインします。ログインはvagrantユーザでされますが、sudo がパスワードなしで設定されているのでそのままsudoするとroot権限がとれます。このあたり本番と同期するときは気をつけたほうがいいかもしれませんね。
ログアウトはいつもどおり
[bash]
$ exit
[/bash]
で元のシェルにもどります。
で、ごにょごにょいじって、VMを消したいときは
[bash]
$ vagrant destroy
[/bash]
でVMを消してくれます。消していいかどうか聞いてくるので、そこでそこでYを押しましょう。
まとめ
Vagrantいいですね。これ、僕がサーバエンジニア入ったばかりのときにあればなあ。
VirtualboxのめんどくさいXML書き換えとかしなくて済んだのに、とか思うとね。
長くなったので今日はここまで。次回はChefと組み合わせてvagrant up後の自動化と設定ファイルの編集を行います。