Merge develop into stable for v2024.11.26 release

This commit is contained in:
Salt Project Packaging 2024-11-26 16:40:54 +00:00
commit f69f185e1b
7 changed files with 221 additions and 153 deletions

View file

@ -180,6 +180,21 @@ jobs:
debian-12:
name: Debian 12
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
uses: ./.github/workflows/test-linux.yml
needs:
- lint
- generate-actions-workflow
with:
distro-slug: debian-12
display-name: Debian 12
container-slug: systemd-debian-12
timeout: 20
instances: '["stable-3007", "onedir-3007", "stable-3007-1", "latest", "default"]'
photon-5: photon-5:
name: Photon OS 5 name: Photon OS 5
if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true' if: github.event_name == 'push' || needs.collect-changed-files.outputs.run-tests == 'true'
@ -237,7 +252,7 @@ jobs:
display-name: Ubuntu 22.04 display-name: Ubuntu 22.04
container-slug: systemd-ubuntu-22.04 container-slug: systemd-ubuntu-22.04
timeout: 20 timeout: 20
instances: '["stable-3006", "onedir-3006", "stable-3006-8", "stable-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]' instances: '["stable-3006", "git-3006", "onedir-3006", "stable-3006-8", "stable-3007", "git-3007", "onedir-3007", "stable-3007-1", "git-master", "latest", "default"]'
set-pipeline-exit-status: set-pipeline-exit-status:
@ -252,6 +267,7 @@ jobs:
- macos-13 - macos-13
- macos-14 - macos-14
- windows-2022 - windows-2022
- debian-12
- photon-5 - photon-5
- rockylinux-8 - rockylinux-8
- rockylinux-9 - rockylinux-9

View file

@ -18,6 +18,7 @@ os.chdir(os.path.abspath(os.path.dirname(__file__)))
# "ubuntu-2004", # "ubuntu-2004",
# "ubuntu-2404", # "ubuntu-2404",
LINUX_DISTROS = [ LINUX_DISTROS = [
"debian-12",
"photon-5", "photon-5",
"rockylinux-8", "rockylinux-8",
"rockylinux-9", "rockylinux-9",
@ -38,15 +39,14 @@ OSX = [
# will add these when they become available with systemd # will add these when they become available with systemd
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023", # "amazonlinux-2023",
# "centos-stream9",
# "debian-11", # "debian-11",
# "debian-12",
# "debian-13", # "debian-13",
# "fedora-40", # "fedora-40",
# "photon-4", # "photon-4",
# "ubuntu-2004", # "ubuntu-2004",
# "ubuntu-2404", # "ubuntu-2404",
STABLE_DISTROS = [ STABLE_DISTROS = [
"debian-12",
"photon-5", "photon-5",
"rockylinux-8", "rockylinux-8",
"rockylinux-9", "rockylinux-9",
@ -58,13 +58,13 @@ STABLE_DISTROS = [
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023", # "amazonlinux-2023",
# "debian-11", # "debian-11",
# "debian-12",
# "debian-13", # "debian-13",
# "fedora-40", # "fedora-40",
# "photon-4", # "photon-4",
# "ubuntu-2004", # "ubuntu-2004",
# "ubuntu-2404", # "ubuntu-2404",
ONEDIR_DISTROS = [ ONEDIR_DISTROS = [
"debian-12",
"photon-5", "photon-5",
"rockylinux-8", "rockylinux-8",
"rockylinux-9", "rockylinux-9",
@ -75,12 +75,12 @@ ONEDIR_DISTROS = [
# will add these when they become available with systemd # will add these when they become available with systemd
# "amazonlinux-2", # "amazonlinux-2",
# "amazonlinux-2023", # "amazonlinux-2023",
# "debian-12",
# "photon-4", # "photon-4",
# "photon-5", # "photon-5",
# "rockylinux-9", # "rockylinux-8",
# "ubuntu-2404", # "ubuntu-2404",
ONEDIR_RC_DISTROS = [ ONEDIR_RC_DISTROS = [
"debian-12",
"photon-5", "photon-5",
"rockylinux-9", "rockylinux-9",
"ubuntu-2204", "ubuntu-2204",
@ -97,6 +97,7 @@ BLACKLIST_3007 = [
"photon-5", "photon-5",
] ]
# "ubuntu-2204",
BLACKLIST_GIT_3006 = [ BLACKLIST_GIT_3006 = [
"amazonlinux-2", "amazonlinux-2",
"amazonlinux-2023", "amazonlinux-2023",
@ -107,10 +108,10 @@ BLACKLIST_GIT_3006 = [
"photon-5", "photon-5",
"rockylinux-9", "rockylinux-9",
"ubuntu-2004", "ubuntu-2004",
"ubuntu-2204",
"ubuntu-2404", "ubuntu-2404",
] ]
# "ubuntu-2204",
BLACKLIST_GIT_3007 = [ BLACKLIST_GIT_3007 = [
"amazonlinux-2", "amazonlinux-2",
"amazonlinux-2023", "amazonlinux-2023",
@ -122,13 +123,16 @@ BLACKLIST_GIT_3007 = [
"photon-5", "photon-5",
"rockylinux-9", "rockylinux-9",
"ubuntu-2004", "ubuntu-2004",
"ubuntu-2204",
"ubuntu-2404", "ubuntu-2404",
] ]
BLACKLIST_GIT_MASTER = [ BLACKLIST_GIT_MASTER = [
"amazonlinux-2", "amazonlinux-2",
"amazonlinux-2023", "amazonlinux-2023",
"debian-11",
"debian-12",
"debian-13",
"fedora-40",
"photon-4", "photon-4",
"photon-5", "photon-5",
"rockylinux-9", "rockylinux-9",

View file

@ -1,3 +1,12 @@
# v2024.11.26
## What's Changed
- Updated URLs in README, and fix deps download issue on RedHat family by @dmurphy18 in https://github.com/saltstack/salt-bootstrap/pull/2052
- Update README script help output and scriptversions by @ScriptAutomate in https://github.com/saltstack/salt-bootstrap/pull/2056
**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2024.11.21...v2024.11.26
# v2024.11.21 # v2024.11.21
## What's Changed ## What's Changed

View file

@ -37,6 +37,7 @@ sum** of the downloaded ``bootstrap-salt.sh`` file.
The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is: The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is:
- 2024.11.21: ``ddf624c3a94d721da3f7629402a6c7ecc9dd96d13c1ead2a626314e97cee982a``
- 2024.11.07: ``70a9783649e129985563d1a86cf28b8984499643e62ae1dc47dc008bd204fcbb`` - 2024.11.07: ``70a9783649e129985563d1a86cf28b8984499643e62ae1dc47dc008bd204fcbb``
- 2024.09.24: ``88e4e4cad4b115a7b721dd9c21d5ee5df390b5b73b63de48f99399146f43f371`` - 2024.09.24: ``88e4e4cad4b115a7b721dd9c21d5ee5df390b5b73b63de48f99399146f43f371``
- 2024.07.23: ``7212b6b497b5c3d2bf15bfe5301625ec7bc1bf3e2949cd47d8e2073614935bf8`` - 2024.07.23: ``7212b6b497b5c3d2bf15bfe5301625ec7bc1bf3e2949cd47d8e2073614935bf8``
@ -58,8 +59,9 @@ If you're looking for a *one-liner* to install Salt, please scroll to the bottom
instructions for `Installing via an Insecure One-Liner`_. instructions for `Installing via an Insecure One-Liner`_.
There are also .sha256 files for verifying against in the repo for the stable branch. You can also There are also .sha256 files for verifying against in the repo for the stable branch. You can also
get the correct sha256 sum for the stable release from https://bootstrap.saltproject.io/sha256 and get the correct sha256 sum for the stable release from
https://winbootstrap.saltproject.io/sha256 https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh.sha256 and
https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.ps1.sha256
Contributing Contributing
------------ ------------
@ -82,112 +84,123 @@ To view the latest options and descriptions for ``salt-bootstrap``, use ``-h`` a
Usage : bootstrap-salt.sh [options] <install-type> [install-type-args] Usage : bootstrap-salt.sh [options] <install-type> [install-type-args]
Installation types: Installation types:
- stable Install latest stable release. This is the default - stable Install latest stable release. This is the default
install type install type
- stable [branch] Install latest version on a branch. Only supported - stable [branch] Install latest version on a branch. Only supported
for packages available at repo.saltproject.io for packages available at packages.broadcom.com
- stable [version] Install a specific version. Only supported for - stable [version] Install a specific version. Only supported for
packages available at repo.saltproject.io packages available at packages.broadcom.com
To pin a 3xxx minor version, specify it as 3xxx.0 To pin a 3xxx minor version, specify it as 3xxx.0
- testing RHEL-family specific: configure EPEL testing repo - testing RHEL-family specific: configure EPEL testing repo
- git Install from the head of the master branch - git Install from the head of the master branch
- git [ref] Install from any git ref (such as a branch, tag, or - git [ref] Install from any git ref (such as a branch, tag, or
commit) commit)
- onedir Install latest onedir release.
- onedir [version] Install a specific version. Only supported for
onedir packages available at packages.broadcom.com
- onedir_rc Install latest onedir RC release.
- onedir_rc [version] Install a specific version. Only supported for
onedir RC packages available at packages.broadcom.com
Examples: Examples:
- bootstrap-salt.sh - bootstrap-salt.sh
- bootstrap-salt.sh stable - bootstrap-salt.sh stable
- bootstrap-salt.sh stable 3006.7 - bootstrap-salt.sh stable 3006
- bootstrap-salt.sh stable v3006.8 - bootstrap-salt.sh stable 3006.1
- bootstrap-salt.sh testing - bootstrap-salt.sh testing
- bootstrap-salt.sh git - bootstrap-salt.sh git
- bootstrap-salt.sh git 3006.7
- bootstrap-salt.sh git v3006.8
- bootstrap-salt.sh git 3007.1 - bootstrap-salt.sh git 3007.1
- bootstrap-salt.sh git v3007.1 - bootstrap-salt.sh git v3007.1
- bootstrap-salt.sh git 06f249901a2e2f1ed310d58ea3921a129f214358 - bootstrap-salt.sh git 06f249901a2e2f1ed310d58ea3921a129f214358
- bootstrap-salt.sh onedir
- bootstrap-salt.sh onedir 3006
- bootstrap-salt.sh onedir_rc
- bootstrap-salt.sh onedir_rc 3008
Options: Options:
-h Display this message -a Pip install all Python pkg dependencies for Salt. Requires -V to install
-v Display script version all pip pkgs into the virtualenv.
-n No colours (Only available for Ubuntu based distributions)
-D Show debug output -A Pass the salt-master DNS name or IP. This will be stored under
\${BS_SALT_ETC_DIR}/minion.d/99-master-address.conf
-b Assume that dependencies are already installed and software sources are
set up. If git is selected, git tree is still checked out as dependency
step.
-c Temporary configuration directory -c Temporary configuration directory
-g Salt Git repository URL. Default: https://github.com/saltstack/salt.git -C Only run the configuration function. Implies -F (forced overwrite).
-w Install packages from downstream package repository rather than To overwrite Master, Syndic or Api configs, -M,-S or -W, respectively, must
upstream, saltstack package repository. This is currently only also be specified. Salt installation will be ommitted, but some of the
implemented for SUSE. dependencies could be installed to write configuration with -j or -J.
-k Temporary directory holding the minion keys which will pre-seed
the master.
-s Sleep time used when waiting for daemons to start, restart and when
checking for the services running. Default: 3
-L Also install salt-cloud and required python-libcloud package
-M Also install salt-master
-S Also install salt-syndic
-W Also install salt-api
-N Do not install salt-minion
-X Do not start daemons after installation
-d Disables checking if Salt services are enabled to start on system boot. -d Disables checking if Salt services are enabled to start on system boot.
You can also do this by touching /tmp/disable_salt_checks on the target You can also do this by touching /tmp/disable_salt_checks on the target
host. Default: ${BS_FALSE} host. Default: \${BS_FALSE}
-P Allow pip based installations. On some distributions the required salt -D Show debug output
packages or its dependencies are not available as a package for that -f Force shallow cloning for git installations.
distribution. Using this flag allows the script to use pip as a last This may result in an "n/a" in the version number.
resort method. NOTE: This only works for functions which actually -F Allow copied files to overwrite existing (config, init.d, etc)
implement pip based installations. -g Salt Git repository URL. Default: https://github.com/saltstack/salt.git
-U If set, fully upgrade the system prior to bootstrapping Salt -h Display this message
-H Use the specified HTTP proxy for all download URLs (including https://).
For example: http://myproxy.example.com:3128
-i Pass the salt-minion id. This will be stored under
\${BS_SALT_ETC_DIR}/minion_id
-I If set, allow insecure connections while downloading any files. For -I If set, allow insecure connections while downloading any files. For
example, pass '--no-check-certificate' to 'wget' or '--insecure' to example, pass '--no-check-certificate' to 'wget' or '--insecure' to
'curl'. On Debian and Ubuntu, using this option with -U allows obtaining 'curl'. On Debian and Ubuntu, using this option with -U allows obtaining
GnuPG archive keys insecurely if distro has changed release signatures. GnuPG archive keys insecurely if distro has changed release signatures.
-F Allow copied files to overwrite existing (config, init.d, etc)
-K If set, keep the temporary files in the temporary directories specified
with -c and -k
-C Only run the configuration function. Implies -F (forced overwrite).
To overwrite Master or Syndic configs, -M or -S, respectively, must
also be specified. Salt installation will be ommitted, but some of the
dependencies could be installed to write configuration with -j or -J.
-A Pass the salt-master DNS name or IP. This will be stored under
${BS_SALT_ETC_DIR}/minion.d/99-master-address.conf
-i Pass the salt-minion id. This will be stored under
${BS_SALT_ETC_DIR}/minion_id
-p Extra-package to install while installing Salt dependencies. One package
per -p flag. You are responsible for providing the proper package name.
-H Use the specified HTTP proxy for all download URLs (including https://).
For example: http://myproxy.example.com:3128
-b Assume that dependencies are already installed and software sources are
set up. If git is selected, git tree is still checked out as dependency
step.
-f Force shallow cloning for git installations.
This may result in an "n/a" in the version number.
-l Disable ssl checks. When passed, switches "https" calls to "http" where
possible.
-V Install Salt into virtualenv
(only available for Ubuntu based distributions)
-a Pip install all Python pkg dependencies for Salt. Requires -V to install
all pip pkgs into the virtualenv.
(Only available for Ubuntu based distributions)
-r Disable all repository configuration performed by this script. This
option assumes all necessary repository configuration is already present
on the system.
-R Specify a custom repository URL. Assumes the custom repository URL
points to a repository that mirrors Salt packages located at
repo.saltproject.io. The option passed with -R replaces the
"repo.saltproject.io". If -R is passed, -r is also set. Currently only
works on CentOS/RHEL and Debian based distributions.
-J Replace the Master config file with data passed in as a JSON string. If
a Master config file is found, a reasonable effort will be made to save
the file with a ".bak" extension. If used in conjunction with -C or -F,
no ".bak" file will be created as either of those options will force
a complete overwrite of the file.
-j Replace the Minion config file with data passed in as a JSON string. If -j Replace the Minion config file with data passed in as a JSON string. If
a Minion config file is found, a reasonable effort will be made to save a Minion config file is found, a reasonable effort will be made to save
the file with a ".bak" extension. If used in conjunction with -C or -F, the file with a ".bak" extension. If used in conjunction with -C or -F,
no ".bak" file will be created as either of those options will force no ".bak" file will be created as either of those options will force
a complete overwrite of the file. a complete overwrite of the file.
-J Replace the Master config file with data passed in as a JSON string. If
a Master config file is found, a reasonable effort will be made to save
the file with a ".bak" extension. If used in conjunction with -C or -F,
no ".bak" file will be created as either of those options will force
a complete overwrite of the file.
-k Temporary directory holding the minion keys which will pre-seed
the master.
-K If set, keep the temporary files in the temporary directories specified
with -c and -k
-l Disable ssl checks. When passed, switches "https" calls to "http" where
possible.
-L Also install salt-cloud and required python-libcloud package
-M Also install salt-master
-n No colours
-N Do not install salt-minion
-p Extra-package to install while installing Salt dependencies. One package
per -p flag. You are responsible for providing the proper package name.
-P Allow pip based installations. On some distributions the required salt
packages or its dependencies are not available as a package for that
distribution. Using this flag allows the script to use pip as a last
resort method. NOTE: This only works for functions which actually
implement pip based installations.
-q Quiet salt installation from git (setup.py install -q) -q Quiet salt installation from git (setup.py install -q)
-x Changes the Python version used to install Salt (default: Python 3)
Python 2.7 is not longer supported.
-Q Quickstart, install the Salt master and the Salt minion. -Q Quickstart, install the Salt master and the Salt minion.
And automatically accept the minion key. And automatically accept the minion key.
-R Specify a custom repository URL. Assumes the custom repository URL
points to a repository that mirrors Salt packages located at
packages.broadcom.com. The option passed with -R replaces the
"packages.broadcom.com". If -R is passed, -r is also set. Currently only
works on CentOS/RHEL and Debian based distributions and macOS.
-s Sleep time used when waiting for daemons to start, restart and when
checking for the services running. Default: 3
-S Also install salt-syndic
-r Disable all repository configuration performed by this script. This
option assumes all necessary repository configuration is already present
on the system.
-U If set, fully upgrade the system prior to bootstrapping Salt
-v Display script version
-V Install Salt into virtualenv
(only available for Ubuntu based distributions)
-W Also install salt-api
-x Changes the Python version used to install Salt (default: Python 3).
Python 2.7 is no longer supported.
-X Do not start daemons after installation
The Salt Bootstrap script has a wide variety of options that can be passed as The Salt Bootstrap script has a wide variety of options that can be passed as
well as several ways of obtaining the bootstrap script itself. Note that the use of ``sudo`` well as several ways of obtaining the bootstrap script itself. Note that the use of ``sudo``
@ -207,35 +220,35 @@ If you want to install a package of a specific release version, from the Salt Pr
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3006.1 sudo sh bootstrap-salt.sh -P stable 3006.1
If you want to install a specific release version, based on the Git tags: If you want to install a specific release version, based on the Git tags:
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3006.1 sudo sh bootstrap-salt.sh git v3006.1
Using ``curl`` to install latest development version from GitHub: Using ``curl`` to install latest development version from GitHub:
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git master sudo sh bootstrap-salt.sh git master
To install a specific branch from a Git fork: To install a specific branch from a Git fork:
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -g https://github.com/myuser/salt.git git mybranch sudo sh bootstrap-salt.sh -g https://github.com/myuser/salt.git git mybranch
If all you want is to install a ``salt-master`` using latest Git: If all you want is to install a ``salt-master`` using latest Git:
.. code:: console .. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -M -N git master sudo sh bootstrap-salt.sh -M -N git master
If your host has Internet access only via HTTP proxy, from the Salt Project repo: If your host has Internet access only via HTTP proxy, from the Salt Project repo:
@ -243,7 +256,7 @@ If your host has Internet access only via HTTP proxy, from the Salt Project repo
.. code:: console .. code:: console
PROXY='http://user:password@myproxy.example.com:3128' PROXY='http://user:password@myproxy.example.com:3128'
curl -o bootstrap-salt.sh -L -x "$PROXY" https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L -x "$PROXY" https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P -H "$PROXY" stable sudo sh bootstrap-salt.sh -P -H "$PROXY" stable
If your host has Internet access only via HTTP proxy, installing via Git: If your host has Internet access only via HTTP proxy, installing via Git:
@ -251,7 +264,7 @@ If your host has Internet access only via HTTP proxy, installing via Git:
.. code:: console .. code:: console
PROXY='http://user:password@myproxy.example.com:3128' PROXY='http://user:password@myproxy.example.com:3128'
curl -o bootstrap-salt.sh -L -x "$PROXY" https://bootstrap.saltproject.io curl -o bootstrap-salt.sh -L -x "$PROXY" https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -H "$PROXY" git sudo sh bootstrap-salt.sh -H "$PROXY" git
@ -262,22 +275,22 @@ Using ``wget`` to install your distribution's stable packages:
.. code:: console .. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io wget -O bootstrap-salt.sh https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh sudo sh bootstrap-salt.sh
Installing a specific version from git using ``wget``: Installing a specific version from git using ``wget``:
.. code:: console .. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io wget -O bootstrap-salt.sh https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3004.1 sudo sh bootstrap-salt.sh git v3006.8
Installing a specific version package from the Salt Project repo using ``wget``: Installing a specific version package from the Salt Project repo using ``wget``:
.. code:: console .. code:: console
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io wget -O bootstrap-salt.sh https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3006.1 sudo sh bootstrap-salt.sh -P stable 3006.8
**NOTE** **NOTE**
@ -292,14 +305,14 @@ If you already have Python installed, ``python 3.10``, then it's as easy as:
.. code:: console .. code:: console
python -m urllib "https://bootstrap.saltproject.io" > bootstrap-salt.sh python -m urllib "https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh" > bootstrap-salt.sh
sudo sh bootstrap-salt.sh -P stable 3006.1 sudo sh bootstrap-salt.sh -P stable 3006.1
With python version 3: With python version 3:
.. code:: console .. code:: console
python3 -c 'import urllib.request; print(urllib.request.urlopen("https://bootstrap.saltproject.io").read().decode("ascii"))' > bootstrap-salt.sh python3 -c 'import urllib.request; print(urllib.request.urlopen("https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh").read().decode("ascii"))' > bootstrap-salt.sh
sudo sh bootstrap-salt.sh git v3006.1 sudo sh bootstrap-salt.sh git v3006.1
Note: Python 2.x is no longer supported given it reached it's End-Of-Life Jan. 1st, 2020 Note: Python 2.x is no longer supported given it reached it's End-Of-Life Jan. 1st, 2020
@ -322,25 +335,25 @@ Installing the latest stable release of Salt (default):
.. code:: console .. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh curl -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh
Using ``wget`` to install your distribution's stable packages: Using ``wget`` to install your distribution's stable packages:
.. code:: console .. code:: console
wget -O - https://bootstrap.saltproject.io | sudo sh wget -O - https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh
Installing a target version package of Salt from the Salt Project repo: Installing a target version package of Salt from the Salt Project repo:
.. code:: console .. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh -s -- stable 3006.8 curl -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh -s -- stable 3006.8
Installing the latest master branch of Salt from git: Installing the latest master branch of Salt from git:
.. code:: console .. code:: console
curl -L https://bootstrap.saltproject.io | sudo sh -s -- git master curl -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh | sudo sh -s -- git master
Note: use of git is recommended for development environments, for example: testing new features of Note: use of git is recommended for development environments, for example: testing new features of
Salt which have not yet been released. Salt which have not yet been released.
@ -355,9 +368,8 @@ Using ``PowerShell`` to install latest stable version:
.. code:: powershell .. code:: powershell
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12' [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12'
Invoke-WebRequest -Uri https://winbootstrap.saltproject.io -OutFile "$env:TEMP\bootstrap-salt.ps1" Invoke-WebRequest -Uri https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.ps1 -OutFile "$env:TEMP\bootstrap-salt.ps1"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser & "$env:TEMP\bootstrap-salt.ps1"
& "$env:TEMP\bootstrap-salt.ps1"
Display information about the install script parameters: Display information about the install script parameters:
@ -369,7 +381,7 @@ Using ``cygwin`` to install latest stable version:
.. code:: console .. code:: console
curl -o bootstrap-salt.ps1 -L https://winbootstrap.saltproject.io curl -o bootstrap-salt.ps1 -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.ps1
"/cygdrive/c/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ./bootstrap-salt.ps1" "/cygdrive/c/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ./bootstrap-salt.ps1"
@ -379,13 +391,13 @@ Supported Operating Systems
The salt-bootstrap script officially supports the distributions outlined in The salt-bootstrap script officially supports the distributions outlined in
`Salt's Supported Operating Systems `Salt's Supported Operating Systems
<https://docs.saltproject.io/salt/install-guide/en/latest/topics/salt-supported-operating-systems.html>`_ <https://docs.saltproject.io/salt/install-guide/en/latest/topics/salt-supported-operating-systems.html>`_
document, (BSD-based OSs, Solaris and AIX are no longer document, (BSD-based OSs, Solaris and AIX are no longer supported).
supported). The operating systems listed below should reflect this document but may become out of The operating systems listed below should reflect this document but may become out of date.
date. If an operating system is listed below, but is not listed on the official supported operating If an operating system is listed below, but is not listed on the official supported operating
systems document, the level of support is "best-effort". systems document, the level of support is "best-effort".
Since Salt is written in Python, the packages available from the `Salt Project's repository Since Salt is written in Python, the packages available from the `Salt Project's repository
<https://repo.saltproject.io/salt/py3>`_ are <packages.broadcom.com>`_ are
CPU architecture independent and could be installed on any hardware supported by Linux kernel. CPU architecture independent and could be installed on any hardware supported by Linux kernel.
However, the Salt Project does package Salt's binary dependencies only for ``x86_64`` (``amd64``) However, the Salt Project does package Salt's binary dependencies only for ``x86_64`` (``amd64``)
and ``AArch64`` (``arm64``). and ``AArch64`` (``arm64``).

View file

@ -39,7 +39,8 @@
Salt Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-bootstrap Salt Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-bootstrap
Original Vagrant Provisioner Project - https://github.com/saltstack/salty-vagrant Original Vagrant Provisioner Project - https://github.com/saltstack/salty-vagrant
Vagrant Project (utilizes this script) - https://github.com/mitchellh/vagrant Vagrant Project (utilizes this script) - https://github.com/mitchellh/vagrant
Salt Download Location - https://repo.saltproject.io/salt/py3/windows Salt Download Location - https://packages.broadcom.com/artifactory/saltproject-generic/windows/
Salt Manual Install Directions (Windows) - https://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/windows.html
#> #>
#=============================================================================== #===============================================================================
@ -107,7 +108,7 @@ if ($help) {
exit 0 exit 0
} }
$__ScriptVersion = "2024.11.21" $__ScriptVersion = "2024.11.26"
$ScriptName = $myInvocation.MyCommand.Name $ScriptName = $myInvocation.MyCommand.Name
# We'll check for the Version next, because it also has no requirements # We'll check for the Version next, because it also has no requirements

View file

@ -26,7 +26,7 @@
#====================================================================================================================== #======================================================================================================================
set -o nounset # Treat unset variables as an error set -o nounset # Treat unset variables as an error
__ScriptVersion="2024.11.21" __ScriptVersion="2024.11.26"
__ScriptName="bootstrap-salt.sh" __ScriptName="bootstrap-salt.sh"
__ScriptFullName="$0" __ScriptFullName="$0"
@ -544,8 +544,8 @@ __exit_cleanup() {
echodebug "Cleaning up the Salt Temporary Git Repository" echodebug "Cleaning up the Salt Temporary Git Repository"
# shellcheck disable=SC2164 # shellcheck disable=SC2164
cd "${__SALT_GIT_CHECKOUT_PARENT_DIR}" cd "${__SALT_GIT_CHECKOUT_PARENT_DIR}"
rm -rf "${_SALT_GIT_CHECKOUT_DIR}" rm -fR "${_SALT_GIT_CHECKOUT_DIR}"
#rm -rf "${_SALT_GIT_CHECKOUT_DIR}/deps" #rm -fR "${_SALT_GIT_CHECKOUT_DIR}/deps"
else else
echowarn "Not cleaning up the Salt Temporary git repository on request" echowarn "Not cleaning up the Salt Temporary git repository on request"
echowarn "Note that if you intend to re-run this script using the git approach, you might encounter some issues" echowarn "Note that if you intend to re-run this script using the git approach, you might encounter some issues"
@ -2093,6 +2093,7 @@ __tdnf_install_noinput() {
# DESCRIPTION: (DRY) Helper function to clone and checkout salt to a # DESCRIPTION: (DRY) Helper function to clone and checkout salt to a
# specific revision. # specific revision.
#---------------------------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------------------------
# shellcheck disable=SC2120
__git_clone_and_checkout() { __git_clone_and_checkout() {
echodebug "Installed git version: $(git --version | awk '{ print $3 }')" echodebug "Installed git version: $(git --version | awk '{ print $3 }')"
@ -2101,6 +2102,12 @@ __git_clone_and_checkout() {
export GIT_SSL_NO_VERIFY=1 export GIT_SSL_NO_VERIFY=1
fi fi
if [ "$(echo "$GIT_REV" | grep -E '^(3006|3007)$')" != "" ]; then
GIT_REV_ADJ="$GIT_REV.x" # branches are 3006.x or 3007.x
else
GIT_REV_ADJ="$GIT_REV"
fi
__SALT_GIT_CHECKOUT_PARENT_DIR=$(dirname "${_SALT_GIT_CHECKOUT_DIR}" 2>/dev/null) __SALT_GIT_CHECKOUT_PARENT_DIR=$(dirname "${_SALT_GIT_CHECKOUT_DIR}" 2>/dev/null)
__SALT_GIT_CHECKOUT_PARENT_DIR="${__SALT_GIT_CHECKOUT_PARENT_DIR:-/tmp/git}" __SALT_GIT_CHECKOUT_PARENT_DIR="${__SALT_GIT_CHECKOUT_PARENT_DIR:-/tmp/git}"
__SALT_CHECKOUT_REPONAME="$(basename "${_SALT_GIT_CHECKOUT_DIR}" 2>/dev/null)" __SALT_CHECKOUT_REPONAME="$(basename "${_SALT_GIT_CHECKOUT_DIR}" 2>/dev/null)"
@ -2129,15 +2136,15 @@ __git_clone_and_checkout() {
git fetch --tags upstream git fetch --tags upstream
fi fi
echodebug "Hard reseting the cloned repository to ${GIT_REV}" echodebug "Hard reseting the cloned repository to ${GIT_REV_ADJ}"
git reset --hard "$GIT_REV" || return 1 git reset --hard "$GIT_REV_ADJ" || return 1
# Just calling `git reset --hard $GIT_REV` on a branch name that has # Just calling `git reset --hard $GIT_REV_ADJ` on a branch name that has
# already been checked out will not update that branch to the upstream # already been checked out will not update that branch to the upstream
# HEAD; instead it will simply reset to itself. Check the ref to see # HEAD; instead it will simply reset to itself. Check the ref to see
# if it is a branch name, check out the branch, and pull in the # if it is a branch name, check out the branch, and pull in the
# changes. # changes.
if git branch -a | grep -q "${GIT_REV}"; then if git branch -a | grep -q "${GIT_REV_ADJ}"; then
echodebug "Rebasing the cloned repository branch" echodebug "Rebasing the cloned repository branch"
git pull --rebase || return 1 git pull --rebase || return 1
fi fi
@ -2159,16 +2166,16 @@ __git_clone_and_checkout() {
# cloning we need actually works # cloning we need actually works
if [ "$(git clone 2>&1 | grep 'single-branch')" != "" ]; then if [ "$(git clone 2>&1 | grep 'single-branch')" != "" ]; then
# The "--single-branch" option is supported, attempt shallow cloning # The "--single-branch" option is supported, attempt shallow cloning
echoinfo "Attempting to shallow clone $GIT_REV from Salt's repository ${_SALT_REPO_URL}" echoinfo "Attempting to shallow clone $GIT_REV_ADJ from Salt's repository ${_SALT_REPO_URL}"
## Shallow cloning is resulting in the wrong version of Salt, even with a depth of 5 ## Shallow cloning is resulting in the wrong version of Salt, even with a depth of 5
## getting 3007.0+0na.246d066 when it should be 3007.1+410.g246d066457, disabling for now ## getting 3007.0+0na.246d066 when it should be 3007.1+410.g246d066457, disabling for now
## if git clone --depth 1 --branch "$GIT_REV" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then ## if git clone --depth 1 --branch "$GIT_REV_ADJ" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then
echodebug "git command, git clone --branch $GIT_REV $_SALT_REPO_URL $__SALT_CHECKOUT_REPONAME" echodebug "git command, git clone --branch $GIT_REV_ADJ $_SALT_REPO_URL $__SALT_CHECKOUT_REPONAME"
if git clone --branch "$GIT_REV" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then if git clone --branch "$GIT_REV_ADJ" "$_SALT_REPO_URL" "$__SALT_CHECKOUT_REPONAME"; then
# shellcheck disable=SC2164 # shellcheck disable=SC2164
cd "${_SALT_GIT_CHECKOUT_DIR}" cd "${_SALT_GIT_CHECKOUT_DIR}"
__SHALLOW_CLONE=$BS_TRUE __SHALLOW_CLONE=$BS_TRUE
echoinfo "shallow path (disabled shallow) git cloned $GIT_REV, version $(python3 salt/version.py)" echoinfo "shallow path (disabled shallow) git cloned $GIT_REV_ADJ, version $(python3 salt/version.py)"
else else
# Shallow clone above failed(missing upstream tags???), let's resume the old behaviour. # Shallow clone above failed(missing upstream tags???), let's resume the old behaviour.
echowarn "Failed to shallow clone." echowarn "Failed to shallow clone."
@ -2187,7 +2194,7 @@ __git_clone_and_checkout() {
# shellcheck disable=SC2164 # shellcheck disable=SC2164
cd "${_SALT_GIT_CHECKOUT_DIR}" cd "${_SALT_GIT_CHECKOUT_DIR}"
echoinfo "git cloned $GIT_REV, version $(python3 salt/version.py)" echoinfo "git cloned $GIT_REV_ADJ, version $(python3 salt/version.py)"
if ! echo "$_SALT_REPO_URL" | grep -q -F -w "${_SALTSTACK_REPO_URL#*://}"; then if ! echo "$_SALT_REPO_URL" | grep -q -F -w "${_SALTSTACK_REPO_URL#*://}"; then
# We need to add the saltstack repository as a remote and fetch tags for proper versioning # We need to add the saltstack repository as a remote and fetch tags for proper versioning
@ -2197,14 +2204,14 @@ __git_clone_and_checkout() {
echodebug "Fetching upstream (SaltStack's Salt repository) git tags" echodebug "Fetching upstream (SaltStack's Salt repository) git tags"
git fetch --tags upstream || return 1 git fetch --tags upstream || return 1
# Check if GIT_REV is a remote branch or just a commit hash # Check if GIT_REV_ADJ is a remote branch or just a commit hash
if git branch -r | grep -q -F -w "origin/$GIT_REV"; then if git branch -r | grep -q -F -w "origin/$GIT_REV_ADJ"; then
GIT_REV="origin/$GIT_REV" GIT_REV_ADJ="origin/$GIT_REV_ADJ"
fi fi
fi fi
echodebug "Checking out $GIT_REV" echodebug "Checking out $GIT_REV_ADJ"
git checkout "$GIT_REV" || return 1 git checkout "$GIT_REV_ADJ" || return 1
fi fi
fi fi
@ -2800,12 +2807,23 @@ EOM
if [ ${DISTRO_NAME_L} = "ubuntu" ] && [ "$DISTRO_MAJOR_VERSION" -eq 22 ]; then if [ ${DISTRO_NAME_L} = "ubuntu" ] && [ "$DISTRO_MAJOR_VERSION" -eq 22 ]; then
echodebug "Ubuntu 22.04 has problem with base.txt requirements file, not parsing sys_platform == 'win32', upgrading from default pip works" echodebug "Ubuntu 22.04 has problem with base.txt requirements file, not parsing sys_platform == 'win32', upgrading from default pip works"
echodebug "${_pip_cmd} install ${_USE_BREAK_SYSTEM_PACKAGES} --upgrade pip" echodebug "${_pip_cmd} install ${_USE_BREAK_SYSTEM_PACKAGES} --upgrade pip"
${_pip_cmd} install ${_USE_BREAK_SYSTEM_PACKAGES} --upgrade pip || (echo "Failed to upgrade pip" && return 1) ${_pip_cmd} install ${_USE_BREAK_SYSTEM_PACKAGES} --upgrade pip
# shellcheck disable=SC2181
if [ $? -ne 0 ]; then
echo "Failed to upgrade pip"
return 1
fi
fi fi
echoinfo "Downloading Salt Dependencies from PyPi" echoinfo "Downloading Salt Dependencies from PyPi"
echodebug "Running '${_pip_cmd} download -d /tmp/git/deps ${_PIP_DOWNLOAD_ARGS} .'" echodebug "Running '${_pip_cmd} download -d /tmp/git/deps ${_PIP_DOWNLOAD_ARGS} .'"
${_pip_cmd} download -d /tmp/git/deps ${_PIP_DOWNLOAD_ARGS} . || (echo "Failed to download salt dependencies" && return 1) ${_pip_cmd} download -d /tmp/git/deps ${_PIP_DOWNLOAD_ARGS} .
# shellcheck disable=SC2181
if [ $? -ne 0 ]; then
echo "Failed to download salt dependencies"
return 1
fi
echoinfo "Installing Downloaded Salt Dependencies" echoinfo "Installing Downloaded Salt Dependencies"
echodebug "Running '${_pip_cmd} install ${_USE_BREAK_SYSTEM_PACKAGES} --ignore-installed ${_PIP_INSTALL_ARGS} /tmp/git/deps/*'" echodebug "Running '${_pip_cmd} install ${_USE_BREAK_SYSTEM_PACKAGES} --ignore-installed ${_PIP_INSTALL_ARGS} /tmp/git/deps/*'"
@ -3119,7 +3137,7 @@ install_ubuntu_deps() {
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813 # Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES="${__PACKAGES} procps pciutils" __PACKAGES="${__PACKAGES} procps pciutils"
# ensure sudo installed # ensure sudo, ps installed
__PACKAGES="${__PACKAGES} sudo" __PACKAGES="${__PACKAGES} sudo"
## include hwclock if not part of base OS (23.10 and up) ## include hwclock if not part of base OS (23.10 and up)
@ -3188,6 +3206,7 @@ install_ubuntu_git_deps() {
__apt_get_install_noinput ca-certificates __apt_get_install_noinput ca-certificates
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then
@ -3205,6 +3224,9 @@ install_ubuntu_git_deps() {
__PACKAGES="${__PACKAGES} util-linux-extra" __PACKAGES="${__PACKAGES} util-linux-extra"
fi fi
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES="${__PACKAGES} procps pciutils"
# ensure sudo installed # ensure sudo installed
__PACKAGES="${__PACKAGES} sudo" __PACKAGES="${__PACKAGES} sudo"
@ -3642,6 +3664,7 @@ install_debian_git_deps() {
__apt_get_install_noinput ca-certificates __apt_get_install_noinput ca-certificates
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then
@ -3652,6 +3675,9 @@ install_debian_git_deps() {
__PACKAGES="python${PY_PKG_VER}-dev python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc" __PACKAGES="python${PY_PKG_VER}-dev python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc"
echodebug "install_debian_git_deps() Installing ${__PACKAGES}" echodebug "install_debian_git_deps() Installing ${__PACKAGES}"
# Additionally install procps and pciutils which allows for Docker bootstraps. See 366#issuecomment-39666813
__PACKAGES="${__PACKAGES} procps pciutils"
# ensure sudo installed # ensure sudo installed
__PACKAGES="${__PACKAGES} sudo" __PACKAGES="${__PACKAGES} sudo"
@ -3987,6 +4013,7 @@ install_fedora_git_deps() {
__PACKAGES="" __PACKAGES=""
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc gcc-c++" __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc gcc-c++"
@ -4397,6 +4424,7 @@ install_centos_git_deps() {
__yum_install_noinput git || return 1 __yum_install_noinput git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="" __PACKAGES=""
@ -5442,6 +5470,7 @@ install_alpine_linux_git_deps() {
apk -U add git || return 1 apk -U add git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
apk -U add python3 python3-dev py3-pip py3-setuptools g++ linux-headers zeromq-dev openrc || return 1 apk -U add python3 python3-dev py3-pip py3-setuptools g++ linux-headers zeromq-dev openrc || return 1
@ -5608,6 +5637,7 @@ install_amazon_linux_ami_2_git_deps() {
__yum_install_noinput git || return 1 __yum_install_noinput git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc" __PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc"
@ -5827,6 +5857,7 @@ install_amazon_linux_ami_2023_git_deps() {
__yum_install_noinput git || return 1 __yum_install_noinput git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc" __PACKAGES="python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools python${PY_PKG_VER}-devel gcc"
@ -6014,6 +6045,7 @@ install_arch_linux_git_deps() {
pacman -Sy --noconfirm --needed git || return 1 pacman -Sy --noconfirm --needed git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 2 ]; then if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -eq 2 ]; then
@ -6397,6 +6429,7 @@ install_photon_git_deps() {
__PACKAGES="" __PACKAGES=""
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel linux-devel.x86_64 cython${PY_PKG_VER}" __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel linux-devel.x86_64 cython${PY_PKG_VER}"
@ -6756,6 +6789,7 @@ install_opensuse_git_deps() {
__zypper_install git || return 1 __zypper_install git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
# Check for Tumbleweed # Check for Tumbleweed
@ -6990,6 +7024,7 @@ install_opensuse_15_git_deps() {
__zypper_install git || return 1 __zypper_install git || return 1
fi fi
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then if [ -n "$_PY_EXE" ] && [ "$_PY_MAJOR_VERSION" -ne 3 ]; then
@ -7245,6 +7280,7 @@ install_gentoo_git_deps() {
echoinfo "Running emerge -v1 setuptools" echoinfo "Running emerge -v1 setuptools"
__emerge -v1 setuptools || return 1 __emerge -v1 setuptools || return 1
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__gentoo_post_dep || return 1 __gentoo_post_dep || return 1
} }
@ -7613,6 +7649,7 @@ install_macosx_git_deps() {
# Install PIP # Install PIP
$_PYEXE /tmp/get-pip.py || return 1 $_PYEXE /tmp/get-pip.py || return 1
# shellcheck disable=SC2119
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
return 0 return 0
@ -8149,6 +8186,7 @@ fi
if [ "${ITYPE}" = "git" ] && [ ${_NO_DEPS} -eq ${BS_TRUE} ]; then if [ "${ITYPE}" = "git" ] && [ ${_NO_DEPS} -eq ${BS_TRUE} ]; then
# shellcheck disable=SC2119
if ! __git_clone_and_checkout; then if ! __git_clone_and_checkout; then
echo "Failed to clone and checkout git repository." echo "Failed to clone and checkout git repository."
exit 1 exit 1

View file

@ -29,10 +29,6 @@ def run_salt_call(cmd):
if platform.system() == "Windows": if platform.system() == "Windows":
cmd.append("--out=json") cmd.append("--out=json")
result = subprocess.run(cmd, capture_output=True, text=True) result = subprocess.run(cmd, capture_output=True, text=True)
print(
f"DGM run_salt_call, cmd '{cmd}', result '{result}', stdout '{result.stdout}'",
flush=True,
)
if 0 == result.returncode: if 0 == result.returncode:
json_data = json.loads(result.stdout) json_data = json.loads(result.stdout)
else: else:
@ -43,10 +39,6 @@ def run_salt_call(cmd):
cmdl.extend(cmd) cmdl.extend(cmd)
cmdl.append("--out=json") cmdl.append("--out=json")
result = subprocess.run(cmdl, capture_output=True, text=True) result = subprocess.run(cmdl, capture_output=True, text=True)
print(
f"DGM run_salt_call, cmdl '{cmdl}', result '{result}', stdout '{result.stdout}'",
flush=True,
)
if 0 == result.returncode: if 0 == result.returncode:
json_data = json.loads(result.stdout) json_data = json.loads(result.stdout)
else: else:
@ -74,10 +66,6 @@ def test_target_salt_version(path, target_salt_version):
pytest.skip(f"No target version specified") pytest.skip(f"No target version specified")
cmd = ["salt-call", "--local", "grains.item", "saltversion", "--timeout=120"] cmd = ["salt-call", "--local", "grains.item", "saltversion", "--timeout=120"]
result = run_salt_call(cmd) result = run_salt_call(cmd)
dgm_saltversion = result["saltversion"]
print(
f"DGM test_target_salt_version, target_salt_version '{target_salt_version}', result saltversion '{dgm_saltversion }', result '{result}'",
flush=True,
)
# Returns: {'saltversion': '3006.9+217.g53cfa53040'} # Returns: {'saltversion': '3006.9+217.g53cfa53040'}
assert result["saltversion"] == target_salt_version adj_saltversion = result["saltversion"].split("+")[0]
assert adj_saltversion == target_salt_version