...
コード ブロック |
---|
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 |