ページ ツリー

比較バージョン

キー

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

...

コード ブロック
require 'yaml'
vm_config = YAML::load_file('config.yml')
 
vm_config['A'] == 'aaa'
 vm_config['B']['B2'] == 'bbb2'

 

 

 

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

その他の方法

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

コード ブロック
$ vagrant plugin install dotenv

 

以下のコードで .env を読み込むことができます。

コード ブロック
Dotenv.load

 

読み込んだ設定は ENV オブジェクトに展開されています。

コード ブロック
vbox.customize ["modifyvm", :id, "--memory", ENV['MEMORY_SIZE']]

 

vagrant-secret プラグインを利用する場合

外部の yml ファイルを読み込む専用のプラグインも存在します。

https://github.com/tcnksm/vagrant-secret

 

 

のプラグインとしてインストールしておき、.env ファイルに設定を書く方法や、vagrant-secret プラグインを利用する方法などがあるようです。

 

プラグインがインストールされているかチェックする

vagrant-omnibus などの必須プラグインがインストールされていない場合に、そのまま vagrant up を実行してしまうと Ruby のスタックトレースが表示され、vagrant up が失敗します。
スタックトレースを見ても、ユーザーはどうしてそれが失敗したのか判断できない場合が多いです。

必要なプラグインは事前にチェックできるように Vagrantfile に処理を書いておくとよいです。 

コード ブロック
unless Vagrant.has_plugin?('vagrant-omnibus') then
  raise 'vagrant-omnibus プラグインがインストールされていません。'
end