ローカル VM を構築する vagrant ファイルがあります。EC2 プロバイダーを追加し、ローカル VM をプロビジョニングするか、EC2 でプロビジョニングするかを選択できるようにしたいと考えています。
同じ Vagrantfile で複数のプロバイダーの構成を作成し、実行するときにどのプロバイダーを実行するかを何らかの方法で選択できますvagrant up
か?
ローカル VM を構築する vagrant ファイルがあります。EC2 プロバイダーを追加し、ローカル VM をプロビジョニングするか、EC2 でプロビジョニングするかを選択できるようにしたいと考えています。
同じ Vagrantfile で複数のプロバイダーの構成を作成し、実行するときにどのプロバイダーを実行するかを何らかの方法で選択できますvagrant up
か?
各プロバイダのボックスを追加
> vagrant box add precise64 http://file.vagrantup.com/precise64.box
> vagrant box add precise64 http://file.vagrantup.com/precise64_vmware_fusion.box
Vagrantfileは次のようになります
Vagrant.configure(2) do |config|
config.vm.box="precise64"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", "2048"]
end
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = "2048"
end
end
次に、次のコマンドを使用して各プロバイダーで作成します
> vagrant up --provider=virtualbox
> vagrant up --provider=vmware_fusion
config.vm.define
はい、メソッド呼び出しを使用して複数のマシンを指定できます。次に例を示します。
Vagrant.configure("2") do |config|
config.vm.provision "shell", inline: "echo Hello"
config.vm.define "web" do |web|
web.vm.box = "apache"
end
config.vm.define "db" do |db|
db.vm.box = "mysql"
end
end
参照: Vagranup Docs and Providersで複数のマシンを定義する