ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

 

Vagrantfile

...

の設定を外部ファイルで制御する

Vagrantfile は Git リポジトリでバージョン管理されるファイルです。
しかし、利用者ごとに異なるユーザー名やパスワードなどは Git リポジトリにコミットしたくないので、Vagrantfile に直接書くのは避けたいです。

Vagrantfile は Ruby コードとして実行されるので、外部ファイルを読み込むことも可能です。
方法はいろいろあります。

.yml ファイルを読み込む場合

以下のコードで任意の YAML ファイルを Ruby オブジェクトに変換できます。

.yml ファイルを読み込む

Vagrant プラグインは不要です。 Ruby 標準添付の yaml ライブラリだけで実現できます。

例えば、次の yml ファイルを読み込むには

コード ブロック
titleconfig.yml
A: aaa
B:
  B1: bbb1
  B2: bbb2
C: ccc

Vagrantfile に以下のように記述します。

コード ブロック
require 'yaml'
vm_config = YAML::load_file('config.yml')

※ このようにする場合は、config.yml を .gitignore に入れておきます。

情報

Vagrant の利用者にプラグインなどをインストールしてもらうこともなく、標準的な機能だけで実現できるので、この方法をオススメします。

※ すごく簡単でシンプルなのになぜかメジャーになっていない。。他の方法を使わなければいけない特別な理由があるのかも?


 
vm_config['A'] == 'aaa'
 

 

 

 

.env ファイルを読み込む場合

dotenv を Vagrant のプラグインとしてインストールしておきます。

...