Vagrantは仮想環境構築ツール。VirtualBoxなどの仮想化ソフトウェア上で、仮想マシンの作成や管理を自動的に行うことを可能にする。具体的には、仮想マシン環境をテンプレート化しておき、そのテンプレートから仮想マシン環境を簡単なコマンドを使って構築できるようにしている。このテンプレートをBoxと呼び、ネット上でさまざまなOSのBoxが配布されている。
以下にVagrantをインストールして、仮想マシンでprecise32(Ubuntu)を実行するまでの手順を記す。
公式サイト
Vagrant
http://www.vagrantup.com/
インストール
VirtualBoxがセットアップされている前提。(VirtualBoxをセットアップする)
1. ダウンロードする。
公式サイト
→ DOWNLOADS
→ WINDOWS Universal (32 and 64-bit)
vagrant_1.6.5.msi (161,420KB)
2. インストールする。
オプションはデフォルトのままにしておく。
インストール先
C:\HashiCorp\Vagrant
3. 再起動
インストール完了時に再起動を促される。
Boxの取得
公式サイト
→ DOCUMENTATION
→ Getting Started
→ Boxes
> vagrant box add hashicorp/precise32 ==> box: Loading metadata for box 'hashicorp/precise32' box: URL: https://vagrantcloud.com/hashicorp/precise32 ==> box: Adding box 'hashicorp/precise32' (v1.0.0) for provider: virtualbox box: Downloading: https://vagrantcloud.com/hashicorp/boxes/precise32/version s/1/providers/virtualbox.box box: Progress: 100% (Rate: 565k/s, Estimated time remaining: --:--:--) ==> box: Successfully added box 'hashicorp/precise32' (v1.0.0) for 'virtualbox'! > vagrant box list hashicorp/precise32 (virtualbox, 1.0.0) >
すると作業ディレクトリが作成される。
C:\Users\ユーザ名\.vagrant.d
そしてVagrant CloudからBoxがダウンロードされて以下ディレクトリに格納される。
C:\Users\ユーザ名\.vagrant.d\boxes
ダウンロードされるBoxの所在
hashicorp/precise32
https://vagrantcloud.com/hashicorp/boxes/precise32
A standard Ubuntu 12.04 LTS 32-bit box.
This is a simple 32-bit Ubuntu 12.04 LTS box that has Chef/Puppet pre-installed.
Boxの配布元
Vagrant Cloud
https://vagrantcloud.com/
仮想マシンの初期化と起動
1. 仮想マシンのディレクトリを作成する。
> cd c:\Temp > mkdir precise32 > cd precise32
2. 仮想マシンを初期化する。
> vagrant init hashicorp/precise32 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. >
3. 仮想マシンを起動する。
> vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Importing base box 'hashicorp/precise32'... ==> default: Matching MAC address for NAT networking... ==> default: Checking if box 'hashicorp/precise32' is up to date... ==> default: Setting the name of the VM: precise32_default_1413056924902_33338 ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2222 (adapter 1) ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Connection timeout. Retrying... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... default: The guest additions on this VM do not match the installed version of default: VirtualBox! In most cases this is fine, but in rare cases it can default: prevent things such as shared folders from working properly. If you see default: shared folder errors, please make sure the guest additions within the default: virtual machine match the version of VirtualBox you have installed on default: your host and reload your VM. default: default: Guest Additions Version: 4.2.0 default: VirtualBox Version: 4.3 ==> default: Mounting shared folders... default: /vagrant => C:/Temp/precise32 >
Virtualboxマネージャで仮想マシンが実行中であることが確認できる。
sshで仮想マシン(Ubuntu)に接続する
> vagrant ssh `ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed? Try installing Cygwin, MinGW or Git, all of which contain an SSH client. Or use your favorite SSH client with the following authentication information shown below: Host: 127.0.0.1 Port: 2222 Username: vagrant Private key: C:/Users/ユーザ名/.vagrant.d/insecure_private_key >
Windowsにはsshが無いので、上に表示されたホスト情報を使ってTera Termで接続してみる。