Vagrantのマルチマシン機能はかなり涼しいようですが、私を悩ますこと(またはすぐには分かりません)は、「親」Vagrantfileと「親」Vagrantファイルの間で設定オプションを共有する良い方法ではないようです。子供たち "ヴァガントファイル。親と子の間で設定オプションを効果的かつ保守的に共有する方法はありますか?例はこれをより明確にするかもしれない。別のVagrantファイル内からVagrantfile設定を読み込むことはできますか?
API、Web、Workerの3つのアプリケーション/サービスで構成されるプラットフォームがあるとしましょう。
はのは、以下のディレクトリ構造を推定してみましょう:
/some_platform
/api
# app code...
Vagrantfile
/web
# app code...
Vagrantfile
/worker
# app code...
Vagrantfile
Vagrantfile
さんは次のように/some_platform/api/Vagrantfile
に見えるとしましょう:
Vagrant.configure("2") do |config|
config.vm.box = "debian/jessie64"
end
はおそらく、ウェブや労働者Vagrantfilesは似ています。
ようは今、これらのVMを調整し、/some_platform/Vagrantfile
私はベイグラントに依存している複数のマシンの驚異を使用してになります。私はこの例は不自然であると認識
Vagrant.configure("2") do |config|
config.vm.define "web" do |api|
api.vm.box = "debian/jessie64"
end
config.vm.define "web" do |web|
web.vm.box = "debian/jessie64"
end
config.vm.define "web" do |worker|
worker.vm.box = "debian/jessie64"
end
end
、それはあなたがより多く得れば方法を確認するのは簡単ですより複雑な設定宣言では、その設定を2つの場所で重複させるのは面倒で危険です。
"なぜ、それぞれのプロジェクトに独自のバグログファイルがあるのですか?そうすることで、アプリケーションを実行するサーバーのセットアップ方法を真実の単一の情報源とすることができます。私はあなたが使うことができる(そして私はそれらを使用する)プロビジョナーがあることを認識していますが、それ以外のいくつかのことを宣言しなければならず、DRYを維持して、マシン、または私は単一のアプリケーションで作業し、VM /サーバーの設定を変更することができます。
私が本当に好きなのは、他のバグランファイルを「親」ファイルにマージする方法です。
これは可能ですか?それとも、私は試してみるのが夢中ですか?どのようにこれを達成するための巧妙なアイデアですか?私はいくつかのyamlファイルとPOROを使ってこの問題をスケッチしていましたが、ハックのどれも非常に満足できるものではありません。