ページ ツリー
メタデータの末尾にスキップ
メタデータの先頭に移動

このページの古いバージョンを表示しています。現在のバージョンを表示します。

現在のバージョンとの相違点 ページ履歴を表示

« 前のバージョン バージョン 5 次のバージョン »

Vagrantfile の設定を外部ファイルで制御したい

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

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

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

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

require 'yaml'
vm_config = YAML::load_file('config.yml')

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

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

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

 

.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

 

 

  • ラベルがありません