У меня есть следующий Vagrantfile:
Vagrant.configure(VAGRANT_API_VERSION) do |config|
config.vm.provider "virtualbox" do |vb|
vb.memory = 1024
vb.cpus = 2
end
config.vm.define :master do |master_config|
master_config.vm.box = "centos/7"
master_config.vm.host_name = 'saltmaster.local'
master_config.vm.network "private_network", ip: "172.16.10.10"
master_config.vm.synced_folder ".", "/vagrant", disabled: true
master_config.vm.synced_folder "states", "/vagrant/states", type: "virtualbox"
master_config.vm.synced_folder "pillar", "/vagrant/pillar", type: "virtualbox"
master_config.vm.provision :salt do |salt|
salt.master_config = "etc/master"
salt.install_type = "git"
salt.install_args = "v2016.11.7"
salt.no_minion = true
salt.install_master = true
salt.verbose = true
salt.colorize = true
salt.bootstrap_options = "-P -c /tmp"
end
end
config.vm.define :minion1 do |minion_config|
minion_config.vm.box = "centos/7"
minion_config.vm.host_name = 'saltminion1.local'
minion_config.vm.network "private_network", ip: "172.16.10.11"
minion_config.vm.synced_folder ".", "/vagrant", disabled: true
minion_config.vm.provision :salt do |salt|
salt.minion_config = "etc/minion1"
salt.install_type = "git"
salt.install_args = "v2016.11.7"
salt.verbose = true
salt.colorize = true
salt.bootstrap_options = "-P -c /tmp"
end
end
config.vm.define :minion2 do |minion_config|
minion_config.vm.box = "centos/7"
minion_config.vm.host_name = 'saltminion2.local'
minion_config.vm.network "private_network", ip: "172.16.10.12"
minion_config.vm.synced_folder ".", "/vagrant", disabled: true
minion_config.vm.provision :salt do |salt|
salt.minion_config = "etc/minion2"
salt.install_type = "git"
salt.install_args = "v2016.11.7"
salt.verbose = true
salt.colorize = true
salt.bootstrap_options = "-P -c /tmp"
end
end
end
Теперь, когда все машины запущены и работают, я хочу выполнить команду на мастере соли, используя master_config.vm.provision "shell", inline: "salt '*' state.apply"
.
Но проблема в том, что как только Vagrant завершит подготовку minion2, он больше не сможет получить доступ к машине master_config. Я думаю, что должен быть способ выполнить эту команду, не выполняя vagrant ssh master -c stalt '*' state.apply
. Я не хочу использовать команду на хосте. И высокое состояние необходимо применять ПОСЛЕ того, как все миньоны включены, из-за некоторых конфигураций и состояний, связанных с сетью.
Кто-нибудь может мне помочь?
vagrant up
, а не при каждом изменении, то есть только на этапе начальной загрузки. - person Haije Ploeg   schedule 08.09.2017config.vm.provision "trigger", ...
Но тогда мой квест остается. Как запустить это после того, как мастер, миньон1 и миньон2 запущены и работают? Потому что после того, как они встанут, мне нужно выполнить команду на мастере соли. Я не могу уложить это в голове. Потому что как я могу нацелиться на мастер-машину соли? - person Haije Ploeg   schedule 08.09.2017