公式の 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 suspend
→vagrant up
- Halting: 仮想マシンをシャットダウンする
vagrant halt
→vagrant up
- Destroying: 仮想マシンを削除する。共有フォルダ以外の作業内容は失われる。
vagrant destroy
→vagrant 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
おわりに
いくつも参考サイトを見ましたけれども、結局本家サイトのチュートリアルで勉強いたしました。
英語でしたけれども、英語に馴染む良い機会でもありましたの♪
以上です。