27
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant+VirtualBoxによる仮想環境の構築

Last updated at Posted at 2014-06-02

1.初めに

最近、Chefによる開発環境の構築を行なう機会がありましたので
自分自身の備忘録も兼ねて記事を投稿させていただきます。

  • 対象読者:Chefに興味のある初心者
  • 動作検証端末:OS X Marverics

複数稿に分けて書いていきますが最終的には、Vagrant+VirtualBoxで
構築した仮想環境上にChef-Soloを使用してnginx+PHPの環境を構築する、
という所まで書き上げる予定です。

まずは「Vagrant+VirtualBoxによる仮想環境の構築と簡単な動作確認」まで。
(本稿ではchefは出てきません。)

2.VirtualBoxのインストール

まず、以下のURLからインストーラをダウンロードします。
 https://www.virtualbox.org

左メニューの「Download」より、自身の環境にあったものをダウンロードして
インストールします。

3.Vagrantのインストール

次に、以下のURLからインストーラをダウンロードします。
 http://www.vagrantup.com

上部メニューの「Download」より、自身の環境にあったものをダウンロードして
インストールします。

ターミナルからvagrant --versionと入力してバージョン情報が出力されれば成功です。
私が検証したときには以下のようになりました。

$ vagrant --version
Vagrant 1.6.2

4.ゲストマシンの構築から破棄まで

Vagrantで使用したいOSのイメージを取得します。
このOSのイメージをVagrantでは「box」といいます。
boxは、自分で作ることも可能ですがインターネットに公開されているものがありますので、
これを使わせていただきます。

 http://www.vagrantbox.es

4.1.boxの追加

vagrant box add {title} {url}でboxを追加します。
以下のように入力し、CentOS6.5のOSイメージをaddします。

$ vagrant box add github-centos-6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
==> box: Adding box 'github-centos-6.5' (v0) for provider: 
    box: Downloading: https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
==> box: Successfully added box 'github-centos-6.5' (v0) for 'virtualbox'!

成功しました。

vagrant box listでboxが追加されていることを確認します。

$ vagrant box list
github-centos-6.5 (virtualbox, 0)

追加したboxが現れました。

4.2.初期化

追加したboxを使用してvagrant init {title}で初期化します。

$ mkdir vagrant_getting_started
$ cd vagrant_getting_started
$ vagrant init github-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という設定ファイルが作られますが、今は放置します。

4.3.起動

そして、vagrant upで、起動します。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'github-centos-6.5'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_getting_started_default_1401622241313_3001
==> 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: Mounting shared folders...
    default: /vagrant => /Users/nakagawadaisuke/vagrant_getting_started

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`.

無事に起動したようです。

4.4.SSHアクセス

vagrant sshでゲストマシンへSSHアクセスしてみましょう。

$ vagrant ssh
[vagrant@vagrant-centos65 ~]$ cat /etc/redhat-release 
CentOS release 6.5 (Final)

構築した仮想環境へログインできました。
ちなみにWindowsの場合はPuTTY等でログインする必要があります。

4.5.サスペンド、レジューム

vagrant suspendと入力することでサスペンド状態にできます。

$ vagrant suspend
==> default: Saving VM state and suspending execution...

$ vagrant status
Current machine states:

default                   saved (virtualbox)

To resume this VM, simply run `vagrant up`.

サスペンド状態にすると、その時点での状況を保存して停止します。
vagrant resumeと入力するサスペンドした時点の状況で再び起動します。

$ vagrant resume
==> default: Resuming suspended VM...
==> 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: Machine booted and ready!

$ 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`.

runningの状態に戻りました。
vagrant upでも、同様に起動できます。

4.6.停止

停止は、vagrant haltです。

$ vagrant halt
==> default: Attempting graceful shutdown of VM...

$ vagrant status
Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

停止してpoweroff状態になりました。
また、ゲストマシンを起動する際には、vagrant upで起動できます。

4.7.破棄

vagrant destroyでゲストマシンを破棄します。
このとき本当に削除するかの確認が入りますが、vagrant destroy --forceとすることで確認を省けます。
ゲストマシンを破棄すると仮想ハードディスクは削除されます。

$ vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying VM and associated drives...

$ vagrant status
Current machine states:

default                   not created (virtualbox)

The environment has not yet been created. Run `vagrant up` to
create the environment. If a machine is not created, only the
default provider will be shown. So if a provider is not listed,
then the machine is not created for that environment.

not created状態に遷移しました。
こちらもvagrant upで再びゲストマシンの構築を行なえます。

5.コマンドのまとめ

本稿で使用したコマンドについて、以下にまとめます。

コマンド 説明
vagrant box add {title} {url} boxの追加
vagrant box list addしたboxの一覧
vagrant init {title} 初期化、Vagrantfile作成
vagrant up ゲストマシンの起動
vagrant status ゲストマシンの状態表示
vagrant ssh ゲストマシンへのSSH接続
vagrant suspend ゲストマシンのサスペンド
vagrant resume ゲストマシンのサスペンドからの復帰
vagrant halt ゲストマシンの停止
vagrant destroy ゲストマシンの破棄

6. 次回予告

とりあえず簡単ではありますがVagrant+VirtualBoxによる仮想環境の構築まではできました。
chefに興味のある方を対象に書いた記事でしたがchefには触れず終いなのが引掛かりますが。。。
次回は、chefを使用したプロビジョニングとしてApacheの導入自動化をやりたいと思います。(予定)

27
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?