Merge pull request #3138 from cournape/fix_minion_configuration

This commit is contained in:
Seth Vargo 2015-05-30 11:39:30 -07:00
commit 67c3819d29
2 changed files with 23 additions and 0 deletions

View File

@ -19,6 +19,7 @@ module VagrantPlugins
attr_accessor :bootstrap_script attr_accessor :bootstrap_script
attr_accessor :verbose attr_accessor :verbose
attr_accessor :seed_master attr_accessor :seed_master
attr_accessor :config_dir
attr_reader :pillar_data attr_reader :pillar_data
attr_accessor :colorize attr_accessor :colorize
attr_accessor :log_level attr_accessor :log_level
@ -56,6 +57,7 @@ module VagrantPlugins
@install_syndic = UNSET_VALUE @install_syndic = UNSET_VALUE
@no_minion = UNSET_VALUE @no_minion = UNSET_VALUE
@bootstrap_options = UNSET_VALUE @bootstrap_options = UNSET_VALUE
@config_dir = UNSET_VALUE
end end
def finalize! def finalize!
@ -82,6 +84,7 @@ module VagrantPlugins
@install_syndic = nil if @install_syndic == UNSET_VALUE @install_syndic = nil if @install_syndic == UNSET_VALUE
@no_minion = nil if @no_minion == UNSET_VALUE @no_minion = nil if @no_minion == UNSET_VALUE
@bootstrap_options = nil if @bootstrap_options == UNSET_VALUE @bootstrap_options = nil if @bootstrap_options == UNSET_VALUE
@config_dir = nil if @config_dir == UNSET_VALUE
end end
@ -90,6 +93,17 @@ module VagrantPlugins
@pillar_data = Vagrant::Util::DeepMerge.deep_merge(@pillar_data, data) @pillar_data = Vagrant::Util::DeepMerge.deep_merge(@pillar_data, data)
end end
def default_config_dir(machine)
guest_type = machine.config.vm.guest || :linux
# FIXME: there should be a way to do that a bit smarter
if guest_type == :windows
return "C:\\salt"
else
return "/etc/salt"
end
end
def validate(machine) def validate(machine)
errors = _detected_errors errors = _detected_errors
if @minion_config if @minion_config
@ -129,6 +143,10 @@ module VagrantPlugins
errors << I18n.t("vagrant.provisioners.salt.must_accept_keys") errors << I18n.t("vagrant.provisioners.salt.must_accept_keys")
end end
if @config_dir.nil?
@config_dir = default_config_dir(machine)
end
return {"salt provisioner" => errors} return {"salt provisioner" => errors}
end end

View File

@ -305,6 +305,11 @@ module VagrantPlugins
end end
def call_highstate def call_highstate
if @config.minion_config
@machine.env.ui.info "Copying salt minion config to #{@config.config dir}"
@machine.communicate.upload(expanded_path(@config.minion_config).to_s, @config.config_dir + "/minion")
end
if @config.run_highstate if @config.run_highstate
@machine.env.ui.info "Calling state.highstate... (this may take a while)" @machine.env.ui.info "Calling state.highstate... (this may take a while)"
if @config.install_master if @config.install_master