Ниже приведен код, в котором я динамически передаю некоторую переменную в виртуальную машину на основе итерации цикла for.
(1..2).each do |i|
config.vm.define "worker-#{i}" do |worker|
worker.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
worker.vm.provision "setup_worker",type: "shell", path: "scripts/setup_worker.sh",args: "10.200.$i.0/24"
worker.vm.provider "virtualbox" do |vb|
vb.name = "worker-#{i}"
vb.memory = "2048"
vb.linked_clone=true
end
end
Пожалуйста, не используйте скрипт scripts/setupworker.sh
, который я передаю параметру на основена итерации.
Это нормально во время начального vagrant up
, однако я хочу иметь возможность передавать параметр 10.10.10.2#{i}
в setup_worker.sh
всякий раз, когда я запускаю vagrant provision
или vagrant reload
,
Я пытался пройти через env, как показано ниже
export ENV_POD_CIDR="10.200.1.0/24";vagrant provision worker-1
Однако я не могу прочитать его в виртуальной машине.