Adding python_version parameter for Windows minions

Ignoring non-Windows Salt parameters
Get the correct minion file for ver >= 2017.x.x
This commit is contained in:
Jonathan LaBroad 2017-08-29 12:38:29 -04:00
parent 010c369e32
commit 384848e92d
3 changed files with 33 additions and 12 deletions

View File

@ -1,5 +1,6 @@
Param( Param(
[string]$version, [string]$version,
[string]$pythonVersion = "2",
[string]$runservice, [string]$runservice,
[string]$minion, [string]$minion,
[string]$master [string]$master
@ -14,6 +15,11 @@ If ($version -notmatch "2\d{3}\.\d{1,2}\.\d+(\-\d{1})?"){
$version = '2016.11.3' $version = '2016.11.3'
} }
If ($pythonVersion -notmatch "\d+") {
$pythonVersion = "2"
Write-Host "Defaulting to minion Python version $pythonVersion"
}
If ($runservice.ToLower() -eq "true"){ If ($runservice.ToLower() -eq "true"){
Write-Host "Service is set to run." Write-Host "Service is set to run."
[bool]$runservice = $True [bool]$runservice = $True
@ -49,11 +55,20 @@ If ([IntPtr]::Size -eq 4) {
} }
# Download minion setup file # Download minion setup file
Write-Host "Downloading Salt minion installer Salt-Minion-$version-$arch-Setup.exe" $possibleFilenames = @("Salt-Minion-$version-$arch-Setup.exe", "Salt-Minion-$version-Py$pythonVersion-$arch-Setup.exe")
$webclient = New-Object System.Net.WebClient foreach ($minionFilename in $possibleFilenames) {
$url = "https://repo.saltstack.com/windows/Salt-Minion-$version-$arch-Setup.exe" try {
$file = "C:\tmp\salt.exe" Write-Host "Downloading Salt minion installer $minionFilename"
$webclient.DownloadFile($url, $file) $webclient = New-Object System.Net.WebClient
$url = "https://repo.saltstack.com/windows/$minionFilename"
$file = "C:\tmp\salt.exe"
$webclient.DownloadFile($url, $file)
break
}
catch {
Write-Host "Unable to download $minionFilename"
}
}
# Install minion silently # Install minion silently

View File

@ -34,6 +34,7 @@ module VagrantPlugins
attr_accessor :no_minion attr_accessor :no_minion
attr_accessor :bootstrap_options attr_accessor :bootstrap_options
attr_accessor :version attr_accessor :version
attr_accessor :python_version
attr_accessor :run_service attr_accessor :run_service
attr_accessor :master_id attr_accessor :master_id
@ -64,6 +65,7 @@ module VagrantPlugins
@masterless = UNSET_VALUE @masterless = UNSET_VALUE
@minion_id = UNSET_VALUE @minion_id = UNSET_VALUE
@version = UNSET_VALUE @version = UNSET_VALUE
@python_version = UNSET_VALUE
@run_service = UNSET_VALUE @run_service = UNSET_VALUE
@master_id = UNSET_VALUE @master_id = UNSET_VALUE
end end
@ -89,6 +91,7 @@ module VagrantPlugins
@masterless = false if @masterless == UNSET_VALUE @masterless = false if @masterless == UNSET_VALUE
@minion_id = nil if @minion_id == UNSET_VALUE @minion_id = nil if @minion_id == UNSET_VALUE
@version = nil if @version == UNSET_VALUE @version = nil if @version == UNSET_VALUE
@python_version = nil if @python_version == UNSET_VALUE
@run_service = nil if @run_service == UNSET_VALUE @run_service = nil if @run_service == UNSET_VALUE
@master_id = nil if @master_id == UNSET_VALUE @master_id = nil if @master_id == UNSET_VALUE

View File

@ -121,7 +121,7 @@ module VagrantPlugins
options = "%s -F -c %s" % [options, config_dir] options = "%s -F -c %s" % [options, config_dir]
end end
if @config.seed_master && @config.install_master if @config.seed_master && @config.install_master && @machine.config.vm.communicator != :winrm
seed_dir = "/tmp/minion-seed-keys" seed_dir = "/tmp/minion-seed-keys"
@machine.communicate.sudo("mkdir -p -m777 #{seed_dir}") @machine.communicate.sudo("mkdir -p -m777 #{seed_dir}")
@config.seed_master.each do |name, keyfile| @config.seed_master.each do |name, keyfile|
@ -132,27 +132,27 @@ module VagrantPlugins
options = "#{options} -k #{seed_dir}" options = "#{options} -k #{seed_dir}"
end end
if configure && !install if configure && !install && @machine.config.vm.communicator != :winrm
options = "%s -C" % options options = "%s -C" % options
end end
if @config.install_master if @config.install_master && @machine.config.vm.communicator != :winrm
options = "%s -M" % options options = "%s -M" % options
end end
if @config.install_syndic if @config.install_syndic && @machine.config.vm.communicator != :winrm
options = "%s -S" % options options = "%s -S" % options
end end
if @config.no_minion if @config.no_minion && @machine.config.vm.communicator != :winrm
options = "%s -N" % options options = "%s -N" % options
end end
if @config.install_type if @config.install_type && @machine.config.vm.communicator != :winrm
options = "%s %s" % [options, @config.install_type] options = "%s %s" % [options, @config.install_type]
end end
if @config.install_args if @config.install_args && @machine.config.vm.communicator != :winrm
options = "%s %s" % [options, @config.install_args] options = "%s %s" % [options, @config.install_args]
end end
@ -267,6 +267,9 @@ module VagrantPlugins
if @config.version if @config.version
options += " -version %s" % @config.version options += " -version %s" % @config.version
end end
if @config.python_version
options += " -pythonVersion %s" % @config.python_version
end
if @config.run_service if @config.run_service
@machine.env.ui.info "Salt minion will be stopped after installing." @machine.env.ui.info "Salt minion will be stopped after installing."
options += " -runservice %s" % @config.run_service options += " -runservice %s" % @config.run_service