From 6c3e5d4548e97cf9335ebe47c5c1d1c9b7414bc2 Mon Sep 17 00:00:00 2001 From: Salt Project Packaging Date: Thu, 3 Aug 2023 16:34:03 +0000 Subject: [PATCH 01/20] Update README.rst with 2023.08.03 release sha256sum --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index 210d38b86..b2709b3aa 100644 --- a/README.rst +++ b/README.rst @@ -32,6 +32,7 @@ sum** of the downloaded ``bootstrap-salt.sh`` file. The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is: +- 2023.08.03: ``963e559bdb85adecfbbec2c3b81190392bc59b24992e4491e919cd748eeafcb8`` - 2023.07.25: ``eaaaadaed40fe2e791d59a9e48f24449428a35ca61782d9139f1272c05524323`` - 2023.06.28: ``f45f5da8abee27ef385131f5cfa9382d3a15863d0a05688a0404d2f057b27776`` - 2023.04.26: ``516fa9cc2e258cb8484ff360b9674b46918f657985c21ca9301e42a3dd263d60`` From ad787193e29f29e77974719ce5a28beb1deb157c Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Tue, 1 Aug 2023 16:59:41 -0700 Subject: [PATCH 02/20] cleanup old information in the README.rst file --- README.rst | 144 ++++++++++------------------------------------------- 1 file changed, 26 insertions(+), 118 deletions(-) diff --git a/README.rst b/README.rst index b2709b3aa..308c52c0c 100644 --- a/README.rst +++ b/README.rst @@ -38,35 +38,6 @@ The SHA256 sum of the ``bootstrap-salt.sh`` file, per release, is: - 2023.04.26: ``516fa9cc2e258cb8484ff360b9674b46918f657985c21ca9301e42a3dd263d60`` - 2023.04.21: ``e364428aa7a25f8e2c5e18e36e222351724c6cf35a1d57158f3357cde1e0a0f0`` - 2023.04.06: ``994bf7e8bd92fe6d70d291c7562aff299f5651046b4e76dfa506cee0d9bb0843`` -- 2022.10.04: ``d0686c2daeed18bb726e58eef75a69afe9ee56a1a23b2c32cd4e87d6005638e2`` -- 2022.08.13: ``af922699c1a2bb3b89b6dac04397389999df1b3416b8d0b5c93766412f14c95c`` -- 2022.08.12: ``b46f018bbf02f45c6096ab96e9261a9adb3a78ff65092c3976f32ffde909afcb`` -- 2022.05.19: ``e92e1df6930285cf23eda188bee3cfa3dd6c577b4fb7aa91b29213ad820199b1`` -- 2022.03.15: ``8f65952c3435f441e7f793941d5162d3ec2033a9ef82722ff1da67a2ef860a2f`` -- 2021.09.17: ``090d652cd6290debce0e3a4eded65086a4272e69446e711eb26f87160593b6a2`` -- 2021.09.14: ``30fdcba972f449630b4f13492cb5525e69e08fa2cdb66a6dc78f1536ad279e52`` -- 2021.08.19: ``ee40a9d8d057cce88a288fc1cb94b1d31408a61d262db6f77b34ad63d66f0806`` -- 2021.06.23: ``35b397dd0a50f832af453c17f138fd29e3692e492d7f463c404a57e1fac10665`` -- 2021.03.02: ``91baa0073308f1be20c7be65238ef67e5733c75285314b302a5b2456e73a0758`` -- 2020.10.20: ``b47bfc8d63cccf22eb4cd94491d30cc1d571e184be25a5be7f775e7f2daaf6e2`` -- 2020.10.19: ``f6c3e2c52f98d115809044b09062219369957caf30228b594033f0543e202c52`` -- 2020.06.23: ``1d07db867c195c864d0ae70664524f2099cc9a46872953293c67c3f239d4f4f5`` -- 2020.05.28: ``6b3ea15c78f01060ab12fc01c0bb18480eaf36858c7ba188b200c0fb11aac173`` -- 2020.02.24: ``efc46700aca78b8e51d7af9b06293f52ad495f3a8179c6bfb21a8c97ee41f1b7`` -- 2020.02.04: ``ce877651b4938e3480f76b1629f582437f6ca8b73d7199fdb9e905e86fe85b34`` -- 2020.01.29: ``e9afdfa877998c1c7f0e141a6728b33d0d24348e197aab2b9bde4fe6bc6db1b2`` -- 2020.01.21: ``53299aa0dfbf7ab381f3856bb7babfc04a1d6525be11db0b9466277b1e4d0c1a`` -- 2019.11.04: ``905924fccd4ebf168d19ba598bf10af53efe02302b792aeb15433e73fd3ad1d2`` -- 2019.10.03: ``34f196f06d586ce9e1b9907660ea6e67caf57abcecfea66e0343697e3fd0d17d`` -- 2019.05.20: ``46fb5e4b7815efafd69fd703f033fe86e7b584b6770f7e0b936995bcae1cedd8`` -- 2019.02.27: ``23728e4b5e54f564062070e3be53c5602b55c24c9a76671968abbf3d609258cb`` -- 2019.01.08: ``ab7f29b75711da4bb79aff98d46654f910d569ebe3e908753a3c5119017bb163`` -- 2018.08.15: ``6d414a39439a7335af1b78203f9d37e11c972b3c49c519742c6405e2944c6c4b`` -- 2018.08.13: ``98284bdc2b5ebaeb619b22090374e42a68e8fdefe6bff1e73bd1760db4407ed0`` -- 2018.04.25: ``e2e3397d6642ba6462174b4723f1b30d04229b75efc099a553e15ea727877dfb`` -- 2017.12.13: ``c127b3aa4a8422f6b81f5b4a40d31d13cec97bf3a39bca9c11a28f24910a6895`` -- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3`` -- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89`` If you're looking for a *one-liner* to install Salt, please scroll to the bottom and use the instructions for `Installing via an Insecure One-Liner`_. @@ -207,6 +178,8 @@ To view the latest options and descriptions for ``salt-bootstrap``, use ``-h`` a sh bootstrap.sh -P -y -x python2.7 git v2017.7.2 The above will install python27 and install the git version of salt using the python2.7 executable. This only works for git and pip installations. + -Q Quickstart, install the Salt master and the Salt minion. + And automatically accept the minion key. 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`` @@ -216,25 +189,25 @@ is not needed when running these commands as the ``root`` user. The examples below show how to bootstrap Salt directly from GitHub or another Git repository. Run the script without any parameters to get latest stable Salt packages for your system from -`SaltStack's corporate repository`_. See first example in the `Install using wget`_ section. +the `SaltProject's corporate repository`_. See first example in the `Install using wget`_ section. Install using curl ~~~~~~~~~~~~~~~~~~ -If you want to install a package of a specific release version, from the SaltStack repo: +If you want to install a package of a specific release version, from the SaltProject repo: .. code:: console curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io - sudo sh bootstrap-salt.sh -P stable 3004.1 + sudo sh bootstrap-salt.sh -P stable 3006.1 If you want to install a specific release version, based on the Git tags: .. code:: console curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io - sudo sh bootstrap-salt.sh git v3004.1 + sudo sh bootstrap-salt.sh git v3006.1 Using ``curl`` to install latest development version from GitHub: @@ -257,7 +230,7 @@ If all you want is to install a ``salt-master`` using latest Git: curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io sudo sh bootstrap-salt.sh -M -N git master -If your host has Internet access only via HTTP proxy, from the SaltStack repo: +If your host has Internet access only via HTTP proxy, from the SaltProject repo: .. code:: console @@ -291,12 +264,12 @@ Installing a specific version from git using ``wget``: wget -O bootstrap-salt.sh https://bootstrap.saltproject.io sudo sh bootstrap-salt.sh git v3004.1 -Installing a specific version package from the SaltStack repo using ``wget``: +Installing a specific version package from the SaltProject repo using ``wget``: .. code:: console wget -O bootstrap-salt.sh https://bootstrap.saltproject.io - sudo sh bootstrap-salt.sh -P stable 3004.1 + sudo sh bootstrap-salt.sh -P stable 3006.1 **NOTE** @@ -312,7 +285,7 @@ If you already have Python installed, ``python 2.7``, then it's as easy as: .. code:: console python -m urllib "https://bootstrap.saltproject.io" > bootstrap-salt.sh - sudo sh bootstrap-salt.sh -P stable 3004.1 + sudo sh bootstrap-salt.sh -P stable 3006.1 With python version 2, the following in-line code should always work: @@ -326,7 +299,7 @@ With python version 3: .. code:: console python3 -c 'import urllib.request; print(urllib.request.urlopen("https://bootstrap.saltproject.io").read().decode("ascii"))' > bootstrap-salt.sh - sudo sh bootstrap-salt.sh git v3004.1 + sudo sh bootstrap-salt.sh git v3006.1 Install using fetch ~~~~~~~~~~~~~~~~~~~ @@ -383,11 +356,11 @@ Using ``wget`` to install your distribution's stable packages: wget -O - https://bootstrap.saltproject.io | sudo sh -Installing a target version package of Salt from the SaltStack repo: +Installing a target version package of Salt from the SaltProject repo: .. code:: console - curl -L https://bootstrap.saltproject.io | sudo sh -s -- stable 3004.1 + curl -L https://bootstrap.saltproject.io | sudo sh -s -- stable 3006.1 Installing the latest master branch of Salt from git: @@ -431,10 +404,10 @@ listed below should reflect this document but may become out of date. If an oper listed below, but is not listed on the official supported operating systems document, the level of support is "best-effort". -Since Salt is written in Python, the packages available from `SaltStack's corporate repository`_ -are CPU architecture independent and could be installed on any hardware supported by Linux kernel. -However, SaltStack does package Salt's binary dependencies only for ``x86_64`` (``amd64``) and -``AArch32`` (``armhf``). The latter is available only for Debian/Raspbian 8 platforms. +Since Salt is written in Python, the packages available from the `SaltProject's corporate +repository`_ are 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``) +and ``AArch32`` (``armhf``). The latter is available only for Debian/Raspbian 8 platforms. It is recommended to use ``git`` bootstrap mode as described above to install Salt on other architectures, such as ``x86`` (``i386``), ``AArch64`` (``arm64``) or ``ARM EABI`` (``armel``). @@ -468,12 +441,12 @@ Red Hat family - Amazon Linux 2012.3 and later - Amazon Linux 2 -- CentOS 6/7/8 +- CentOS 7/8/9 - Cloud Linux 6/7 -- Fedora 30/31 (install latest stable from standard repositories) -- Oracle Linux 6/7 -- Red Hat Enterprise Linux 6/7/8 -- Scientific Linux 6/7 +- Fedora 36/37/38 (install latest stable from standard repositories) +- Oracle Linux 7/8 +- Red Hat Enterprise Linux 7/8/9 +- Scientific Linux 7/8/9 SUSE family @@ -490,7 +463,7 @@ in combination with the ``git`` installation method. .. code:: console - sh bootstrap-salt.sh -x python2 git v2018.3.2 + sh bootstrap-salt.sh -x python3 git v3006.1 Ubuntu and derivatives @@ -503,12 +476,12 @@ Ubuntu Best Effort Support: Non-LTS Releases ******************************************** This script provides best-effort support for current, non-LTS Ubuntu releases. If package -repositories are not provided on `SaltStack's Ubuntu repository`_ for the non-LTS release, the -bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu +repositories are not provided on the `SaltProject's Ubuntu repository`_ for the non-LTS release, +the bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu release instead. For example, when installing Salt on Ubuntu 21.10, the bootstrap script will setup the repository -for Ubuntu 20.04 from `SaltStack's Ubuntu repository`_ and install the 20.04 packages. +for Ubuntu 20.04 from the `SaltProject's Ubuntu repository`_ and install the 20.04 packages. Non-LTS Ubuntu releases are not supported once the release reaches End-of-Life as defined by `Ubuntu's release schedule`_. @@ -565,42 +538,6 @@ please run the following commands and report their output when creating an issue For information on how to add support for a currently unsupported distribution, please refer to the `Contributing Guidelines`_. -Python 3 Support ----------------- - -Some distributions support installing Salt to use Python 3 instead of Python 2. The availability of -this offering, while limited, is as follows: - -- CentOS 7 -- Debian 10 -- Debian 11 -- Fedora (only git installations) -- Ubuntu 18.04 -- Ubuntu 20.04 - -On Fedora, PIP installation must be allowed (-P) due to incompatibility with the shipped Tornado -library. - -Installing the Python 3 packages for Salt is done via the ``-x`` option: - -.. code:: console - - sh bootstrap-salt.sh -x python3 - -See the ``-x`` option for more information. - -The earliest release of Salt that supports Python3 is `2018.3.4`. - -Tornado 5/6 Workaround ----------------------- -Salt does not support tornado>=5.0 currently. This support will be included in an upcoming release. -In order to work around this requirement on OSs that no longer have the tornado 4 package -available in their repositories we are pip installing tornado<5.0 in the bootstrap script. This -requires the user to pass -P to the bootstrap script if installing via git to ensure tornado is pip -installed. If a user does not pass this argument they will be warned that it is required for the -tornado 5 workaround. So far the OSs that are using this workaround are Debian 10, Centos 8 and -Fedora 31. - Testing ------- @@ -650,33 +587,4 @@ The ``Dockerfile`` here inherits the Ubuntu 14.04 public image with Upstart conf system. Use it as an example or starting point of how to make your own Docker images with suitable Salt components, custom configurations, and even `pre-accepted Minion keys`_ already installed. -Updating Drone Pipelines -======================== - -You should install and configure the drone-cli as shown here: https://docs.drone.io/cli/install/ - -Make edits to .drone.jsonnet and then save them into the .drone.yml by doing the following: - -.. code:: console - - drone jsonnet --format --stream - drone sign saltstack/salt-bootstrap --save - -.. _Contributing Guidelines: https://github.com/saltstack/salt-bootstrap/blob/develop/CONTRIBUTING.md -.. _Docker: https://www.docker.com/ -.. _`pre-accepted Minion keys`: https://docs.saltproject.io/en/latest/topics/tutorials/preseed_key.html -.. _`read the source`: https://github.com/saltstack/salt-bootstrap/blob/develop/bootstrap-salt.sh -.. _`Salt`: https://saltproject.io/ -.. _`Salt's Supported Operating Systems`: http://get.saltstack.com/rs/304-PHQ-615/images/SaltStack-Supported-Operating-Systems.pdf -.. _`SaltStack's corporate repository`: https://repo.saltproject.io/ -.. _`SaltStack's Debian repository`: http://repo.saltproject.io/#debian -.. _`SaltStack's Ubuntu repository`: http://repo.saltproject.io/#ubuntu -.. _`Ubuntu's release schedule`: https://wiki.ubuntu.com/Releases -.. _Vagrant: http://www.vagrantup.com -.. _hardening salt: https://docs.saltproject.io/en/latest/topics/hardening.html - -.. |build| image:: https://github.com/saltstack/salt-bootstrap/workflows/Testing/badge.svg?branch=develop - :target: https://github.com/saltstack/salt-bootstrap/actions?query=branch%3Adevelop - :alt: Build Status - .. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et From 4c3111898fd868da0ca5d524133465255d1ebcda Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Tue, 8 Aug 2023 08:57:05 -0700 Subject: [PATCH 03/20] swapping out SaltProject for Salt Project --- README.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.rst b/README.rst index 308c52c0c..c16880c46 100644 --- a/README.rst +++ b/README.rst @@ -189,13 +189,13 @@ is not needed when running these commands as the ``root`` user. The examples below show how to bootstrap Salt directly from GitHub or another Git repository. Run the script without any parameters to get latest stable Salt packages for your system from -the `SaltProject's corporate repository`_. See first example in the `Install using wget`_ section. +the `Salt Project's repository`_. See first example in the `Install using wget`_ section. Install using curl ~~~~~~~~~~~~~~~~~~ -If you want to install a package of a specific release version, from the SaltProject repo: +If you want to install a package of a specific release version, from the Salt Project repo: .. code:: console @@ -230,7 +230,7 @@ If all you want is to install a ``salt-master`` using latest Git: curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io sudo sh bootstrap-salt.sh -M -N git master -If your host has Internet access only via HTTP proxy, from the SaltProject repo: +If your host has Internet access only via HTTP proxy, from the Salt Project repo: .. code:: console @@ -264,7 +264,7 @@ Installing a specific version from git using ``wget``: wget -O bootstrap-salt.sh https://bootstrap.saltproject.io sudo sh bootstrap-salt.sh git v3004.1 -Installing a specific version package from the SaltProject repo using ``wget``: +Installing a specific version package from the Salt Project repo using ``wget``: .. code:: console @@ -356,7 +356,7 @@ Using ``wget`` to install your distribution's stable packages: wget -O - https://bootstrap.saltproject.io | sudo sh -Installing a target version package of Salt from the SaltProject repo: +Installing a target version package of Salt from the Salt Project repo: .. code:: console @@ -404,8 +404,8 @@ listed below should reflect this document but may become out of date. If an oper listed below, but is not listed on the official supported operating systems document, the level of support is "best-effort". -Since Salt is written in Python, the packages available from the `SaltProject's corporate -repository`_ are CPU architecture independent and could be installed on any hardware supported by Linux kernel. +Since Salt is written in Python, the packages available from the `Salt Project's repository`_ are +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``) and ``AArch32`` (``armhf``). The latter is available only for Debian/Raspbian 8 platforms. @@ -476,12 +476,12 @@ Ubuntu Best Effort Support: Non-LTS Releases ******************************************** This script provides best-effort support for current, non-LTS Ubuntu releases. If package -repositories are not provided on the `SaltProject's Ubuntu repository`_ for the non-LTS release, +repositories are not provided on the `Salt Project's Ubuntu repository`_ for the non-LTS release, the bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu release instead. For example, when installing Salt on Ubuntu 21.10, the bootstrap script will setup the repository -for Ubuntu 20.04 from the `SaltProject's Ubuntu repository`_ and install the 20.04 packages. +for Ubuntu 20.04 from the `Salt Project's Ubuntu repository`_ and install the 20.04 packages. Non-LTS Ubuntu releases are not supported once the release reaches End-of-Life as defined by `Ubuntu's release schedule`_. From 479eb74d7ef082a74e92c08feeb3887613a3fe31 Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Wed, 9 Aug 2023 09:09:29 -0700 Subject: [PATCH 04/20] removing reference to armhf --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index c16880c46..66d07dc6d 100644 --- a/README.rst +++ b/README.rst @@ -407,7 +407,7 @@ support is "best-effort". Since Salt is written in Python, the packages available from the `Salt Project's repository`_ are 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``) -and ``AArch32`` (``armhf``). The latter is available only for Debian/Raspbian 8 platforms. +and ``AArch64`` (``arm64``). It is recommended to use ``git`` bootstrap mode as described above to install Salt on other architectures, such as ``x86`` (``i386``), ``AArch64`` (``arm64``) or ``ARM EABI`` (``armel``). From ed16e585dfbdccb2df5e7cafdcc0adf9db68489d Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Wed, 9 Aug 2023 19:59:58 -0700 Subject: [PATCH 05/20] A couple fixes for git-master tests on PhotonOS 3. --- bootstrap-salt.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 71683a57a..537d9713d 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -7034,15 +7034,17 @@ install_photon_git_deps() { "${__python}" -m pip install "${dep}" || return 1 done else - __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc" + __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel linux-devel.x86_64" # shellcheck disable=SC2086 __tdnf_install_noinput ${__PACKAGES} || return 1 fi - # Need newer version of setuptools on Photon - _setuptools_dep="setuptools>=${_MINIMUM_SETUPTOOLS_VERSION}" - echodebug "Running '${_PY_EXE} -m pip --upgrade install ${_setuptools_dep}'" - ${_PY_EXE} -m pip install --upgrade "${_setuptools_dep}" + if [ "${DISTRO_MAJOR_VERSION}" -gt 3 ]; then + # Need newer version of setuptools on Photon + _setuptools_dep="setuptools>=${_MINIMUM_SETUPTOOLS_VERSION}" + echodebug "Running '${_PY_EXE} -m pip --upgrade install ${_setuptools_dep}'" + ${_PY_EXE} -m pip install --upgrade "${_setuptools_dep}" + fi # Let's trigger config_salt() if [ "$_TEMP_CONFIG_DIR" = "null" ]; then From 8293f79f6fe89d520d23b17cc95927b23c0a0282 Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Thu, 10 Aug 2023 08:30:49 -0700 Subject: [PATCH 06/20] Upgrade linux-devel. --- bootstrap-salt.sh | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 537d9713d..fc03f9712 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -2197,13 +2197,23 @@ __dnf_install_noinput() { #--- FUNCTION ------------------------------------------------------------------------------------------------------- # NAME: __tdnf_install_noinput -# DESCRIPTION: (DRY) dnf install with noinput options +# DESCRIPTION: (DRY) tdnf install with noinput options #---------------------------------------------------------------------------------------------------------------------- __tdnf_install_noinput() { tdnf -y install "${@}" || return $? } # ---------- end of function __tdnf_install_noinput ---------- +# +#--- FUNCTION ------------------------------------------------------------------------------------------------------- +# NAME: __tdnf_upgrade_noinput +# DESCRIPTION: (DRY) tdnf upgrade with noinput options +#---------------------------------------------------------------------------------------------------------------------- +__tdnf_upgrade_noinput() { + + tdnf -y upgrade "${@}" || return $? +} # ---------- end of function __tdnf_upgrade_noinput ---------- + #--- FUNCTION ------------------------------------------------------------------------------------------------------- # NAME: __git_clone_and_checkout # DESCRIPTION: (DRY) Helper function to clone and checkout salt to a @@ -7034,9 +7044,13 @@ install_photon_git_deps() { "${__python}" -m pip install "${dep}" || return 1 done else - __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel linux-devel.x86_64" + __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel" # shellcheck disable=SC2086 __tdnf_install_noinput ${__PACKAGES} || return 1 + + __PACKAGES="linux-devel" + # shellcheck disable=SC2086 + __tdnf_upgrade_noinput ${__PACKAGES} || return 1 fi if [ "${DISTRO_MAJOR_VERSION}" -gt 3 ]; then From 244a052a5e3f692ece3c16c2ced0a73b5c2a45a3 Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Thu, 10 Aug 2023 09:41:44 -0700 Subject: [PATCH 07/20] correct name for the package. --- bootstrap-salt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index fc03f9712..6d8b7f6e9 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -7048,7 +7048,7 @@ install_photon_git_deps() { # shellcheck disable=SC2086 __tdnf_install_noinput ${__PACKAGES} || return 1 - __PACKAGES="linux-devel" + __PACKAGES="linux-devel.x86_64" # shellcheck disable=SC2086 __tdnf_upgrade_noinput ${__PACKAGES} || return 1 fi From 9a512e5c4bd93e95819f05eb63dd6116272601e6 Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Thu, 10 Aug 2023 11:44:34 -0700 Subject: [PATCH 08/20] move the linux-devel.x86_64 package back to install section. remove the upgrade function. --- bootstrap-salt.sh | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 6d8b7f6e9..4b0937c71 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -2204,16 +2204,6 @@ __tdnf_install_noinput() { tdnf -y install "${@}" || return $? } # ---------- end of function __tdnf_install_noinput ---------- -# -#--- FUNCTION ------------------------------------------------------------------------------------------------------- -# NAME: __tdnf_upgrade_noinput -# DESCRIPTION: (DRY) tdnf upgrade with noinput options -#---------------------------------------------------------------------------------------------------------------------- -__tdnf_upgrade_noinput() { - - tdnf -y upgrade "${@}" || return $? -} # ---------- end of function __tdnf_upgrade_noinput ---------- - #--- FUNCTION ------------------------------------------------------------------------------------------------------- # NAME: __git_clone_and_checkout # DESCRIPTION: (DRY) Helper function to clone and checkout salt to a @@ -7044,13 +7034,9 @@ install_photon_git_deps() { "${__python}" -m pip install "${dep}" || return 1 done else - __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel" + __PACKAGES="python${PY_PKG_VER}-devel python${PY_PKG_VER}-pip python${PY_PKG_VER}-setuptools gcc glibc-devel linux-devel.x86_64" # shellcheck disable=SC2086 __tdnf_install_noinput ${__PACKAGES} || return 1 - - __PACKAGES="linux-devel.x86_64" - # shellcheck disable=SC2086 - __tdnf_upgrade_noinput ${__PACKAGES} || return 1 fi if [ "${DISTRO_MAJOR_VERSION}" -gt 3 ]; then From 61709aac2b077372e6166e6f1e78191d8bcc5eea Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Thu, 10 Aug 2023 14:45:00 -0700 Subject: [PATCH 09/20] do not test git-master on photon-3, tornado build issues due to docker and kernel headders. --- .github/workflows/ci.yml | 2 +- .github/workflows/templates/generate.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 666e065df..8ed9c68d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -486,7 +486,7 @@ jobs: distro-slug: photon-3 display-name: Photon OS 3 timeout: 20 - instances: '["stable-3006", "onedir-3006", "stable-3006-1", "git-master", "latest", "default"]' + instances: '["stable-3006", "onedir-3006", "stable-3006-1", "latest", "default"]' photon-4: diff --git a/.github/workflows/templates/generate.py b/.github/workflows/templates/generate.py index 4fb4ded79..190c1188f 100755 --- a/.github/workflows/templates/generate.py +++ b/.github/workflows/templates/generate.py @@ -276,7 +276,13 @@ "ubuntu-2204", ] -BLACKLIST_GIT_MASTER = ["amazon-2", "debian-10", "freebsd-131", "freebsd-123"] +BLACKLIST_GIT_MASTER = [ + "amazon-2", + "debian-10", + "freebsd-131", + "freebsd-123", + "photon-3", +] SALT_VERSIONS = [ "3003", From 82279abbe9f4fc463f726976e640453de59ce94f Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Tue, 5 Sep 2023 10:36:53 -0700 Subject: [PATCH 10/20] Moving quick start scripts to bootstrap repo. --- salt-quick-start.ps1 | 157 ++++++++++++++++++++++++++++ salt-quick-start.sh | 239 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 396 insertions(+) create mode 100644 salt-quick-start.ps1 create mode 100755 salt-quick-start.sh diff --git a/salt-quick-start.ps1 b/salt-quick-start.ps1 new file mode 100644 index 000000000..25269b5fe --- /dev/null +++ b/salt-quick-start.ps1 @@ -0,0 +1,157 @@ +function Convert-PSObjectToHashtable { + param ( + [Parameter(ValueFromPipeline)] + $InputObject + ) + if ($null -eq $InputObject) { return $null } + + $is_enum = $InputObject -is [System.Collections.IEnumerable] + $not_string = $InputObject -isnot [string] + if ($is_enum -and $not_string) { + $collection = @( + foreach ($object in $InputObject) { + Convert-PSObjectToHashtable $object + } + ) + + Write-Host -NoEnumerate $collection + } elseif ($InputObject -is [PSObject]) { + $hash = @{} + + foreach ($property in $InputObject.PSObject.Properties) { + $hash[$property.Name] = Convert-PSObjectToHashtable $property.Value + } + + $hash + } else { + $InputObject + } +} + +function Expand-ZipFile { + # Extract a zip file + # + # Used by: + # - Install-SaltMinion + # + # Args: + # ZipFile (string): The file to extract + # Destination (string): The location to extract to + # + # Error: + # Sets the failed status and exits with a scriptFailed exit code + [CmdletBinding()] + param( + [Parameter(Mandatory = $true)] + [string] $ZipFile, + + [Parameter(Mandatory = $true)] + [string] $Destination + ) + + if (!(Test-Path -Path $Destination)) { + Write-Host "Creating missing directory: $Destination" + New-Item -ItemType directory -Path $Destination + } + Write-Host "Unzipping '$ZipFile' to '$Destination'" + if ($PSVersionTable.PSVersion.Major -ge 5) { + # PowerShell 5 introduced Expand-Archive + Write-Host "Using Expand-Archive to unzip" + try{ + Expand-Archive -Path $ZipFile -DestinationPath $Destination -Force + } catch { + Write-Host "Failed to unzip $ZipFile : $_" + exit 1 + } + } else { + # This method will work with older versions of powershell, but it is + # slow + Write-Host "Using Shell.Application to unzip" + $objShell = New-Object -Com Shell.Application + $objZip = $objShell.NameSpace($ZipFile) + try{ + foreach ($item in $objZip.Items()) { + $objShell.Namespace($Destination).CopyHere($item, 0x14) + } + } catch { + Write-Host "Failed to unzip $ZipFile : $_" + exit 1 + } + } + Write-Host "Finished unzipping '$ZipFile' to '$Destination'" +} + + +[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12' + +$ProgressPreference = 'SilentlyContinue' + +$RepoUrl = "https://repo.saltproject.io/salt/py3/onedir" + +if ([IntPtr]::Size -eq 4) { + $arch = "x86" +} else { + $arch = "amd64" +} +$enc = [System.Text.Encoding]::UTF8 +try { + $response = Invoke-WebRequest -Uri "$RepoUrl/repo.json" -UseBasicParsing + if ($response.Content.GetType().Name -eq "Byte[]") { + $psobj = $enc.GetString($response.Content) | ConvertFrom-Json + + } else { + $psobj = $response.Content | ConvertFrom-Json + } + $hash = Convert-PSObjectToHashtable $psobj +} catch { + Write-Host "repo.json not found at: $RepoUrl" + $hash = @{} +} +$searchVersion = "latest" +if ( $hash.Contains($searchVersion)) { + foreach ($item in $hash.($searchVersion).Keys) { + if ( $item.EndsWith(".zip") ) { + if ( $item.Contains($arch) ) { + $saltFileName = $hash.($searchVersion).($item).name + $saltVersion = $hash.($searchVersion).($item).version + $saltSha512 = $hash.($searchVersion).($item).SHA512 + } + } + } +} +if ( $saltFileName -and $saltVersion -and $saltSha512 ) { + if ( $RepoUrl.Contains("minor") ) { + $saltFileUrl = @($RepoUrl, $saltVersion, $saltFileName) -join "/" + } else { + $saltFileUrl = @($RepoUrl, "minor", $saltVersion, $saltFileName) -join "/" + } +} + +Write-Host "Download Salt" +Invoke-WebRequest -Uri $saltFileUrl -OutFile .\salt.zip + +Write-Host "Extracting Salt" +Expand-ZipFile -ZipFile .\salt.zip -Destination . + +$PATH = $(Get-Location).Path + +$saltfile_contents = @" +salt-call: + local: True + config_dir: $PATH\salt\conf + log_file: $PATH\salt\var\log\salt\minion + cachedir: $PATH\salt\var\cache\salt + file_root: $PATH\salt\srv\salt +"@ + +Set-Content -Path .\salt\Saltfile -Value $saltfile_contents + +New-Item -Path "$PATH\salt\var\log\salt" -Type Directory -Force | Out-Null +New-Item -Path "$PATH\salt\conf" -Type Directory -Force | Out-Null +New-Item -Path "$PATH\salt\var\cache\salt" -Type Directory -Force | Out-Null +New-Item -Path "$PATH\salt\srv\salt" -Type Directory -Force | Out-Null + +Write-Host "Adding $PATH\salt to PATH" +$env:Path = "$PATH\salt;" + $env:Path + +$env:SALT_SALTFILE="$PATH\salt\Saltfile" diff --git a/salt-quick-start.sh b/salt-quick-start.sh new file mode 100755 index 000000000..3e17ce056 --- /dev/null +++ b/salt-quick-start.sh @@ -0,0 +1,239 @@ +#!/bin/sh + +__ScriptName="salt-quick-start.sh" +SALT_REPO_URL="https://repo.saltproject.io/salt/py3/onedir" +_COLORS=${QS_COLORS:-$(tput colors 2>/dev/null || echo 0)} + +_LOCAL=0 +_FULL=0 +_STOP=0 + +PWD="$(pwd)" +_PATH=${PWD}/salt + + +__usage() { + cat << EOT + + Usage : ${__ScriptName} [options] + + Options: + -h Show usage. + -f Full setup with a Salt minion and Salt master running. + -l Local setup, no Salt minion or Salt master running. + -s Attempt to stop a running Salt minion and Salt master. + +EOT +} # ---------- end of function __usage ---------- + + +echoinfo() { + printf "${GC} * INFO${EC}: %s\\n" "$@"; +} + +echoerror() { + printf "${RC} * ERROR${EC}: %s\\n" "$@" 1>&2; +} + +__detect_color_support() { + # shellcheck disable=SC2181 + if [ $? -eq 0 ] && [ "$_COLORS" -gt 2 ]; then + RC='\033[1;31m' + GC='\033[1;32m' + BC='\033[1;34m' + YC='\033[1;33m' + EC='\033[0m' + else + RC="" + GC="" + BC="" + YC="" + EC="" + fi +} + +__detect_color_support + +while getopts ':fhls' opt +do + case "${opt}" in + + h ) __usage; exit 0 ;; + l ) _LOCAL=1 ;; + f ) _FULL=1 ;; + s ) _STOP=1 ;; + + esac # --- end of case --- +done +shift $((OPTIND-1)) + +if [[ "${_STOP}" == "1" ]]; then + if [[ -f "${_PATH}/var/run/salt-minion.pid" ]]; then + echoinfo "Stopping the salt-minion" + kill $(cat "${_PATH}/var/run/salt-minion.pid") + else + echoerror "${_PATH}/var/run/salt-minion.pid not found" + fi + if [[ -f "${_PATH}/var/run/salt-master.pid" ]]; then + echoinfo "Stopping the salt-master" + kill $(cat "${_PATH}/var/run/salt-master.pid") + else + echoerror "${_PATH}/var/run/salt-master.pid not found" + fi + exit 0 +fi + +if [[ "$_LOCAL" == "1" && "$_FULL" == "1" ]]; then + echo "Only specify either local or full" + exit 0 +fi + +__parse_repo_json_jq() { + _JSON_FILE="${SALT_REPO_URL}/repo.json" + _JSON_VERSION=$(curl -s ${_JSON_FILE} | jq -sr ".[].latest[] | select(.os == \"$1\") | select(.arch == \"$2\").version") +} + +__fetch_url() { + # shellcheck disable=SC2086 + curl $_CURL_ARGS -L -s -f -o "$1" "$2" >/dev/null 2>&1 || + wget $_WGET_ARGS -q -O "$1" "$2" >/dev/null 2>&1 || + fetch $_FETCH_ARGS -q -o "$1" "$2" >/dev/null 2>&1 || # FreeBSD + fetch -q -o "$1" "$2" >/dev/null 2>&1 || # Pre FreeBSD 10 + ftp -o "$1" "$2" >/dev/null 2>&1 || # OpenBSD + (echoerror "$2 failed to download to $1"; exit 1) +} + +__gather_os_info() { + OS_NAME=$(uname -s 2>/dev/null) + OS_NAME_L=$( echo "$OS_NAME" | tr '[:upper:]' '[:lower:]' ) + OS_VERSION=$(uname -r) + # shellcheck disable=SC2034 + OS_VERSION_L=$( echo "$OS_VERSION" | tr '[:upper:]' '[:lower:]' ) +} + +__gather_hardware_info() { + if [ -f /proc/cpuinfo ]; then + CPU_VENDOR_ID=$(awk '/vendor_id|Processor/ {sub(/-.*$/,"",$3); print $3; exit}' /proc/cpuinfo ) + elif [ -f /usr/bin/kstat ]; then + # SmartOS. + # Solaris!? + # This has only been tested for a GenuineIntel CPU + CPU_VENDOR_ID=$(/usr/bin/kstat -p cpu_info:0:cpu_info0:vendor_id | awk '{print $2}') + else + CPU_VENDOR_ID=$( sysctl -n hw.model ) + fi + # shellcheck disable=SC2034 + CPU_VENDOR_ID_L=$( echo "$CPU_VENDOR_ID" | tr '[:upper:]' '[:lower:]' ) + CPU_ARCH=$(uname -m 2>/dev/null || uname -p 2>/dev/null || echo "unknown") + CPU_ARCH_L=$( echo "$CPU_ARCH" | tr '[:upper:]' '[:lower:]' ) +} + +__gather_hardware_info +__gather_os_info + +_DARWIN_ARM=0 +if [[ "${OS_NAME_L}" == "darwin" ]]; then + OS_NAME="macos" + # Use x86_64 packages until we are able build arm packages + if [[ "${CPU_ARCH_L}" == "arm64" ]]; then + CPU_ARCH_L="x86_64" + _DARWIN_ARM=1 + fi +else + OS_NAME="${OS_NAME_L}" +fi + +__parse_repo_json_jq ${OS_NAME} ${CPU_ARCH_L} + +FILE="salt-${_JSON_VERSION}-onedir-${OS_NAME_L}-${CPU_ARCH_L}.tar.xz" +URL="${SALT_REPO_URL}/latest/${FILE}" + +if [[ ! -f ${FILE} ]]; then + echoinfo "Downloading Salt" + __fetch_url "${FILE}" "${URL}" +fi + +if [[ ! -d "salt" ]]; then + echoinfo "Extracting Salt" + tar xf ${FILE} + + # very very hacky, remove ASAP + if [[ "${_DARWIN_ARM}" == "1" ]]; then + mkdir -p ${_PATH}/opt/openssl/lib + ln -s ${_PATH}/lib/libcrypto.dylib ${_PATH}/opt/openssl/lib/libcrypto.dylib + fi +else + echoinfo "A salt directory already exists here, not extracting." +fi + +mkdir -p ${_PATH}/etc/salt +mkdir -p ${_PATH}/srv/salt + +cat <${_PATH}/etc/salt/master +root_dir: ${_PATH} +file_root: ${_PATH}/srv/salt +EOT + +cat <${_PATH}/etc/salt/minion +root_dir: ${_PATH} +master: 127.0.0.1 +id: minion +EOT + +cat <${_PATH}/Saltfile +salt-call: + local: True + config_dir: ${_PATH} + log_file: ${_PATH}/var/log/salt/minion + cachedir: ${_PATH}/var/cache/salt + file_root: ${_PATH}/srv/salt + +salt-master: + config_dir: ${_PATH}/etc/salt + file_root: ${_PATH}/srv/salt + +salt-minion: + config_dir: ${_PATH}/etc/salt + file_root: ${_PATH}/srv/salt + +salt-key: + config_dir: ${_PATH}/etc/salt + +salt: + config_dir: ${_PATH}/etc/salt +EOT + +PATH_MSG="export PATH=${_PATH}" +PATH_MSG+=':$PATH' + +echoinfo "Get started with Salt by running the following commands" +echoinfo "Add Salt to current path" +echoinfo " ${PATH_MSG}" +echoinfo "Use the provided Saltfile" +echoinfo " export SALT_SALTFILE=${_PATH}/Saltfile" +# very very hacky, remove ASAP +if [[ "${_DARWIN_ARM}" == "1" ]]; then + echoinfo "Setup HOMEBREW" + echoinfo " export HOMEBREW_PREFIX=${_PATH}" +fi + +echoinfo "Create Salt states in ${_PATH}/srv/salt" + +if [[ "${_FULL}" == "1" ]]; then + + export PATH="${_PATH}:$PATH" + export SALT_SALTFILE="${_PATH}/Saltfile" + # very very hacky, remove ASAP + if [[ "${_DARWIN_ARM}" == "1" ]]; then + export HOMEBREW_PREFIX=${_PATH} + fi + echoinfo "Starting salt-master" + salt-master -d -c ${_PATH}/etc/salt + sleep 5 + echoinfo "Starting salt-minion" + salt-minion -d -c ${_PATH}/etc/salt + +echoinfo "Run salt-key -L to see pending minion keys" +echoinfo "Run salt-key -a minion to accept the pending minion key" + +fi From a8f7674e7bf23bc41ea9387426cb81e56afafc81 Mon Sep 17 00:00:00 2001 From: twangboy Date: Thu, 21 Sep 2023 13:13:20 -0600 Subject: [PATCH 11/20] Suppress progress bar --- salt-quick-start.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt-quick-start.ps1 b/salt-quick-start.ps1 index 25269b5fe..b37344f59 100644 --- a/salt-quick-start.ps1 +++ b/salt-quick-start.ps1 @@ -84,7 +84,7 @@ function Expand-ZipFile { [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12' -$ProgressPreference = 'SilentlyContinue' +$global:$ProgressPreference = 'SilentlyContinue' $RepoUrl = "https://repo.saltproject.io/salt/py3/onedir" From 33dc0c4753e6072c87cd4cdee15712b99f8d2500 Mon Sep 17 00:00:00 2001 From: twangboy Date: Fri, 22 Sep 2023 13:02:52 -0600 Subject: [PATCH 12/20] Fix global variable --- salt-quick-start.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt-quick-start.ps1 b/salt-quick-start.ps1 index b37344f59..648fbbcdf 100644 --- a/salt-quick-start.ps1 +++ b/salt-quick-start.ps1 @@ -84,7 +84,7 @@ function Expand-ZipFile { [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]'Tls12' -$global:$ProgressPreference = 'SilentlyContinue' +$global:ProgressPreference = 'SilentlyContinue' $RepoUrl = "https://repo.saltproject.io/salt/py3/onedir" From 65201d47ed5e77169df965ebc0b7c2784cb53def Mon Sep 17 00:00:00 2001 From: Joel Michael Date: Fri, 8 Sep 2023 09:03:29 +1000 Subject: [PATCH 13/20] fix debian arm64 apt repo selection logic --- bootstrap-salt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 4b0937c71..ea65e8d59 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -1524,7 +1524,7 @@ __check_dpkg_architecture() { else # Saltstack official repository has arm64 metadata beginning with Debian 11, # use amd64 repositories on arm64 for anything older, since all pkgs are arch-independent - if [ "$DISTRO_NAME_L" = "debian" ] || [ "$DISTRO_MAJOR_VERSION" -lt 11 ]; then + if [ "$DISTRO_NAME_L" = "debian" ] && [ "$DISTRO_MAJOR_VERSION" -lt 11 ]; then __REPO_ARCH="amd64" else __REPO_ARCH="arm64" From 910265ce6a4ce24a199a0e7daac5465d89de9df9 Mon Sep 17 00:00:00 2001 From: Joel Michael Date: Fri, 8 Sep 2023 09:09:50 +1000 Subject: [PATCH 14/20] add Debian 12 bookworm codename --- bootstrap-salt.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index ea65e8d59..0e5811afe 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -1710,6 +1710,9 @@ __debian_codename_translation() { "11") DISTRO_CODENAME="bullseye" ;; + "12") + DISTRO_CODENAME="bookworm" + ;; *) DISTRO_CODENAME="stretch" ;; From 9ec52ead47e7a8203e553ac58202fe8edd7d1ec0 Mon Sep 17 00:00:00 2001 From: Joel Michael Date: Fri, 8 Sep 2023 09:11:01 +1000 Subject: [PATCH 15/20] temporarily use bullseye packages until bookworm packages are available --- bootstrap-salt.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 0e5811afe..422e9395f 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -1712,6 +1712,11 @@ __debian_codename_translation() { ;; "12") DISTRO_CODENAME="bookworm" + # FIXME - TEMPORARY + # use bullseye packages until bookworm packages are available + DISTRO_CODENAME="bullseye" + DISTRO_MAJOR_VERSION=11 + rv=11 ;; *) DISTRO_CODENAME="stretch" From 45f0b37d2357b7d50f90f0959e7f81aa6d48269f Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 4 Oct 2023 14:47:44 -0600 Subject: [PATCH 16/20] Mirror Linux output, display root_dir --- salt-quick-start.ps1 | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/salt-quick-start.ps1 b/salt-quick-start.ps1 index 648fbbcdf..7ec755046 100644 --- a/salt-quick-start.ps1 +++ b/salt-quick-start.ps1 @@ -50,23 +50,23 @@ function Expand-ZipFile { ) if (!(Test-Path -Path $Destination)) { - Write-Host "Creating missing directory: $Destination" + Write-Debug "Creating missing directory: $Destination" New-Item -ItemType directory -Path $Destination } - Write-Host "Unzipping '$ZipFile' to '$Destination'" + Write-Debug "Unzipping '$ZipFile' to '$Destination'" if ($PSVersionTable.PSVersion.Major -ge 5) { # PowerShell 5 introduced Expand-Archive - Write-Host "Using Expand-Archive to unzip" + Write-Debug "Using Expand-Archive to unzip" try{ Expand-Archive -Path $ZipFile -DestinationPath $Destination -Force } catch { - Write-Host "Failed to unzip $ZipFile : $_" + Write-Debug "Failed to unzip $ZipFile : $_" exit 1 } } else { # This method will work with older versions of powershell, but it is # slow - Write-Host "Using Shell.Application to unzip" + Write-Debug "Using Shell.Application to unzip" $objShell = New-Object -Com Shell.Application $objZip = $objShell.NameSpace($ZipFile) try{ @@ -74,11 +74,11 @@ function Expand-ZipFile { $objShell.Namespace($Destination).CopyHere($item, 0x14) } } catch { - Write-Host "Failed to unzip $ZipFile : $_" + Write-Debug "Failed to unzip $ZipFile : $_" exit 1 } } - Write-Host "Finished unzipping '$ZipFile' to '$Destination'" + Write-Debug "Finished unzipping '$ZipFile' to '$Destination'" } @@ -127,10 +127,10 @@ if ( $saltFileName -and $saltVersion -and $saltSha512 ) { } } -Write-Host "Download Salt" +Write-Host "INFO: Downloading Salt" Invoke-WebRequest -Uri $saltFileUrl -OutFile .\salt.zip -Write-Host "Extracting Salt" +Write-Host "INFO: Extracting Salt" Expand-ZipFile -ZipFile .\salt.zip -Destination . $PATH = $(Get-Location).Path @@ -151,7 +151,12 @@ New-Item -Path "$PATH\salt\conf" -Type Directory -Force | Out-Null New-Item -Path "$PATH\salt\var\cache\salt" -Type Directory -Force | Out-Null New-Item -Path "$PATH\salt\srv\salt" -Type Directory -Force | Out-Null -Write-Host "Adding $PATH\salt to PATH" -$env:Path = "$PATH\salt;" + $env:Path +Write-Host "INFO: Adding Salt to current path" +Write-Host "INFO: $PATH\salt" +$env:Path = "$PATH\salt;$env:PATH" +Write-Host "INFO: Setting the SALT_SALTFILE environment variable" +Write-Host "INFO: $PATH\salt\Saltfile" $env:SALT_SALTFILE="$PATH\salt\Saltfile" + +Write-Host "INFO: Create Salt states in $PATH\salt\srv\salt" From 0d5ecbac0519b2a52d13638c6f5a0d029d2fc8c2 Mon Sep 17 00:00:00 2001 From: twangboy Date: Wed, 4 Oct 2023 14:56:35 -0600 Subject: [PATCH 17/20] Add asterisks to the output --- salt-quick-start.ps1 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/salt-quick-start.ps1 b/salt-quick-start.ps1 index 7ec755046..16c705554 100644 --- a/salt-quick-start.ps1 +++ b/salt-quick-start.ps1 @@ -127,10 +127,10 @@ if ( $saltFileName -and $saltVersion -and $saltSha512 ) { } } -Write-Host "INFO: Downloading Salt" +Write-Host "* INFO: Downloading Salt" Invoke-WebRequest -Uri $saltFileUrl -OutFile .\salt.zip -Write-Host "INFO: Extracting Salt" +Write-Host "* INFO: Extracting Salt" Expand-ZipFile -ZipFile .\salt.zip -Destination . $PATH = $(Get-Location).Path @@ -151,12 +151,12 @@ New-Item -Path "$PATH\salt\conf" -Type Directory -Force | Out-Null New-Item -Path "$PATH\salt\var\cache\salt" -Type Directory -Force | Out-Null New-Item -Path "$PATH\salt\srv\salt" -Type Directory -Force | Out-Null -Write-Host "INFO: Adding Salt to current path" -Write-Host "INFO: $PATH\salt" +Write-Host "* INFO: Adding Salt to current path" +Write-Host "* INFO: $PATH\salt" $env:Path = "$PATH\salt;$env:PATH" -Write-Host "INFO: Setting the SALT_SALTFILE environment variable" -Write-Host "INFO: $PATH\salt\Saltfile" +Write-Host "* INFO: Setting the SALT_SALTFILE environment variable" +Write-Host "* INFO: $PATH\salt\Saltfile" $env:SALT_SALTFILE="$PATH\salt\Saltfile" -Write-Host "INFO: Create Salt states in $PATH\salt\srv\salt" +Write-Host "* INFO: Create Salt states in $PATH\salt\srv\salt" From 3dd0ad3065d0b2e8e53d48796244619ff485134e Mon Sep 17 00:00:00 2001 From: "Gareth J. Greenaway" Date: Thu, 2 Nov 2023 14:14:42 -0700 Subject: [PATCH 18/20] Update the location for the configuration directory for salt-call in the Saltfile --- salt-quick-start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/salt-quick-start.sh b/salt-quick-start.sh index 3e17ce056..8449abbf0 100755 --- a/salt-quick-start.sh +++ b/salt-quick-start.sh @@ -183,7 +183,7 @@ EOT cat <${_PATH}/Saltfile salt-call: local: True - config_dir: ${_PATH} + config_dir: ${_PATH}/etc/salt log_file: ${_PATH}/var/log/salt/minion cachedir: ${_PATH}/var/cache/salt file_root: ${_PATH}/srv/salt From 1ba50d57d44f37048acaa7e54d5f1831bdeb5983 Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Tue, 7 Nov 2023 11:26:36 -0700 Subject: [PATCH 19/20] Update requirements --- requirements/release.txt | 54 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/requirements/release.txt b/requirements/release.txt index 992ea034b..5fff10700 100644 --- a/requirements/release.txt +++ b/requirements/release.txt @@ -1,28 +1,28 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile requirements/release.in +# pip-compile '.\requirements\release.in' # -attrs==22.2.0 +attrs==23.1.0 # via python-tools-scripts -boto3==1.26.110 - # via -r requirements/release.in -botocore==1.29.110 +boto3==1.28.79 + # via -r .\requirements\release.in +botocore==1.31.79 # via # boto3 # s3transfer -certifi==2023.07.22 +certifi==2023.7.22 # via requests -cfgv==3.3.1 +cfgv==3.4.0 # via pre-commit -charset-normalizer==3.1.0 +charset-normalizer==3.3.2 # via requests -distlib==0.3.6 +distlib==0.3.7 # via virtualenv -filelock==3.11.0 +filelock==3.13.1 # via virtualenv -identify==2.5.22 +identify==2.5.31 # via pre-commit idna==3.4 # via requests @@ -30,39 +30,39 @@ jmespath==1.0.1 # via # boto3 # botocore -markdown-it-py==2.2.0 +markdown-it-py==3.0.0 # via rich mdurl==0.1.2 # via markdown-it-py -nodeenv==1.7.0 +nodeenv==1.8.0 # via pre-commit -platformdirs==3.2.0 +platformdirs==3.11.0 # via virtualenv -pre-commit==3.2.2 - # via -r requirements/release.in -pygments==2.15.0 +pre-commit==3.5.0 + # via -r .\requirements\release.in +pygments==2.16.1 # via rich python-dateutil==2.8.2 # via botocore -python-tools-scripts==0.12.0 - # via -r requirements/release.in -pyyaml==6.0 +python-tools-scripts==0.18.1 + # via -r .\requirements\release.in +pyyaml==6.0.1 # via pre-commit -requests==2.28.2 +requests==2.31.0 # via python-tools-scripts -rich==13.3.3 +rich==13.6.0 # via python-tools-scripts -s3transfer==0.6.0 +s3transfer==0.7.0 # via boto3 six==1.16.0 # via python-dateutil -typing-extensions==4.5.0 +typing-extensions==4.8.0 # via python-tools-scripts -urllib3==1.26.15 +urllib3==2.0.7 # via # botocore # requests -virtualenv==20.21.0 +virtualenv==20.24.6 # via pre-commit # The following packages are considered to be unsafe in a requirements file: From 2b3080c737f40ba66ded7cd9f93607300615bfa5 Mon Sep 17 00:00:00 2001 From: Salt Project Packaging Date: Tue, 7 Nov 2023 18:35:16 +0000 Subject: [PATCH 20/20] Update develop branch for the v2023.11.07 release --- CHANGELOG.md | 16 ++++++++++++++++ bootstrap-salt.sh | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9115691d..1e4b226ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +# v2023.11.07 + +## What's Changed + +- cleanup old information in the README.rst file by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1955 +- Moving quick start scripts to bootstrap repo. by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1960 +- Suppress progress bar by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1964 +- Fix global variable by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1965 +- Debian 12 arm64 by @joelpmichael in https://github.com/saltstack/salt-bootstrap/pull/1962 +- Mirror Linux output, display root_dir by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1967 +- Add asterisks to the output by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1968 +- Fixes to salt-quick-start.sh by @garethgreenaway in https://github.com/saltstack/salt-bootstrap/pull/1973 +- Update requirements by @twangboy in https://github.com/saltstack/salt-bootstrap/pull/1974 + +**Full Changelog**: https://github.com/saltstack/salt-bootstrap/compare/v2023.08.03...v2023.11.07 + # v2023.08.03 ## What's Changed diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 422e9395f..d4c701fcc 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -23,7 +23,7 @@ #====================================================================================================================== set -o nounset # Treat unset variables as an error -__ScriptVersion="2023.08.03" +__ScriptVersion="2023.11.07" __ScriptName="bootstrap-salt.sh" __ScriptFullName="$0"