Vagrantハンズオン
簡単に言うと仮想化ソフトウェアパッケージ(VirtualBox、VMware、EC2、LXCなど)の操作をCLIから便利に操作するツール。
個人的には、「GUIな人にはあまり利便性や恩恵はわからないかも」と思っています。
- CLIから仮想化環境を操作できる
- boxという仮想マシンのイメージファイルを抽象的に操作できる機構があり、boxからの新規環境の構築が楽、早い
- ChefやAnsibleなどのプロビジョニングツールとの連携ができる
VagrantのページからVagrant for Windowsをダウンロードしインストールします。
以下は、基本的に参考URLの流れに沿って行います。(一部省略しています)
VagrantのページからVagrant for Windowsをダウンロードしインストールします。
VagrantのインストールでMinttyもインストールされています。
C:\HashiCorp\vagrant\embedded\bin\mintty.exe
のショートカットを作成し、
そのショートカットのリンク先(T)
に/bin/bash --login
を追加します。
以降のターミナル操作は全てMintty経由で行います。
Vagrantに同梱されているMinGWを最新のものにします(主にmingw-get
コマンドを利用するため)。
MinGWをインストールし、 Vagrantに同梱されているMinGWを上書きします
$ cp -r /c/MinGW/. /c/HashiCorp/vagrant/embedded/
$ cd /c/HashiCorp/vagrant/embedded/var/lib/mingw-get/data/
$ cat defaults.xml|(rm defaults.xml;sed 's/%R\/msys\/1.0/\/HashiCorp\/vagrant\/embedded/g' > defaults.xml)
$ cat profile.xml|(rm profile.xml;sed 's/%R\/msys\/1.0/\/HashiCorp\/vagrant\/embedded/g' > profile.xml)
mingw-get
コマンドで必要なパッケージをインストールします
$ mingw-get update
$ mingw-get upgrade
$ mingw-get install msys-openssl msys-openssh
$ mingw-get install msys-vim
Vagrantは仮想マシンの雛形としてboxという機構を持っています。 例えば、VirtualBox(GUI)でCentOSをインストールする場合は
- 新規仮想マシンを作成
- CentOSのISOファイルをマウントなどしてCentOSをインストール
というフローですが、Vagrantの場合は
- あらかじめCentOSのboxをVagrantに追加
- 追加したboxを雛形に利用して仮想マシンを作成(早い)
というフローになります。両者の2の処理を比べると、Vagrantのほうが既に雛形がある分、圧倒的に早いわけです。
まずboxを追加します。今回はRyuzee.comよりCentOS6.4のboxを取得します。
$ vagrant box add centos-6.4 https://dl.dropboxusercontent.com/u/428597/vagrant_boxes/CentOS-6.4-x86_64-ja.box
centos-6.4
の部分は自由に決めてもらって構いません。boxを指定するときの名前になります。
有志の人が広く公開しています。注意しなければならないのは公式のものではないことです(また、公式のものはありません)。なので、その仮想イメージに何が入っているのかは作った人にしかわかりません。注意が必要です。
まずは仮想マシンの設定を配置するディレクトリを作成します。
$ cd ~/
$ mkdir -p vbox/techtouch
$ cd vbox/techtouch
Vagrantはboxを雛形に仮想マシンを作成しますが、そのboxをどのように設定して起動するかはVagrantfile
という設定ファイルで行います。
まず、Vagrantfileを作成します
$ vagrant init
ディレクトリ内にVagrantfile
が作成されていますので、こちらを修正します。今回はcentos-6.4
のboxを利用し、またネットワークはPublic Networkにします。
以下の部分を修正してください
config.vm.box = "centos-6.4" # line 10
config.vm.network :public_network # line 28
これで設定は完了です。仮想マシンを起動しましょう。
$ vagrant up
$ vagrant ssh
Windowsにおいては通常のVagrantにおけるログイン方法であるvagrant ssh
コマンドがつかえないので、/.ssh/config
ファイルとssh
コマンドを使います。
$ mkdir ~/.ssh
$ vagrant ssh-config --host techtouch >> ~/.ssh/config
$ ssh techtouch
$ vagrant halt
$ vagrant destroy --force
仮想マシン単位で、ある時点までロールバックできるような機能を追加します。これによって何度でも環境設定のテストなどが可能になります(OSの再インストールが不要)
$ vagrant plugin install sahara
$ vagrant sandbox on
$ vagrant sandbox rollback
$ vagrant sandbox commit