mirror of
https://github.com/saltstack/salt-bootstrap.git
synced 2025-04-16 09:40:21 +00:00
Merge branch 'develop' into 'stable'
Conflicts: - bootstrap-salt.sh
This commit is contained in:
commit
3674b31c97
8 changed files with 210 additions and 18 deletions
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
3
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -8,6 +8,3 @@ Remove this section if not relevant
|
||||||
### New Behavior
|
### New Behavior
|
||||||
Remove this section if not relevant
|
Remove this section if not relevant
|
||||||
|
|
||||||
### Tests written?
|
|
||||||
|
|
||||||
Yes/No
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ Denys Havrysh vutny denys.gavrysh@gmail.com
|
||||||
deployboy deployboy
|
deployboy deployboy
|
||||||
Diego Woitasen diegows diego@flugel.it
|
Diego Woitasen diegows diego@flugel.it
|
||||||
Elias Probst eliasp
|
Elias Probst eliasp
|
||||||
|
eliezerlp eliezerlp
|
||||||
|
Emiel Kollof ekollof
|
||||||
Erik Ankrom erikankrom
|
Erik Ankrom erikankrom
|
||||||
Erik Johnson terminalmage erik@saltstack.com
|
Erik Johnson terminalmage erik@saltstack.com
|
||||||
EYJ eyj
|
EYJ eyj
|
||||||
|
@ -66,6 +68,7 @@ markgaylard markgaylard
|
||||||
Matt Black mafrosis
|
Matt Black mafrosis
|
||||||
Matthew Garrett cingeyedog matt@clemson.edu
|
Matthew Garrett cingeyedog matt@clemson.edu
|
||||||
Matthew Mead-Briggs mattmb
|
Matthew Mead-Briggs mattmb
|
||||||
|
Matthew Richardson mrichar1
|
||||||
Matthew Willson ixela
|
Matthew Willson ixela
|
||||||
Matthieu Guegan mguegan
|
Matthieu Guegan mguegan
|
||||||
Michael A. Smith kojiromike michaels@syapse.com
|
Michael A. Smith kojiromike michaels@syapse.com
|
||||||
|
@ -84,6 +87,7 @@ Pavel Snagovsky paha
|
||||||
Pedro Algarvio s0undt3ch pedro@algarvio.me
|
Pedro Algarvio s0undt3ch pedro@algarvio.me
|
||||||
Pedro Paulo pedropaulovc
|
Pedro Paulo pedropaulovc
|
||||||
Peter Tripp notpeter
|
Peter Tripp notpeter
|
||||||
|
Petr Michalec epcim
|
||||||
Prayag Verma pra85 prayag.verma@gmail.com
|
Prayag Verma pra85 prayag.verma@gmail.com
|
||||||
ptonelli ptonelli
|
ptonelli ptonelli
|
||||||
Randy Thompson beardedeagle randy@heroictek.com
|
Randy Thompson beardedeagle randy@heroictek.com
|
||||||
|
|
19
ChangeLog
19
ChangeLog
|
@ -1,6 +1,21 @@
|
||||||
|
Version 2016.07.07:
|
||||||
|
* Add new contributors to authors list. (rallytime) #910
|
||||||
|
* Split up python-requests and python-msgpack packages for newer Fedora. (rallytime) #909
|
||||||
|
* Fix typo in repository configuration for FreeBSD. (ekollof) #907
|
||||||
|
* Make sure $STABLE_REV is set before setting up SaltStack repo. (rallytime) #906
|
||||||
|
* Remove tests written question from template. (rallytime) #904
|
||||||
|
* Adding support for Linux Mint 18 (based on Ubuntu 16.04). (eliezerlp) #902
|
||||||
|
* Allow git installation for SLES 12. (rallytime) #903
|
||||||
|
* Set repo_arch for raspberry pi installs. (mrichar1) #899
|
||||||
|
* Change temporary directory for storing executable to C:\Windows\Temp. (themalkolm) #897
|
||||||
|
* add apt-transport-https for ubuntu. (epcim) #896
|
||||||
|
* Fix expanding shell script position parameters with nounset enabled. (vutny) #895
|
||||||
|
* RFC: Add tests for bootstrap-salt.ps1. (themalkolm) #893
|
||||||
|
* Keep original name of salt executable executable. (themalkolm) #857
|
||||||
|
|
||||||
Version 2016.06.27:
|
Version 2016.06.27:
|
||||||
* Fix race condition when doing one-liner bootstrap
|
* Fix race condition when doing one-liner bootstrap. (vutny) #889
|
||||||
* Add space back in between 'install' and '--install'
|
* Add space back in between 'install' and '--install'. (rallytime) #890
|
||||||
|
|
||||||
Version 2016.06.24:
|
Version 2016.06.24:
|
||||||
* Save invocation command and arguments into variables. (jfindlay) #885
|
* Save invocation command and arguments into variables. (jfindlay) #885
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
Bootstrapping Salt
|
Bootstrapping Salt
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
|windows_build|
|
||||||
|
|
||||||
Before `Salt`_ can be used for provisioning on the desired machine, the binaries need to be
|
Before `Salt`_ can be used for provisioning on the desired machine, the binaries need to be
|
||||||
installed. Since `Salt`_ supports many different distributions and versions of operating systems,
|
installed. Since `Salt`_ supports many different distributions and versions of operating systems,
|
||||||
the `Salt`_ installation process is handled by this shell script ``bootstrap-salt.sh``. This
|
the `Salt`_ installation process is handled by this shell script ``bootstrap-salt.sh``. This
|
||||||
|
@ -236,7 +238,7 @@ Ubuntu and derivatives
|
||||||
|
|
||||||
- Elementary OS 0.2 (based on Ubuntu 12.04)
|
- Elementary OS 0.2 (based on Ubuntu 12.04)
|
||||||
- Linaro 12.04
|
- Linaro 12.04
|
||||||
- Linux Mint 13/14/16/17
|
- Linux Mint 13/14/16/17/18
|
||||||
- Trisquel GNU/Linux 6 (based on Ubuntu 12.04)
|
- Trisquel GNU/Linux 6 (based on Ubuntu 12.04)
|
||||||
- Ubuntu 10.x/11.x/12.x/13.x/14.x/15.x/16.04
|
- Ubuntu 10.x/11.x/12.x/13.x/14.x/15.x/16.04
|
||||||
|
|
||||||
|
@ -535,3 +537,7 @@ Salt is ready and working in the Docker container with Minion authenticated on M
|
||||||
|
|
||||||
|
|
||||||
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et
|
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et
|
||||||
|
|
||||||
|
.. |windows_build| image:: https://ci.appveyor.com/api/projects/status/github/themalkolm/salt-bootstrap?branch=develop&svg=true
|
||||||
|
:target: https://ci.appveyor.com/project/themalkolm/salt-bootstrap
|
||||||
|
:alt: Build status of the develop branch on Windows
|
||||||
|
|
32
appveyor.yml
Normal file
32
appveyor.yml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
platform: Any CPU
|
||||||
|
|
||||||
|
environment:
|
||||||
|
matrix:
|
||||||
|
- bootstrap_args:
|
||||||
|
test_args: -master salt -runservice
|
||||||
|
|
||||||
|
- bootstrap_args: -runservice false
|
||||||
|
test_args: -master salt -noservice
|
||||||
|
|
||||||
|
- bootstrap_args: -minion a-minion
|
||||||
|
test_args: -minion a-minion -master salt -runservice
|
||||||
|
|
||||||
|
- bootstrap_args: -minion a-minion -master a-master
|
||||||
|
test_args: -minion a-minion -master a-master -runservice
|
||||||
|
|
||||||
|
build_script:
|
||||||
|
- ps: |
|
||||||
|
$Path = (Get-Location).Path | Join-Path -ChildPath bootstrap-salt.ps1
|
||||||
|
Invoke-Expression "$Path -verbose $env:bootstrap_args"
|
||||||
|
|
||||||
|
before_test:
|
||||||
|
- SET PATH=%PATH%;C:\salt
|
||||||
|
- salt-call --version
|
||||||
|
|
||||||
|
test_script:
|
||||||
|
- ps: |
|
||||||
|
$Path = (Get-Location).Path | Join-Path -ChildPath tests\runtests.ps1
|
||||||
|
Invoke-Expression "$Path -verbose $env:test_args"
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
fast_finish: true
|
|
@ -217,10 +217,11 @@ If (!$version) {
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Download minion setup file
|
# Download minion setup file
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
Write-Output "Downloading Salt minion installer Salt-Minion-$version-$arch-Setup.exe"
|
$saltExe = "Salt-Minion-$version-$arch-Setup.exe"
|
||||||
|
Write-Output "Downloading Salt minion installer $saltExe"
|
||||||
$webclient = New-Object System.Net.WebClient
|
$webclient = New-Object System.Net.WebClient
|
||||||
$url = "$repourl/Salt-Minion-$version-$arch-Setup.exe"
|
$url = "$repourl/$saltExe"
|
||||||
$file = "C:\tmp\salt.exe"
|
$file = "C:\Windows\Temp\$saltExe"
|
||||||
$webclient.DownloadFile($url, $file)
|
$webclient.DownloadFile($url, $file)
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
@ -240,7 +241,7 @@ If($runservice -eq $false) {$parameters = "$parameters /start-service=0"}
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
#Wait for process to exit before continuing.
|
#Wait for process to exit before continuing.
|
||||||
Write-Output "Installing Salt minion"
|
Write-Output "Installing Salt minion"
|
||||||
Start-Process C:\tmp\salt.exe -ArgumentList "/S $parameters" -Wait -NoNewWindow -PassThru | Out-Null
|
Start-Process C:\Windows\Temp\$saltExe -ArgumentList "/S $parameters" -Wait -NoNewWindow -PassThru | Out-Null
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
# Configure the minion service
|
# Configure the minion service
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
#======================================================================================================================
|
#======================================================================================================================
|
||||||
set -o nounset # Treat unset variables as an error
|
set -o nounset # Treat unset variables as an error
|
||||||
|
|
||||||
__ScriptVersion="2016.06.27"
|
__ScriptVersion="2016.07.07"
|
||||||
__ScriptName="bootstrap-salt.sh"
|
__ScriptName="bootstrap-salt.sh"
|
||||||
|
|
||||||
__ScriptFullName="${0}"
|
__ScriptFullName="$0"
|
||||||
__ScriptArgs="${*}"
|
__ScriptArgs="$*"
|
||||||
|
|
||||||
#======================================================================================================================
|
#======================================================================================================================
|
||||||
# Environment variables taken into account.
|
# Environment variables taken into account.
|
||||||
|
@ -630,7 +630,7 @@ fi
|
||||||
|
|
||||||
echoinfo "Running version: ${__ScriptVersion}"
|
echoinfo "Running version: ${__ScriptVersion}"
|
||||||
echoinfo "Executed by: ${CALLER}"
|
echoinfo "Executed by: ${CALLER}"
|
||||||
echoinfo "Command line: \"${__ScriptFullName} ${__ScriptArgs}\""
|
echoinfo "Command line: '${__ScriptFullName} ${__ScriptArgs}'"
|
||||||
#echowarn "Running the unstable version of ${__ScriptName}"
|
#echowarn "Running the unstable version of ${__ScriptName}"
|
||||||
|
|
||||||
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
#--- FUNCTION -------------------------------------------------------------------------------------------------------
|
||||||
|
@ -1180,6 +1180,7 @@ __ubuntu_derivatives_translation() {
|
||||||
|
|
||||||
linuxmint_16_ubuntu_base="13.10"
|
linuxmint_16_ubuntu_base="13.10"
|
||||||
linuxmint_17_ubuntu_base="14.04"
|
linuxmint_17_ubuntu_base="14.04"
|
||||||
|
linuxmint_18_ubuntu_base="16.04"
|
||||||
linaro_12_ubuntu_base="12.04"
|
linaro_12_ubuntu_base="12.04"
|
||||||
elementary_os_02_ubuntu_base="12.04"
|
elementary_os_02_ubuntu_base="12.04"
|
||||||
|
|
||||||
|
@ -2366,6 +2367,11 @@ install_ubuntu_stable_deps() {
|
||||||
set -o nounset
|
set -o nounset
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Make sure https transport is available
|
||||||
|
if [ "$HTTP_VAL" = "https" ] ; then
|
||||||
|
__apt_get_install_noinput ca-certificates apt-transport-https || return 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Make sure wget is available
|
# Make sure wget is available
|
||||||
__apt_get_install_noinput wget
|
__apt_get_install_noinput wget
|
||||||
|
|
||||||
|
@ -2714,6 +2720,8 @@ install_debian_7_deps() {
|
||||||
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
|
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
|
||||||
if [ "$CPU_ARCH_L" = "amd64" ] || [ "$CPU_ARCH_L" = "x86_64" ]; then
|
if [ "$CPU_ARCH_L" = "amd64" ] || [ "$CPU_ARCH_L" = "x86_64" ]; then
|
||||||
repo_arch="amd64"
|
repo_arch="amd64"
|
||||||
|
elif [ "$CPU_ARCH_L" = "armv7l" ]; then
|
||||||
|
repo_arch="armhf"
|
||||||
elif [ "$CPU_ARCH_L" = "i386" ] || [ "$CPU_ARCH_L" = "i686" ]; then
|
elif [ "$CPU_ARCH_L" = "i386" ] || [ "$CPU_ARCH_L" = "i686" ]; then
|
||||||
echoerror "repo.saltstack.com likely doesn't have 32-bit packages for Debian (yet?)"
|
echoerror "repo.saltstack.com likely doesn't have 32-bit packages for Debian (yet?)"
|
||||||
repo_arch="i386"
|
repo_arch="i386"
|
||||||
|
@ -2790,6 +2798,8 @@ install_debian_8_deps() {
|
||||||
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
|
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
|
||||||
if [ "$CPU_ARCH_L" = "amd64" ] || [ "$CPU_ARCH_L" = "x86_64" ]; then
|
if [ "$CPU_ARCH_L" = "amd64" ] || [ "$CPU_ARCH_L" = "x86_64" ]; then
|
||||||
repo_arch="amd64"
|
repo_arch="amd64"
|
||||||
|
elif [ "$CPU_ARCH_L" = "armv7l" ]; then
|
||||||
|
repo_arch="armhf"
|
||||||
elif [ "$CPU_ARCH_L" = "i386" ] || [ "$CPU_ARCH_L" = "i686" ]; then
|
elif [ "$CPU_ARCH_L" = "i386" ] || [ "$CPU_ARCH_L" = "i686" ]; then
|
||||||
echoerror "repo.saltstack.com likely doesn't have 32-bit packages for Debian (yet?)"
|
echoerror "repo.saltstack.com likely doesn't have 32-bit packages for Debian (yet?)"
|
||||||
repo_arch="i386"
|
repo_arch="i386"
|
||||||
|
@ -3113,7 +3123,13 @@ install_fedora_deps() {
|
||||||
__install_saltstack_copr_salt_repository || return 1
|
__install_saltstack_copr_salt_repository || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
__PACKAGES="yum-utils PyYAML libyaml m2crypto python-crypto python-jinja2 python-msgpack python-zmq python-requests"
|
__PACKAGES="yum-utils PyYAML libyaml m2crypto python-crypto python-jinja2 python-zmq"
|
||||||
|
|
||||||
|
if [ "$DISTRO_MAJOR_VERSION" -ge 23 ]; then
|
||||||
|
__PACKAGES="${__PACKAGES} python2-msgpack python2-requests"
|
||||||
|
else
|
||||||
|
__PACKAGES="${__PACKAGES} python-msgpack python-requests"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ]; then
|
if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ]; then
|
||||||
__PACKAGES="${__PACKAGES} python-libcloud"
|
__PACKAGES="${__PACKAGES} python-libcloud"
|
||||||
|
@ -4082,6 +4098,14 @@ _eof
|
||||||
}
|
}
|
||||||
|
|
||||||
install_amazon_linux_ami_git_deps() {
|
install_amazon_linux_ami_git_deps() {
|
||||||
|
|
||||||
|
# When installing from git, this variable might not be set yet for amazon linux. Set this
|
||||||
|
# to "latest" in order to set up the SaltStack repository and avoid a malformed baseurl
|
||||||
|
# and gpgkey reference in the install_amazon_linux_amI_deps function.
|
||||||
|
if [ "$STABLE_REV" = "" ]; then
|
||||||
|
STABLE_REV="latest"
|
||||||
|
fi
|
||||||
|
|
||||||
install_amazon_linux_ami_deps || return 1
|
install_amazon_linux_ami_deps || return 1
|
||||||
|
|
||||||
if ! __check_command_exists git; then
|
if ! __check_command_exists git; then
|
||||||
|
@ -4098,7 +4122,6 @@ install_amazon_linux_ami_git_deps() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Let's trigger config_salt()
|
# Let's trigger config_salt()
|
||||||
if [ "$_TEMP_CONFIG_DIR" = "null" ]; then
|
if [ "$_TEMP_CONFIG_DIR" = "null" ]; then
|
||||||
_TEMP_CONFIG_DIR="${_SALT_GIT_CHECKOUT_DIR}/conf/"
|
_TEMP_CONFIG_DIR="${_SALT_GIT_CHECKOUT_DIR}/conf/"
|
||||||
|
@ -4410,7 +4433,7 @@ __configure_freebsd_pkg_details() {
|
||||||
echo " url: \"${SALTPKGCONFURL}\","
|
echo " url: \"${SALTPKGCONFURL}\","
|
||||||
echo " mirror_type: \"http\","
|
echo " mirror_type: \"http\","
|
||||||
echo " enabled: true"
|
echo " enabled: true"
|
||||||
echo " prioroity: 10"
|
echo " priority: 10"
|
||||||
echo "}"
|
echo "}"
|
||||||
} > $salt_conf_file
|
} > $salt_conf_file
|
||||||
FROM_SALTSTACK="-r SaltStack"
|
FROM_SALTSTACK="-r SaltStack"
|
||||||
|
@ -5204,7 +5227,16 @@ install_opensuse_git_post() {
|
||||||
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
|
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
|
||||||
|
|
||||||
if [ -f /bin/systemctl ]; then
|
if [ -f /bin/systemctl ]; then
|
||||||
|
use_usr_lib=$BS_FALSE
|
||||||
if [ "${DISTRO_MAJOR_VERSION}" -gt 13 ] || ([ "${DISTRO_MAJOR_VERSION}" -eq 13 ] && [ "${DISTRO_MINOR_VERSION}" -ge 2 ]); then
|
if [ "${DISTRO_MAJOR_VERSION}" -gt 13 ] || ([ "${DISTRO_MAJOR_VERSION}" -eq 13 ] && [ "${DISTRO_MINOR_VERSION}" -ge 2 ]); then
|
||||||
|
use_usr_lib=$BS_TRUE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${DISTRO_MAJOR_VERSION}" -eq 12 ] && [ -d "/usr/lib/systemd/" ]; then
|
||||||
|
use_usr_lib=$BS_TRUE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${use_usr_lib}" -eq $BS_TRUE ]; then
|
||||||
__copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/salt-${fname}.service" "/usr/lib/systemd/system/salt-${fname}.service"
|
__copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/salt-${fname}.service" "/usr/lib/systemd/system/salt-${fname}.service"
|
||||||
else
|
else
|
||||||
__copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/salt-${fname}.service" "/lib/systemd/system/salt-${fname}.service"
|
__copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/salt-${fname}.service" "/lib/systemd/system/salt-${fname}.service"
|
||||||
|
@ -5371,7 +5403,7 @@ install_suse_12_stable_deps() {
|
||||||
}
|
}
|
||||||
|
|
||||||
install_suse_12_git_deps() {
|
install_suse_12_git_deps() {
|
||||||
install_suse_11_stable_deps || return 1
|
install_suse_12_stable_deps || return 1
|
||||||
|
|
||||||
if ! __check_command_exists git; then
|
if ! __check_command_exists git; then
|
||||||
__zypper_install git || return 1
|
__zypper_install git || return 1
|
||||||
|
|
105
tests/runtests.ps1
Normal file
105
tests/runtests.ps1
Normal file
|
@ -0,0 +1,105 @@
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
A simple Powershell script to test installed salt minion on windows.
|
||||||
|
|
||||||
|
.PARAMETER version
|
||||||
|
Salt version installed.
|
||||||
|
|
||||||
|
.PARAMETER runservice
|
||||||
|
Boolean flag whenever to test if service is running.
|
||||||
|
|
||||||
|
.PARAMETER noservice
|
||||||
|
Boolean flag whenever to test if service is not running.
|
||||||
|
|
||||||
|
.PARAMETER minion
|
||||||
|
Name of the minion installed on this host.
|
||||||
|
|
||||||
|
.PARAMETER master
|
||||||
|
Name of the master configured on this host.
|
||||||
|
|
||||||
|
.EXAMPLE
|
||||||
|
./runtests.ps1
|
||||||
|
Runs without any parameters. Uses all the default values/settings.
|
||||||
|
#>
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Commandlet Binding
|
||||||
|
#===============================================================================
|
||||||
|
[CmdletBinding()]
|
||||||
|
Param(
|
||||||
|
[Parameter(Mandatory=$False,ValueFromPipeline=$True)]
|
||||||
|
[string]$version = $null,
|
||||||
|
|
||||||
|
[Parameter(Mandatory=$False,ValueFromPipeline=$True)]
|
||||||
|
[switch]$runservice,
|
||||||
|
|
||||||
|
[Parameter(Mandatory=$False,ValueFromPipeline=$True)]
|
||||||
|
[switch]$noservice,
|
||||||
|
|
||||||
|
[Parameter(Mandatory=$False,ValueFromPipeline=$True)]
|
||||||
|
[string]$minion = $null,
|
||||||
|
|
||||||
|
[Parameter(Mandatory=$False,ValueFromPipeline=$True)]
|
||||||
|
[string]$master = $null
|
||||||
|
)
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Script Functions
|
||||||
|
#===============================================================================
|
||||||
|
function Get-Grains ([string]$Name) {
|
||||||
|
$Command = "salt-call --local --out json --out-indent -1 grains.get $Name"
|
||||||
|
$Result = iex $Command | Out-String | ConvertFrom-Json
|
||||||
|
|
||||||
|
Write-Verbose "salt-call grains.get ${Name}:`n${Result}"
|
||||||
|
return $Result."local"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-Service-Status([string]$Name) {
|
||||||
|
$Service = Get-Service $Name -ErrorAction Stop
|
||||||
|
$Status = $Service.Status
|
||||||
|
|
||||||
|
Write-Verbose "${Name}: ${Status}"
|
||||||
|
return $Status
|
||||||
|
}
|
||||||
|
|
||||||
|
function Assert-Equal {
|
||||||
|
[CmdletBinding()]
|
||||||
|
Param (
|
||||||
|
[Parameter(Mandatory=$True,ValueFromPipeline=$True)]
|
||||||
|
[string]$Actual,
|
||||||
|
|
||||||
|
[Parameter(Mandatory=$True,ValueFromPipeline=$True)]
|
||||||
|
[string]$Expected
|
||||||
|
)
|
||||||
|
|
||||||
|
If ($Actual -ne $Expected) {
|
||||||
|
throw "Assert: $Actual != $Expected"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
# Do enabled checks
|
||||||
|
#===============================================================================
|
||||||
|
if ($True) {
|
||||||
|
Get-Grains -Name os_family | Assert-Equal -Expected "Windows"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($version) {
|
||||||
|
Get-Grains -Name saltversion | Assert-Equal -Expected $version
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($master) {
|
||||||
|
Get-Grains -Name master | Assert-Equal -Expected $master
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($minion) {
|
||||||
|
Get-Grains -Name id | Assert-Equal -Expected $minion
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($runservice) {
|
||||||
|
Get-Service-Status salt-minion | Assert-Equal -Expected "Running"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($noservice) {
|
||||||
|
Get-Service-Status salt-minion | Assert-Equal -Expected "Stopped"
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue