カテゴリー
コンピューター

本家サイトのチュートリアルではじめての Vagrant (Mac で)

公式の Getting Started – Vagrant by HashiCorp をやってみました。

Apache のセットアップを含めた簡単なウェブ開発環境構築の手引となります。

環境

  • MacBook Pro (Retina, 13-inch, Late 2012)
  • OS X 10.11.4 (15E65)
  • Homebrew 0.9.9

0. インストール

vagrant インストールのために Mac のパスワードを求められました。

brew cask install vagrant
brew cask install virtualbox

確認

virtualbox
# VirtualBox マネージャーが立ち上がる
vagrant -v

1. init run。Vagrant をとにかく使ってみる

# 作業場所を作成
mkdir vagrant_getting_started
cd vagrant_getting_started/
# Vagrant 初期化、起動
vagrant init hashicorp/precise64
vagrant up
# 仮想マシンへ接続
vagrant ssh
# 仮想マシンを削除
vagrant destroy

VirtualBox は今後も一度も起動しなくてよかったですの。意識する必要がありませんわ♪

2. プロジェクトセットアップ。Vagrantfile の基礎

# エラーとなるので先ほど init した時に作成されたファイルを削除しておく
rm Vagrantfile 
# カレントディレクトリに Vagrantfile を作成
vagrant init

3. Box 仮想マシンの雛形

# box を追加
# ただし先ほどの init ですでに追加されているため、次のエラーとなる。
# The box you're attempting to add already exists. Remove it before
# adding it again or add it with the `--force` flag.
vagrant box add hashicorp/precise64

追加したBox を Vagrantfile で使用するように記述
config.vm.box のみ変更

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
end

4. vagrant 仮想マシンを起動、接続

vagrant up
vagrant ssh

調子に乗って rm -rf / はしてはいけないそうですの!/vagrant が共有フォルドとなっているため、クライアント側へも影響があり、消えていく、、、らしいですわ。怖いですの><。

5. 共有フォルダ

仮想マシンの /vagrant がクライアントの Vagrantfile のあるディレクトリと共有されます。

$ vagrant up
...
$ vagrant ssh
...
vagrant@precise64:~$ ls /vagrant
Vagrantfile
vagrant@precise64:~$ touch /vagrant/sample
vagrant@precise64:~$ ls /vagrant/
sample  Vagrantfile
vagrant@precise64:~$ logout
Connection to 127.0.0.1 closed.
$ ls
Vagrantfile	sample

もっと詳しくは次のページを参照です♪

6. Provisioning ファイル

Provisioning ファイルに書いた内容が、vagrant up 時に反映されます。

書く内容は、bash のコマンドとなります。

Apache をインストールし、共有フォルダがドキュメントルートとなるように設定いたします。

#!/usr/bin/env bash

apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
  rm -rf /var/www
  ln -fs /vagrant /var/www
fi

Vagrantfile で、シェルを読み込むように記述いたしました。

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.provision :shell, path: "bootstrap.sh"
end

確認

# Provisioning ファイルのリロード
vagrant reload --provision
# Apache の動作確認
vagrant ssh
wget -qO- 127.0.0.1

Apache のテストページのソースコードが表示されました。OK

7. ネットワーク

仮想マシン内部からではなく、ホストのウェブブラウザから Apache のテストページを確認いたします。

ポートフォワーディング設定を行うことで、可能になりますわ♪

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.provision :shell, path: "bootstrap.sh"
end

確認

# Vagrantfile のリロード
vagrant reload
# ホストのウェブブラウザから次の URL で確認
# http://127.0.0.1:8080

仮想マシンの Apache のウェブページが表示されました!

8. Vagrant 環境の共有

今のところ使わないので飛ばしました♪

9. 作業の中断

  • Suspending: 仮想マシンは起動したまま
    • vagrant suspendvagrant up
  • Halting: 仮想マシンをシャットダウンする
    • vagrant haltvagrant up
  • Destroying: 仮想マシンを削除する。共有フォルダ以外の作業内容は失われる。
    • vagrant destroyvagrant up
  • 状態確認コマンド: vagrant status

10. box の削除、Vagrant のアンインストール

# box の一覧確認
vagrant box list
# box の削除
vagrant box remove hashicorp/precise64
# Homebrew で Vagrant と VirtualBox をアンインストール
brew cask uninstall vagrant
brew cask uninstall virtualbox

おわりに

いくつも参考サイトを見ましたけれども、結局本家サイトのチュートリアルで勉強いたしました。

英語でしたけれども、英語に馴染む良い機会でもありましたの♪

以上です。

コメントを残す