Я пытаюсь написать Vagrantfile с несколькими компьютерами, поддерживаемыми несколькими провайдерами. Я специально хочу, чтобы иметь возможность запускать более одной из этих машин за один раз. В основном я хочу, чтобы запустить команду: vagrant up vb_vm aws_vm
Vagrantfile с несколькими vm и поставщиками
Я знаю флаг --provider, но это относится к все машины будучи породила, так что не применимо в моем случае.
Это мой (очень урезана, но все еще действует) Vagrantfile:
Vagrant.configure(2) do |config|
config.vm.define 'vb_vm' do |vb_vm|
vb_vm.vm.box='unbuntu/trusty64' # from hashicorp
vb_vm.vm.provider :virtualbox do |v|
end
end
config.vm.define 'aws_vm' do |aws_vm|
aws_vm.vm.box = "aws/dummy"
aws_vm.vm.box_url = 'https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box'
aws_vm.vm.provider :aws do |a, override|
a.access_key_id = 'something'
a.secret_access_key = 'something'
a.ami='something'
end
end
end
vagrant box list
показывает, что коробки, используемые для каждого определения имеют правильный тип:
aws/dummy (aws, 0)
ubuntu/trusty64 (virtualbox, 20150928.0.0)
Но vagrant status
(обратите внимание, что у меня есть доступный плагин lxc, который стал стандартным)
Текущее состояние машины:
aws_vm not created (aws)
vb_vm not created (lxc)
Таким образом, это показывает, что нереста нескольких машин с несколькими провайдерами действительно возможна, но выбор поставщика неправильный.
Я знаю уловки, чтобы настроить поставщик по умолчанию, но это только делает вещи хуже (VirtualBox используется везде, AWS не используется вообще ...)
Я знаю старых вопросы StackOverflow, а также , но они связаны с гораздо более старой версией Vagrant.
Итак, вопрос в следующем: как я могу убедиться, что в каждом конкретном поле используется его надлежащий провайдер?
Это то, чего я боялся. В какой-то момент, даже если поле правильно определено для правильного провайдера, вам нужно добавить --provider. Но полезный трюк с остановкой, спасибо! – Guillaume