Vagrantfile の設定を外部ファイルで制御する
Vagrantfile は Git リポジトリでバージョン管理されるファイルです。
しかし、利用者ごとに異なるユーザー名やパスワードなどは Git リポジトリにコミットしたくないので、Vagrantfile に直接書くのは避けたいです。
.yml ファイルを読み込む
Vagrant プラグインは不要です。 Ruby 標準添付の yaml ライブラリだけで実現できます。
例えば、次の yml ファイルを読み込むには
config.yml
A: aaa B: B1: bbb1 B2: bbb2 C: ccc
Vagrantfile に以下のように記述します。
require 'yaml' vm_config = YAML::load_file('config.yml') vm_config['A'] == 'aaa' vm_config['B']['B2'] == 'bbb2'
その他の方法
dotenv を Vagrant のプラグインとしてインストールしておき、.env ファイルに設定を書く方法や、vagrant-secret プラグインを利用する方法などがあるようです。
プラグインがインストールされているかチェックする
vagrant-omnibus などの必須プラグインがインストールされていない場合に、そのまま vagrant up を実行してしまうと Ruby のスタックトレースが表示され、vagrant up が失敗します。
スタックトレースを見ても、ユーザーはどうしてそれが失敗したのか判断できない場合が多いです。
必要なプラグインは事前にチェックできるように Vagrantfile に処理を書いておくとよいです。
unless Vagrant.has_plugin?('vagrant-omnibus') then raise 'vagrant-omnibus プラグインがインストールされていません。' end