今日から始めるVagrant
以前から気になっていたVagrantを試してみる。
環境
OS | version |
---|---|
Mac OS X | 10.8.5 |
準備
はじめに、Vagrantに必要なものをインストールする。
vagrantがインストールされているか確認する。
$ vagrant -v Vagrant 1.3.5
Boxを用意する
第一歩として、boxと呼ばれる仮想マシンのテンプレートを用意する。
boxを用意するには、vagrant box add <box_name> <取得元>
コマンドを使う。
boxはvagrantbox.esから取得できる。
取得したboxは~/.vagrant.d配下にキャッシュされる。
$ vagrant box add centos https://github.com/2creatives/vagrant-centos/releases/download/v0.1.0/centos64-x86_64-20131030.box
尚、<取得元>にはhttpだけでなくローカルパスも指定が可能な模様である。
仮想マシン作成から起動まで
仮想マシンの作成
boxが用意できたら、いよいよVMを作成に入る。
まずは、VM構築用のディレクトリを作成する。
作成後、そのディレクトリへ移動しvagrant init <box_name>
コマンドを実行しVagrantfileを生成する。
$ mkdir mycent $ cd mycent $ vagrant init centos
VMの設定はこのVagrantfileに記述していくようだが、それは一先ず後にする。
起動
Vagrantfileを生成したディレクトリ内でvagrant up
コマンドを実行するとVMを起動することができる。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Booting VM... [default] Waiting for machine to boot. This may take a few minutes... [default] Machine booted and ready! [default] Configuring and enabling network interfaces... [default] Mounting shared folders... [default] -- /vagrant
vagrant status
コマンドを実行しステータスを確認してみる。
$ vagrant status Current machine states: default running (virtualbox) The VM is running. To stop this VM, you can run `vagrant halt` to shut it down forcefully, or you can run `vagrant suspend` to simply suspend the virtual machine. In either case, to restart it again, simply run `vagrant up`.
正常に起動出来ていることが確認できる。
基本コマンドを試す(接続・停止・削除)
接続
vagrantで作成したVMにログインするにはvagrant ssh
コマンドを使う。
※ デフォルトではユーザ名・パスワード共にvagrant
$ vagrant ssh
Windowsでは、vagrant ssh
コマンドがなくPuttyやTeraTermを使ってssh接続する模様。
停止
VMを停止するにはvagrant halt
を使用する。
$ vagrant halt [default] Attempting graceful shutdown of VM...
削除
作成したVMを削除するにはvagrant destroy
を使う。
$ vagrant destroy Are you sure you want to destroy the 'default' VM? [y/N] y [default] Destroying VM and associated drives...
削除はVMのインスタンスを削除するもので、boxを削除するわけでもなく、Vagrantfileも削除するわけではない。その為、素早く同じ環境を構築出来る。
仮想マシンの設定
先ほど、ちょろっと触れたがVMの設定はVagrantfileで行う。
主な設定項目を見てみる。
config.vm.box
VMで使用するboxを指定するconfig.vm.box_url
指定したURLからboxを用意するconfig.vm.network
ネットワークの設定config.vm.provision
VM起動時に実行するものを設定する (ex. chef,puppet等構成ツールを指定する)config.vm.provider
provider(Virtualbox, VMWare)の基本設定を行う(ex. VMへメモリ割当て容量)
ネットワーク設定
Vagrantfile内のconfig.vm.network
を編集し、VMにプライベートネットワークを設定してみる。
初期のVagrantfileでは
config.vm.network :private_network, ip: "192.168.33.10"
がコメントアウトされているので、コメントを外してやる。
そして、vagrant reload
コマンドからVMを再起動させると、プライベートネットワークの設定が完了する。
共有フォルダ
vagrantでは共有フォルダが簡単に扱える。と言うのも、VM(ゲストOS)側の/vagrant
ディレクトリがデフォルトで共有フォルダとして扱えるからだ。
$ cd /vagrant $ ls Vagrantfile
所感
取り敢えず、簡単に環境を構築できて便利。Vagrantfileを共有すれば、開発環境を誰でも再現できていい(実際、github等で公開しているケースも多い模様)。
今回はboxの取得からvagrantの起動・停止等、基礎的な部位を見てきた。
今後はプロビジョニング(chef等と連携)とか試してみる。