TIL

Today I Learned. 知ったこと、学んだことを書いていく

プロビジョニング - 入門 - Vagrantt

この記事は Vagrantの公式ページの Getting Started- Vagrant をグーグル翻訳したものです。多少、自分なりに再翻訳しています。


さて、私達はUbuntuのベースコピーを実行できる仮想マシンを持っている

ホストマシンからファイルを編集し、それをゲストマシンに同期することができる

webサーバーを使用して、これらのファイルを提供しましょう

SSHでアクセスして、webサーバーをインストールする途中方法がある

Vagrantを使っているユーザーは同じことをしなければならない

代わりに、Vagrantには自動プロビジョニングのサポートが組み込まれています

この機能を使用すると、vagrant upで起動した時に自動的に共有ソフトウェアがインストールされるようになるため、ゲストマシンを繰り返し作成でき、さらにすぐに使えるようになる

Apacheをインストール

シェルスクリプトを使用して、基礎的なプロジェクトのために、Apacheをセットアップする

下記のシェルスクリプトbootstrap.shというファイル名でVagrantfileがあるディレクトリに保存する

#!/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


シェルスクリプトの解説
  • apt-get update: パッケージリストを更新する
  • apt-get install -y apache2: Apache2をインストールする
  • if ! [ -L /var/www ]; then: /var/www がシンボリックリンクではないとき真
  • rm -rf /var/www: /var/www を警告を表示せずに再帰的に削除する
  • ln -fs /vagrant /var/www: /vargrant のシンボリックリンクを /var/www という名前で作成する


次に、マシンを設定するときにこのシェルスクリプトを実行するようにVagrantを設定します

Vagrantfileを次のように編集することで設定できる

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

新たにprovisionの行が追加されている

bootstrap.shを使用して、シェルでマシンのセットアップするようにVagrantに指示している

ここで指定するファイルパスはプロジェクトのルートディレクトリ(Vagrantfileがあるディレクトリ)からの相対パス

準備

すべての設定が終わったらvagrant upでマシンを作成し、Vagrantが自動的にプロビジョンする

シェルスクリプトの出力がターミナルに表示されるはず

ゲストマシンがすでに前の手順で実行されている場合、vagrant reload --provisionを実行する

上記のコマンドにより、仮想マシンがすぐに再起動され、最初のインポートの手順はスキップされる

reloadコマンド

通常、最初にvagrant upを実行した時のみプロビジョンを実行するため、reloadコマンドを実行する

Vagrantの実行が完了すると、Webサーバーが起動して実行される

まだ、自分のブラウザからWebサイトを見ることはできないが、プロビジョニングが動作しているかどうかは、マシン内のSSHからファイルをロードすることで確認できる

$ vagrant ssh
...
vagrant@precise64:~$ wget -qO- 127.0.0.1

なぜ、動作するかというと、上記のシェルスクリプトApacheをインストールし、Apacheのデフォルトのドキュメントルートを/vagrantVagrantのデフォルトの同期フォルダ)に設定したため

いくつかファイルを作成して、ターミナルから見ることができるが、次のステップではブラウザを使用してゲストマシンにアクセスできるように、ネットワークの設定を説明する

もし複雑なプロビジョニングスクリプトの場合、毎回作成するよりも、既にインストールされているカスタムボックスを作成する方が効率がいい
入門ガイドでは詳しく説明しないが、packaging custom boxesで詳しく説明されている

次のステップ

今回は、Vagrant仮想マシンのプロビジョニングに初めて成功した

次回は、ネットワークの設定について学ぶ

次回:ネットワーキング

参考文献

Provisioning - Getting Started - Vagrant by HashiCorp [Ubuntu] apt-get まとめ - Qiita


目次