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

View File

@ -34,6 +34,7 @@ module VagrantPlugins
attr_accessor :no_minion
attr_accessor :bootstrap_options
attr_accessor :version
attr_accessor :python_version
attr_accessor :run_service
attr_accessor :master_id
@ -64,6 +65,7 @@ module VagrantPlugins
@masterless = UNSET_VALUE
@minion_id = UNSET_VALUE
@version = UNSET_VALUE
@python_version = UNSET_VALUE
@run_service = UNSET_VALUE
@master_id = UNSET_VALUE
end
@ -89,6 +91,7 @@ module VagrantPlugins
@masterless = false if @masterless == UNSET_VALUE
@minion_id = nil if @minion_id == UNSET_VALUE
@version = nil if @version == UNSET_VALUE
@python_version = nil if @python_version == UNSET_VALUE
@run_service = nil if @run_service == 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]
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"
@machine.communicate.sudo("mkdir -p -m777 #{seed_dir}")
@config.seed_master.each do |name, keyfile|
@ -132,27 +132,27 @@ module VagrantPlugins
options = "#{options} -k #{seed_dir}"
end
if configure && !install
if configure && !install && @machine.config.vm.communicator != :winrm
options = "%s -C" % options
end
if @config.install_master
if @config.install_master && @machine.config.vm.communicator != :winrm
options = "%s -M" % options
end
if @config.install_syndic
if @config.install_syndic && @machine.config.vm.communicator != :winrm
options = "%s -S" % options
end
if @config.no_minion
if @config.no_minion && @machine.config.vm.communicator != :winrm
options = "%s -N" % options
end
if @config.install_type
if @config.install_type && @machine.config.vm.communicator != :winrm
options = "%s %s" % [options, @config.install_type]
end
if @config.install_args
if @config.install_args && @machine.config.vm.communicator != :winrm
options = "%s %s" % [options, @config.install_args]
end
@ -267,6 +267,9 @@ module VagrantPlugins
if @config.version
options += " -version %s" % @config.version
end
if @config.python_version
options += " -pythonVersion %s" % @config.python_version
end
if @config.run_service
@machine.env.ui.info "Salt minion will be stopped after installing."
options += " -runservice %s" % @config.run_service