ao-log

インフラ系ITエンジニアのメモ帳です。

Windows 上で Vagrant を用いて仮想ゲストを起動するところまで

Chef の情報を得るために、伊藤直也さんの『入門Chef Solo (Amazon.co.jp: 入門Chef Solo - Infrastructure as Code eBook: 伊藤直也: Kindleストア)』を読んでいると Vagrant というソフトの情報がありました。

動作検証用の仮想ゲストをお手軽操作でさくっと作れるソフト。プラグインを使えばスナップショットも取れるので、試行錯誤したいときに便利そう! 実機で検証している場合、再起動が入るだけで間が空いてテンポが悪くなるので、Vagrant はすごくありがたいものに見えました。OpenStack のようなプライベートクラウド構築系のソフトで、検証用ノード作成も考えたのですが、ちょっと大げさすぎると思っていました。


さっそく自分のマシンに入れてみるのですが、どうも各所で得た情報通りさくっといかず。理由は、私のマシンが Windows だったから。特に SSH クライアントが入っていない点が Linux, Mac と異なるところですね。

備忘録までに、仮想ゲストの起動までの手順を残しておきます。


(1) Virtual Box のインストール

※ ちなみに、Virtual Box 4.2.0 で検証していると、後の仮想ゲストの起動時にエラー終了したので、4.2.16 に update しています。

(2) Vagrant のインストール

公式サイトから、インストーラをダウンロードし、インストール(Vagrant_1.2.7.msi
http://downloads.vagrantup.com/

(3) 使用する仮想ゲストの雛形の選定

仮想ゲストは、まずはお試しということで、CentOS 32bit を選定。
powershell を起動し、次のコマンドで CentOS 32bit の box をダウンロードして追加。

$ vagrant box add centos_32 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-i386-v20130427.box
Downloading or copying the box...
[0KExtracting box...ate: 83545/s, Estimated time remaining: --:--:--)
Successfully added box 'centos_32' with provider 'virtualbox'!

仮想ゲストには様々な OS を使用できます。次のサイトでは OS の一覧を確認でき、ダウンロード URL をコピーできます。

A list of base boxes for Vagrant - Vagrantbox.es

利用可能なボックスを確認すると、確かに追加されています。

$ vagrant box list
centos_32 (virtualbox)

(4) セットアップ

公式ドキュメントの通り、セットアップを進めていきます。

http://docs.vagrantup.com/v2/getting-started/project_setup.html

$ mkdir centos_32
$ cd centos_32

vagrant init すると「Vagrantfile」というファイルが生成されます。

$ vagrant init centos_32
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」中の、次の行のコメントを解除しておきます。
この場合、仮想ゲストの IP アドレスは 192.168.33.10 になります。

config.vm.network :private_network, ip: "192.168.33.10"

(5) 仮想ゲストの起動

いよいよ、vagrant up で仮想ゲストを起動。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'centos_32'...
[0K[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[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 VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant

(6) ssh 接続

vagrant ssh で仮想ゲストに接続したいですが、Windows には素で ssh クライアントが入っていないので… putty で接続することにします。

(6.1) 次の URL から、puttygen.exe と putty.exe をダウンロード。

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

(6.2) PPK 鍵の作成

ホームディレクトリ下に「.vagrant.d」というフォルダがあります。フォルダ内に、「insecure_private_key」をいうファイルがあるので、 puyttygen で読み込み、「Save private key」から、適当な名前で PPK 鍵を保存。

(6.3) putty から ssh 接続

putty を起動し、接続先 IP アドレス「192.168.33.10」、ポート番号「2222」を指定し、(6.2) で作成した PPK 鍵を指定。ログイン名「vagrant」を入力し、ログイン成功です。

login as: vagrant
Authenticating with public key "imported-openssh-key"
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$