Posiadam instalację wielu włóczęgów z kilkoma blokami, których potrzebuję zmienić zlecenie wykonania.Sterowanie wieloma maszynami Błędne zlecenie blokowania bloków
Ze względu na to, że kolejność vagrantów znajduje się na zewnątrz - w najbardziej zagnieżdżonym bloku wykonuje się ostatni.
Potrzebuję sposobu, aby bloki świadczenia bardziej zagnieżdżone, tak aby były wykonywane jako ostatnie. Próbowałem dodać mach.vm.define, ale te bloki nie działają i nie rozumiem dlaczego.
Normalne Wykonanie, źle zamówienie
Vagrant.require_version ">= 1.6.0"
VAGRANTFILE_API_VERSION = "2"
require 'yaml'
machines = YAML.load_file('vagrant.yaml')
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
machines.each do |machine|
config.vm.define machine["name"] do |mach|
machine['run_this'].each do |run_this|
mach.vm.provider "virtualbox" do |v, override|
# should run first
end
end
# Do a puppet provision to install the rest of the software
mach.vm.provision "puppet" do |puppet|
# puppet stuff
end
mach.vm.box = 'ubuntu/trusty64'
end
end
Idealne rozwiązanie ale dodatkowo zagnieżdżony blok nie wykonuje
Vagrant.require_version ">= 1.6.0"
VAGRANTFILE_API_VERSION = "2"
require 'yaml'
machines = YAML.load_file('vagrant.yaml')
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
machines.each do |machine|
config.vm.define machine["name"] do |mach|
machine['run_this'].each do |run_this|
mach.vm.provider "virtualbox" do |v, override|
# should run first but it doesn't because it's in an extra provider block
end
end
mach.vm.define :prov do |prov| # This block doesn't execute
# Do a puppet provision to install the rest of the software
prov.vm.provision "puppet" do |puppet|
# puppet stuff
end
end
mach.vm.box = 'ubuntu/trusty64'
end
end
end
Czy istnieje sposób, aby zaopatrzenie jeden poziom głębiej tak, że działa po zawartości bloku dostawcy?
EDYCJA: Wszystko, co jest określone przez dostawcę, jest niedozwolone (na przykład inny blok dostawcy) lub coś, co powoduje duplikowanie kodu.
Czy możesz wyjaśnić, co dokładnie próbujesz zrobić przed rozpoczęciem udostępniania? – eddiemoya
Mam niestandardową funkcję folderu synchronizacji wewnątrz pierwszego bloku dostawcy, który chcę uruchomić przed udostępnieniem – Sam