プロビジョニング - 入門 - 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のデフォルトのドキュメントルートを/vagrant
(Vagrantのデフォルトの同期フォルダ)に設定したため
いくつかファイルを作成して、ターミナルから見ることができるが、次のステップではブラウザを使用してゲストマシンにアクセスできるように、ネットワークの設定を説明する
もし複雑なプロビジョニングスクリプトの場合、毎回作成するよりも、既にインストールされているカスタムボックスを作成する方が効率がいい
入門ガイドでは詳しく説明しないが、packaging custom boxesで詳しく説明されている
次のステップ
今回は、Vagrantの仮想マシンのプロビジョニングに初めて成功した
次回は、ネットワークの設定について学ぶ
次回:ネットワーキング
参考文献
Provisioning - Getting Started - Vagrant by HashiCorp [Ubuntu] apt-get まとめ - Qiita
目次
- Getting Started
- Install
- Project Setup
- Boxes
- Up and SSH
- Synced Folders
- Provisioning
- Networking
- Share
- Teardown
- Rebuild
- Providers