VagrantはVirtualBoxやVMWareで建てた仮想マシンをターミナルから触れる用にするツールです。これを使うことで、MacBook上でCentOS環境のテストすることができます。今回はVirtualBox上でVagrantを動かしていきます。
まずはインストール
インストールはインストーラが用意されているので簡単です。
VagrantはVirtualBox上で動くので、VirtualBoxをインストールしましょう。
https://www.virtualbox.org/wiki/Downloads
次にVagrant本体をインストール
http://www.vagrantup.com/downloads
これで使えるようになっているはずなので、ターミナル上で
vagrant -v
と叩いてみましょう。バージョンが帰ってくれば正しくインストールされています。
boxの登録
同じ環境を複数建てたいことがあるので、VagrantではBoxというものが用意されています。要は、テンプレートみたいなものです。
Vagrant公式のvagrantcloud.com
にいっぱいBoxのファイルがアップロードされています。今回はCentOS6.5を使ってみましょう。
discover boxes
をクリックするといろいろとファイルが出てきますが、CentOS6.5で設定するのでchef/centos-6.5
を選択することにしましょう。
このboxを追加するには
vagrant box add chef/centos-6.5
というコマンドを叩けばOKです。途中でVirtualBoxかVMWareかどっち?と聞かれるので使っている方を答えます。結構時間はかかります。まー、OSをダウンロードしてんだからしょうがないと思っておきましょう。
box: Successfully added box 'chef/centos-6.5' (v1.0.0) for 'virtualbox'!
と出たらうまくいってます。
vagrant box list
と打つとちゃんと追加されていることがわかります。
vagrantの初期化
Vagrantのサーバを建てるために使うフォルダを作っておきましょう。今回は~/vagrant
というフォルダを作業フォルダしようと思います。
mkdir ~/vagrant
さて、いくつもVagrantでは複数のサーバーを同時に管理することができるので、さらにプロジェクトごとにフォルダを作ります。
cd ~/vagrant mkdir test-project
ここまでできたら、いよいよサーバーを作りましょう。
cd test-project vagrant init chef/centos-6.5
これを叩くと次のような文章が出てきます。
A "Vagrantfile" has been placed in this directory. You are now
ready to "vagrant up" your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
"vagrantup.com" for more information on using Vagrant.
一瞬エラーかとドキッとしますが、エラーではなく、「サーバーの設定やらなんやら書いてあるVagrantfileを作ったよ!」と言われているだけです。
Vagrantfileの編集
このままでも起動はできるのですが、折角なのでネットワークへの接続もしておきましょう。作られたVagrantfileを好きなエディタで編集します。
config.vm.network "private_network", ip: "192.168.33.10"
の部分のコメントアウトを外しておきましょう。最近気づいたんですが、このVagrantfileってRubyで書かれてますね。
ここで、VirtualBoxを立ち上げてみると新しくtest-projectという仮想マシンができていることがわかります。
サーバの起動
サーバの起動は簡単です。
vagrant up
以上です。するとサーバの起動が始まります。
ちなみにサーバーを落とすときは
vagrant halt
で落として、この仮想マシンを壊してしまうには
vagrant destroy
です。
起動しているか止まっているか知りたいときは対応するディレクトリ内で
vagrant status
をするとどういう状態か確認することができます。
サーバへのアクセス
これも簡単で
vagrant ssh
とするとvagrantの中身にアクセスできます。
まとめ
あとはサーバーの設定やらなんやらして開発を進めていく感じです。例えば、httpdをインストールしておくと、先ほど、Vagrantfileで設定したipアドレス(http://192.168.33.10)にアクセスするとうまく動きます。このvagrantの設定をするときにAnsibleなどで設定を自動化しておくと、本番環境に移った時にもファイルをアップロードするだけでよくなるので、気分がいいです。
Vagrantはもちろん環境を揃えて開発するという目的が大きいのですが、それだけでなく、初心者がいきなりサーバを借りたりすることをせず、サーバを触りなれるという練習/勉強の目的で導入するのもいいかもしれません。
コメントを残す