Merge pull request #1177 from rallytime/merge-stable

[stable] Merge forward from develop to stable
This commit is contained in:
Nicole Thomas 2017-12-13 13:14:33 -05:00 committed by GitHub
commit e6aa6d7830
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 898 additions and 949 deletions

View file

@ -13,6 +13,7 @@ Alec Koumjian akoumjian akoumjian@gmail.com
Alex Van't Hof alexvh Alex Van't Hof alexvh
Alexander Krasnukhin themalkolm the.malkolm@gmail.com Alexander Krasnukhin themalkolm the.malkolm@gmail.com
Alexey dmitrievav Alexey dmitrievav
Ali Rizvi-Santiago arizvisa
amendlik amendlik amendlik amendlik
Andrew Dean ndrwdn ndrwdn@gmail.com Andrew Dean ndrwdn ndrwdn@gmail.com
Andy Boff caelor github@plek.me.uk Andy Boff caelor github@plek.me.uk
@ -30,6 +31,7 @@ bruce-one bruce-one
Вячеслав Спиридонов sp1r Вячеслав Спиридонов sp1r
C. R. Oldham cro cr@saltstack.com C. R. Oldham cro cr@saltstack.com
Cam camereonsparr Cam camereonsparr
Charles McLaughlin cmclaughlin
Megan Wilhite Ch3LL megan.wilhite@gmail.com Megan Wilhite Ch3LL megan.wilhite@gmail.com
Chris Rebert cvrebert chris.rebert@hulu.com Chris Rebert cvrebert chris.rebert@hulu.com
Chris Buechler cbuechler cmb@pfsense.org Chris Buechler cbuechler cmb@pfsense.org
@ -139,5 +141,6 @@ Vladimir Kozhukalov kozhukalov
Whit Morriss whitmo whit@nocoast.us Whit Morriss whitmo whit@nocoast.us
Wolodja Wentland babilen w@babilen5.org Wolodja Wentland babilen w@babilen5.org
Wout wfhg Wout wfhg
Yann Masson ymasson
Yushi Nakai nyushi Yushi Nakai nyushi
========================== ===================== ============================ ========================== ===================== ============================

273
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,273 @@
# Contributing Guidelines
## License Notice
The Salt Bootstrap project is open and encouraging to code contributions. Please be
advised that all code contributions will be licensed under the Apache 2.0 License.
We cannot accept contributions that already hold a License other than Apache 2.0
without explicit exception.
## Reporting Issues
The Salt Bootstrap issue tracker is used for feature requests and bug reports.
### Bugs
A bug is a *demonstrable problem* that is caused by the code in the repository.
Please read the following guidelines before you
[file an issue](https://github.com/saltstack/salt-bootstrap/issues/new).
1. **Use the GitHub issue search** -- check if the issue has
already been reported. If it has been, please comment on the existing issue.
2. **Check if the issue has been fixed** -- If you found a possible problem, or bug,
please try to bootstrap using the bootstrap scirpt from the develop branch. The
issue you are having might have already been fixed and it's just not yet included
in the stable release.
```
curl -o bootstrap-salt.sh -L https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.sh
sudo sh bootstrap-salt.sh git develop
```
3. **Isolate the demonstrable problem** -- make sure that the
code in the project's repository is *definitely* responsible for the issue.
4. **Include a reproducible example** -- Provide the steps which
led you to the problem.
Please try to be as detailed as possible in your report. What is your
environment? What steps will reproduce the issue? What operating system? What
would you expect to be the outcome? All these details will help people to
assess and fix any potential bugs.
**Including the version and system information will always help,** such as:
- Output of `salt --versions-report`
- Output of `bootstrap-salt.sh -v`
- System type
- Cloud/VM provider as appropriate
Valid bugs will worked on as quickly as resources can be reasonably allocated.
### Features
Feature additions and requests are welcomed. When requesting a feature it will
be placed under the `Feature` label.
If a new feature is desired, the fastest way to get it into Salt Bootstrap is
to contribute the code. Before starting on a new feature, an issue should be
filed for it. The one requesting the feature will be able to then discuss the
feature with the Salt Bootstrap maintainers and discover the best way to get
the feature included into the bootstrap script and if the feature makes sense.
It is possible that the desired feature has already been completed.
Look for it in the [README](https://github.com/saltstack/salt-bootstrap/blob/develop/README.rst)
or exploring the wide list of options detailed at the top of the script. These
options are also available by running the `-h` help option for the script. It
is also common that the problem which would be solved by the new feature can be
easily solved another way, which is a great reason to ask first.
## Fixing Issues
Fixes for issues are very welcome!
Once you've fixed the issue you have in hand, create a
[pull request](https://help.github.com/articles/creating-a-pull-request/).
Salt Bootstrap maintainers will review your fix. If everything is OK and all
tests pass, you fix will be merged into Salt Bootstrap's code.
### Branches
There are two main branches in the Salt Bootstrap repository:
- develop
- stable
All fixes and features should be submitted to the `develop` branch. The `stable`
branch only contains released versions of the bootstrap script.
## Pull Requests
The Salt Bootstrap repo has several pull request checks that must pass before
a bug fix or feature implementation can be merged in.
### PR Tests
There are several Jenkins jobs that run on each Pull Request. Most of these are
CI jobs that set up different steps, such as setting up the job, cloning the
repo from the PR, etc.
#### Lint Check
The pull request test that matters the most, and the contributor is directly
responsible for fixing, is the Lint check. This check *must* be passing before
the contribution can be merged into the codebase.
If the lint check has failed on your pull request, you can view the errors by
clicking `Details` in the test run output. Then, click the `Violations` link on
the left side. There you will see a list of files that have errors. By clicking
on the file, you will see `!` icons on the affected line. Hovering over the `!`
icons will explain what the issue is.
To run the lint tests locally before submitting a pull request, use the
`tests/runtests.py` file. The `-L` option runs the lint check:
```
python tests/runtests.py -L
```
### GPG Verification
SaltStack has enabled [GPG Probot](https://probot.github.io/apps/gpg/) to
enforce GPG signatures for all commits included in a Pull Request.
In order for the GPG verification status check to pass, *every* contributor in
the pull request must:
- Set up a GPG key on local machine
- Sign all commits in the pull request with key
- Link key with GitHub account
This applies to all commits in the pull request.
GitHub hosts a number of
[help articles](https://help.github.com/articles/signing-commits-with-gpg/) for
creating a GPG key, using the GPG key with `git` locally, and linking the GPG
key to your GitHub account. Once these steps are completed, the commit signing
verification will look like the example in GitHub's
[GPG Signature Verification feature announcement](https://github.com/blog/2144-gpg-signature-verification).
## Release Cadence
There is no defined release schedule for the bootstrap script at this time.
Typically, SaltStack's release team determines when it would be good to release
a new stable version.
Timing the release usually involves an analysis of the following:
- Updates for major feature releases in [Salt](https://github.com/saltstack/salt)
- Support for new versions of major operating systems
- Types of fixes submitted to `develop` since the last release
- Fixes needed for inclusion in an upcoming version of [Salt](https://github.com/saltstack/salt)
- Length of time since the last bootstrap release
## Adding Support for Other Operating Systems
The following operating systems are detected, but Salt and its dependency
installation functions are not developed yet:
- BSD:
- NetBSD
- Linux:
- Slackware
- SunOS:
- OpenIndiana
- Oracle Solaris
- OmniOS (Illumos)
In order to install Salt for a distribution, you need to define the following:
1. To Install Dependencies, which is required, one of:
```
install_<distro>_<major_version>_<install_type>_deps
install_<distro>_<major_version>_<minor_version>_<install_type>_deps
install_<distro>_<major_version>_deps
install_<distro>_<major_version>_<minor_version>_deps
install_<distro>_<install_type>_deps
install_<distro>_deps
```
2. Optionally, define a minion configuration function, which will be called if the
``-c`` option is passed. One of:
```
config_<distro>_<major_version>_<install_type>_salt
config_<distro>_<major_version>_<minor_version>_<install_type>_salt
config_<distro>_<major_version>_salt
config_<distro>_<major_version>_<minor_version>_salt
config_<distro>_<install_type>_salt
config_<distro>_salt
config_salt (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
3. Optionally, define a Salt master pre-seed function, which will be called if the
``-k`` (pre-seed master keys) option is passed. One of:
```
preseed_<distro>_<major_version>_<install_type>_master
preseed_<distro>_<major_version>_<minor_version>_<install_type>_master
preseed_<distro>_<major_version>_master
preseed_<distro>_<major_version>_<minor_version>_master
preseed_<distro>_<install_type>_master
preseed_<distro>_master
preseed_master (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
4. To install salt, which, of course, is required, one of:
```
install_<distro>_<major_version>_<install_type>
install_<distro>_<major_version>_<minor_version>_<install_type>
install_<distro>_<install_type>
```
5. Optionally, define a post install function, one of:
```
install_<distro>_<major_version>_<install_type>_post
install_<distro>_<major_version>_<minor_version>_<install_type>_post
install_<distro>_<major_version>_post
install_<distro>_<major_version>_<minor_version>_post
install_<distro>_<install_type>_post
install_<distro>_post
```
6. Optionally, define a start daemons function, one of:
```
install_<distro>_<major_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_<minor_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_restart_daemons
install_<distro>_<major_version>_<minor_version>_restart_daemons
install_<distro>_<install_type>_restart_daemons
install_<distro>_restart_daemons
```
**NOTE**
The start daemons function should be able to restart any daemons which are running, or
start if they're not running.
7. Optionally, define a daemons running function, one of:
```
daemons_running_<distro>_<major_version>_<install_type>
daemons_running_<distro>_<major_version>_<minor_version>_<install_type>
daemons_running_<distro>_<major_version>
daemons_running_<distro>_<major_version>_<minor_version>
daemons_running_<distro>_<install_type>
daemons_running_<distro>
daemons_running (THIS ONE IS ALREADY DEFINED AS THE DEFAULT)
```
8. Optionally, check enabled Services:
```
install_<distro>_<major_version>_<install_type>_check_services
install_<distro>_<major_version>_<minor_version>_<install_type>_check_services
install_<distro>_<major_version>_check_services
install_<distro>_<major_version>_<minor_version>_check_services
install_<distro>_<install_type>_check_services
install_<distro>_check_services
```
**NOTE**
The bootstrapping script must be plain POSIX `sh` only, **not** `bash` or another shell script.
By design, the targeting for each operating system and version is very specific. Assumptions of
supported versions or variants should not be made, to avoid failed or broken installations.

858
ChangeLog
View file

@ -1,3 +1,23 @@
Version 2017.12.13:
* Use HTTPS URL for OpenSuse's saltstack repo (gdm85) #1174
* Respect disable repos (-r) option on OpenBSD (eradman) #1171
* Fix #1168 : -b option causes error (vutny) #1170
* Fix fatal error with using the -b option. (arizvisa) #1169
* Devuan support (ymasson) #1165
* Fix yum repo on AWS Linux (cmclaughlin) #1164
* Use suse repo to install packages, rather than defining them (rallytime) #1157
* Remove patch-level-1 specific code for SLES installs (rallytime) #1156
* priority sort fedora-release (toanju) #1153
* Declare EOL for SUSE Linux Enterprise Server releases (vutny) #1150
* Fix #1142: allow git install on Raspbian 9 (vutny) #1146
* Follow symlinks when parsing distro release files (vutny) #1145
* fedora: use dnf-utils for F26 and above (toanju) #1144
* Declare EOL for openSUSE LEAP 42.1 (vutny) #1143
* Fix #1137: import GPG key through an HTTP(S) proxy (vutny) #1139
* Fix #1138: git install on Debian/Ubuntu various arches (vutny) #1141
* Declare EOL for openSUSE releases earlier and including 13.X (vutny) #1136
* Update Fedora support: 24 is EOL (rallytime) #1134
Version 2017.08.17: Version 2017.08.17:
* Add new authors (rallytime) #1130 * Add new authors (rallytime) #1130
* README: Fix typo and Table of Contents for Debian section (vutny) #1129 * README: Fix typo and Table of Contents for Debian section (vutny) #1129
@ -32,47 +52,47 @@ Version 2017.08.17:
* Declare End-Of-Life for Ubuntu 12.04 LTS (vutny) #1080 * Declare End-Of-Life for Ubuntu 12.04 LTS (vutny) #1080
Version 2017.05.24: Version 2017.05.24:
* Use freebsd repo to query for salt dependencies (Ch3LL) #1076 * Use freebsd repo to query for salt dependencies (Ch3LL) #1076
* Allow amazon to work with python2.7 on installs over 2016.11 (Ch3LL) #1073 * Allow amazon to work with python2.7 on installs over 2016.11 (Ch3LL) #1073
* ensure sles12 enables services with stable installs (Ch3LL) #1075 * ensure sles12 enables services with stable installs (Ch3LL) #1075
* Declare End-of-Life for RHEL 5 and its variants (vutny) #1070 * Declare End-of-Life for RHEL 5 and its variants (vutny) #1070
* Fix configuring SaltStack's repo URL for RHEL variants (vutny) #1068 * Fix configuring SaltStack's repo URL for RHEL variants (vutny) #1068
* Add Manjaro as Arch derivative (luthes) #1063 * Add Manjaro as Arch derivative (luthes) #1063
* Add "unmarkComment" option to probot-stale config (rallytime) #1064 * Add "unmarkComment" option to probot-stale config (rallytime) #1064
* Properly detect all supported Debian GNU/Linux derivatives (vutny) #1062 * Properly detect all supported Debian GNU/Linux derivatives (vutny) #1062
* Archlinux must always update (gtmanfred) #1060 * Archlinux must always update (gtmanfred) #1060
* Alpine: fix adding, checking and running Salt Syndic in stable mode (vutny) #1059 * Alpine: fix adding, checking and running Salt Syndic in stable mode (vutny) #1059
* Add KDE neon... (EHJ-52n) #1058 * Add KDE neon... (EHJ-52n) #1058
* Update probot-stale message formatting. (rallytime) #1057 * Update probot-stale message formatting. (rallytime) #1057
* Fix `git` bootstrap mode for CentOS (vutny) #1054 * Fix `git` bootstrap mode for CentOS (vutny) #1054
* update install_freebsd_10_stable to use FreeBSD repo (bytesatwork-xx) #1053 * update install_freebsd_10_stable to use FreeBSD repo (bytesatwork-xx) #1053
* Support OpenBSD 6.1 (eradman) #1048 * Support OpenBSD 6.1 (eradman) #1048
* Update daysUntilStale value in probot-stale config (rallytime) #1055 * Update daysUntilStale value in probot-stale config (rallytime) #1055
* Add ability to install and use a different python version when installing salt (Ch3LL) #1049 * Add ability to install and use a different python version when installing salt (Ch3LL) #1049
* Add non-LTS type support for Ubuntu 17.04 (rallytime) #1051 * Add non-LTS type support for Ubuntu 17.04 (rallytime) #1051
* Allow -R option to work for Debian/Ubuntu (rallytime) #1045 * Allow -R option to work for Debian/Ubuntu (rallytime) #1045
* Adjust "daysUntilStale" variable to 190 days. #1047 * Adjust "daysUntilStale" variable to 190 days. #1047
* Reduce the number of days an issue is considered "stale" (rallytime) #1046 * Reduce the number of days an issue is considered "stale" (rallytime) #1046
* Alpine: fix bootstrapping from Git -- install OpenRC initscripts (vutny) #1044 * Alpine: fix bootstrapping from Git -- install OpenRC initscripts (vutny) #1044
* Add probot-stale config file (rallytime) #1042 * Add probot-stale config file (rallytime) #1042
* Shallow cloning and Python setup fix for BSD (amontalban) #1040 * Shallow cloning and Python setup fix for BSD (amontalban) #1040
* Fix not needed quoting for salt/salt-bootstrap#1026 (amontalban) #1039 * Fix not needed quoting for salt/salt-bootstrap#1026 (amontalban) #1039
* Update README file with supported release documentation (rallytime) #1034 * Update README file with supported release documentation (rallytime) #1034
* Remove <<< bashism (The-Loeki) #1032 * Remove <<< bashism (The-Loeki) #1032
* [-R option] Fix logic error where we trying to enable epel with -R (rallytime) #1033 * [-R option] Fix logic error where we trying to enable epel with -R (rallytime) #1033
* Alpine: check Salt services have been enabled to start on boot (vutny) #1031 * Alpine: check Salt services have been enabled to start on boot (vutny) #1031
* AWS Linux Native Support (bkruger99) #1022 * AWS Linux Native Support (bkruger99) #1022
* Correct package name for FreeBSD installation (amontalban) #1030 * Correct package name for FreeBSD installation (amontalban) #1030
* README: describe architectures support for Salt deps on Linux distros (vutny) #1029 * README: describe architectures support for Salt deps on Linux distros (vutny) #1029
* This commit addresses some of the issues in salt/salt-bootstrap#996 (amontalban) #1026 * This commit addresses some of the issues in salt/salt-bootstrap#996 (amontalban) #1026
* Add support for stable installation on Alpine Linux release 3.5 (vutny) #1028 * Add support for stable installation on Alpine Linux release 3.5 (vutny) #1028
* Alpine Linux: fix installation of multiple pkgs ("stable" bootstrap) (vutny) #1027 * Alpine Linux: fix installation of multiple pkgs ("stable" bootstrap) (vutny) #1027
* Add Void Linux support (ndrwdn) #1025 * Add Void Linux support (ndrwdn) #1025
* RHEL6: disable stdin to fix shell session hang on killing tee pipe (vutny) #1018 * RHEL6: disable stdin to fix shell session hang on killing tee pipe (vutny) #1018
* Adding 2016.11 to stable version (ashokrajar) #1017 * Adding 2016.11 to stable version (ashokrajar) #1017
* Update bootstrap-salt.sh (caelor) #1015 * Update bootstrap-salt.sh (caelor) #1015
* Alpine Linux support #1009 (ek9) #1010 * Alpine Linux support #1009 (ek9) #1010
* Add Table of Contents in README (vutny) #1014 * Add Table of Contents in README (vutny) #1014
Version 2017.01.10: Version 2017.01.10:
* Update AUTHORS.rst with new contributors (rallytime) #1011 * Update AUTHORS.rst with new contributors (rallytime) #1011
@ -172,486 +192,486 @@ Version 2016.05.10:
* Fix Amazon Linux EOL check. (vutny) #818 * Fix Amazon Linux EOL check. (vutny) #818
Version 2016.04.18: Version 2016.04.18:
* Add support for openSUSE Leap. Thanks Roman Inflianskas(rominf). #693 * Add support for openSUSE Leap. Thanks Roman Inflianskas(rominf). #693
* Fix missing deps installation on Debian. Thanks Steve Groesz(wolfpackmars2). #699 * Fix missing deps installation on Debian. Thanks Steve Groesz(wolfpackmars2). #699
* Update SaltStack repo location and latest version for Windows. (brandon099) #711 * Update SaltStack repo location and latest version for Windows. (brandon099) #711
* Better EPEL repository detection on RHEL and CentOS. (vutny) #717 * Better EPEL repository detection on RHEL and CentOS. (vutny) #717
* Fix git invocation fail when `man` command is not available. (vutny) #718 * Fix git invocation fail when `man` command is not available. (vutny) #718
* Fix `epel-release` package installation on CentOS/RHEL 5. (vutny) #719 * Fix `epel-release` package installation on CentOS/RHEL 5. (vutny) #719
* Removed deprecated cli option. (abednarik) #705 * Removed deprecated cli option. (abednarik) #705
* Remove RHEL optional repo check and enable. (vutny) #720 * Remove RHEL optional repo check and enable. (vutny) #720
* Remove SaltStack COPR repository configuration for CentOS/RHEL5. (vutny) #721 * Remove SaltStack COPR repository configuration for CentOS/RHEL5. (vutny) #721
* Add opensuse_Tumbleweed support. (aboe76) #725 * Add opensuse_Tumbleweed support. (aboe76) #725
* Sometimes bootstrap doesn't install zmq. (jtand) #726 * Sometimes bootstrap doesn't install zmq. (jtand) #726
* Process -s (default sleep for service restarts) in bootstrap-salt.sh. (hipikat) #692 * Process -s (default sleep for service restarts) in bootstrap-salt.sh. (hipikat) #692
* Minion keys and /etc/salt/minion should be overwritten on -C. (cro) #541 * Minion keys and /etc/salt/minion should be overwritten on -C. (cro) #541
* Fix for -C (_CONFIG_ONLY). (beaucephus) #544 * Fix for -C (_CONFIG_ONLY). (beaucephus) #544
* Fix when using upstream tags. (The-Loeki) #564 * Fix when using upstream tags. (The-Loeki) #564
* COPR project moved. (rmohr) #738 * COPR project moved. (rmohr) #738
* Update license year range. (pra85) #743 * Update license year range. (pra85) #743
* Use POSIX-Compliant Command-Exists Test. (kojiromike) #741 * Use POSIX-Compliant Command-Exists Test. (kojiromike) #741
* Add -f option to force shallow cloning. (eyj) #660 * Add -f option to force shallow cloning. (eyj) #660
* add SLE 12 support, fix OpenSUSE support. (grep4linux) #748 * add SLE 12 support, fix OpenSUSE support. (grep4linux) #748
* Fix CentOS git setup.py syntax error upon installation. (The-Loeki) #746 * Fix CentOS git setup.py syntax error upon installation. (The-Loeki) #746
* Enable shallow cloning for version branches by default, not only tags. (vutny) #750 * Enable shallow cloning for version branches by default, not only tags. (vutny) #750
* do not install copr repo on fedora 22+. (toanju) #751 * do not install copr repo on fedora 22+. (toanju) #751
* Add support for pegged versions on YUM based OS'ses through repo.saltstack.com. (The-Loeki) #685 * Add support for pegged versions on YUM based OS'ses through repo.saltstack.com. (The-Loeki) #685
* fix for FreeBSD 11 CURRENT install functions. (serge-p) #723 * fix for FreeBSD 11 CURRENT install functions. (serge-p) #723
* Don't add zypp repo if it already exists. (furlongm) #731 * Don't add zypp repo if it already exists. (furlongm) #731
* switch repositories for suse and sles fixes `#706`_. (aboe76) #734 * switch repositories for suse and sles fixes `#706`_. (aboe76) #734
* Reformat and correct usage instructions. (vutny) #755 * Reformat and correct usage instructions. (vutny) #755
* fixed missing repo for suse 12. (aboe76) #756 * fixed missing repo for suse 12. (aboe76) #756
* fix for Amazon Linux. (shawnbutts) #700 * fix for Amazon Linux. (shawnbutts) #700
* adding support for OpenBSD distribution. (serge-p) #722 * adding support for OpenBSD distribution. (serge-p) #722
* fixing syntax errors. (beardedeagle) #760 * fixing syntax errors. (beardedeagle) #760
* Import CentOS 7 GPG key on RHEL for installing base dependencies from Salt corp repo. (vutny) #765 * Import CentOS 7 GPG key on RHEL for installing base dependencies from Salt corp repo. (vutny) #765
* Fix multiple lint errors (shellcheck) and make some refactoring. (vutny) #768 * Fix multiple lint errors (shellcheck) and make some refactoring. (vutny) #768
* Fix sleep time option to recognize a numeric argument. (vutny) #771 * Fix sleep time option to recognize a numeric argument. (vutny) #771
* Update README. (vutny) #787 * Update README. (vutny) #787
* get tornado from pip on a fedora git install. (jfindlay) #785 * get tornado from pip on a fedora git install. (jfindlay) #785
* Remove the Saltstack repo's alias. (cro) #794 * Remove the Saltstack repo's alias. (cro) #794
* Ability to change cache dir. (clarkperkins) #761 * Ability to change cache dir. (clarkperkins) #761
* Add config_freebsd_salt func so freebsd puts cfgs in the right place. (ryanwalder) #779 * Add config_freebsd_salt func so freebsd puts cfgs in the right place. (ryanwalder) #779
* Allow archive versions. (clarkperkins) #769 * Allow archive versions. (clarkperkins) #769
* Lack of HTTPS for RPM packages. (jaredestroud) #783 * Lack of HTTPS for RPM packages. (jaredestroud) #783
* Ability to change cache dir. (clarkperkins) #761 * Ability to change cache dir. (clarkperkins) #761
* Bootstrap on Docker. (vutny) #793 * Bootstrap on Docker. (vutny) #793
* add downstream pkg repo for SUSE. (jfindlay) #791 * add downstream pkg repo for SUSE. (jfindlay) #791
* Fixed use of HTTP over HTTPS for anonscm.debian.org. (gdm85) #788 * Fixed use of HTTP over HTTPS for anonscm.debian.org. (gdm85) #788
* Bump Salt version to latest stable in PS bootstrap script for Windows. (vutny) #801 * Bump Salt version to latest stable in PS bootstrap script for Windows. (vutny) #801
* Add an -l option to switch https to http links. (rallytime) #795 * Add an -l option to switch https to http links. (rallytime) #795
* Virtualenv support for Ubuntu. (l2ol33rt) #666 * Virtualenv support for Ubuntu. (l2ol33rt) #666
* Lint. (jfindlay) #805 * Lint. (jfindlay) #805
* use portable command check. (jfindlay) #806 * use portable command check. (jfindlay) #806
* Update epel-release version number (RuriRyan) #809 * Update epel-release version number (RuriRyan) #809
Version 2015.11.09 Version 2015.11.09
* Make sure that wget is installed. #868 * Make sure that wget is installed. #868
Version 2015.11.04: Version 2015.11.04:
* Allow bypassing dependencies installation. Thanks EYJ. #656. * Allow bypassing dependencies installation. Thanks EYJ. #656.
* Add FreeBSD 11 support. Thanks Chris Buechler(cbuechler). #653 * Add FreeBSD 11 support. Thanks Chris Buechler(cbuechler). #653
* Move RHEL installations to use repo.saltstack.com #674 * Move RHEL installations to use repo.saltstack.com #674
* Move Debian 8 installation to use repo.saltstack.com #674 * Move Debian 8 installation to use repo.saltstack.com #674
* Fix error finding python-jinja2 in RHEL 7. Thanks Rob Eden(hedinfaok). #654 * Fix error finding python-jinja2 in RHEL 7. Thanks Rob Eden(hedinfaok). #654
* Move Ubuntu 12 and 14 installations to use repo.saltstack.com #674 * Move Ubuntu 12 and 14 installations to use repo.saltstack.com #674
* Move FreeBSD installations to use repo.saltstack.com #674 * Move FreeBSD installations to use repo.saltstack.com #674
* Use dnf on Fedora 22 and later. Thanks Michele Bologna (mbologna). #665 * Use dnf on Fedora 22 and later. Thanks Michele Bologna (mbologna). #665
Version 2015.08.06: Version 2015.08.06:
* Fix python-requests installations for Ubuntu >= 14.04 LTS. #631, #632, #633 * Fix python-requests installations for Ubuntu >= 14.04 LTS. #631, #632, #633
* Install python-crypto from Chris Lea's PPA for Ubuntu < 14.04 * Install python-crypto from Chris Lea's PPA for Ubuntu < 14.04
* Exit the git checkout directory before deleting it. Thanks Bret Fisher. #634 * Exit the git checkout directory before deleting it. Thanks Bret Fisher. #634
* Use prefix /usr for centos git install. Thanks Stanislav B. #638 * Use prefix /usr for centos git install. Thanks Stanislav B. #638
* Drop Ubuntu EOL versions. All Ubuntu version before 12.04. * Drop Ubuntu EOL versions. All Ubuntu version before 12.04.
* Make sure python-dev is installed wheb trying to install tornado from PyPi. #640 * Make sure python-dev is installed wheb trying to install tornado from PyPi. #640
Version 2015.07.22: Version 2015.07.22:
* Fix tornado installation in Ubuntu. Thanks Yushi Nakai. #627 * Fix tornado installation in Ubuntu. Thanks Yushi Nakai. #627
* Install tornado using pip on Ubuntu for Salt's v2015.8.xx onward stable releases. * Install tornado using pip on Ubuntu for Salt's v2015.8.xx onward stable releases.
* Install requests on Ubuntu from Chris Lea's PPA. #630 * Install requests on Ubuntu from Chris Lea's PPA. #630
Version 2015.07.17: Version 2015.07.17:
* Make sure setuptools is installed before using it. #598. * Make sure setuptools is installed before using it. #598.
* `systemd` is only fully supported from 15.04 onwards. #602 * `systemd` is only fully supported from 15.04 onwards. #602
* Fix debian mirrors issue. Thanks Wolodja Wentland(babilen). #606 * Fix debian mirrors issue. Thanks Wolodja Wentland(babilen). #606
* Fix python-jinja2 repo move on RHEL6. Thanks lomeroe. #621 * Fix python-jinja2 repo move on RHEL6. Thanks lomeroe. #621
* Allow skipping services. Thanks denmat. #455 * Allow skipping services. Thanks denmat. #455
* Fix missing Debian init script. #607 saltstack/salt#25270 and saltstack/salt#25456 * Fix missing Debian init script. #607 saltstack/salt#25270 and saltstack/salt#25456
* Fix SmartOS etc path. Thanks Bret Fisher. #624 * Fix SmartOS etc path. Thanks Bret Fisher. #624
* Fix possible unbound variable in Gentoo. #625 * Fix possible unbound variable in Gentoo. #625
* Properly detect the git binary in SmartOS. #611 * Properly detect the git binary in SmartOS. #611
Version 2015.05.07: Version 2015.05.07:
* Lower required requests version dependency. Use system requests package where possible. * Lower required requests version dependency. Use system requests package where possible.
* Allow Ubuntu alternate ppas. Thanks Peter Tripp(notpeter). #563 * Allow Ubuntu alternate ppas. Thanks Peter Tripp(notpeter). #563
Version 2015.05.04: Version 2015.05.04:
* Fix the configuration path for FreeBSD. #567/#552. Thanks Ronald van Zantvoort(The-Loeki). * Fix the configuration path for FreeBSD. #567/#552. Thanks Ronald van Zantvoort(The-Loeki).
+ Fix non grouping support in POSIX sed. Thanks Ronald van Zantvoort(The-Loeki). + Fix non grouping support in POSIX sed. Thanks Ronald van Zantvoort(The-Loeki).
* Add Debian 8 support. Thanks Matt Black(mafrosis) * Add Debian 8 support. Thanks Matt Black(mafrosis)
* Improve Debian version parsing. Thanks Mark Lee(malept) * Improve Debian version parsing. Thanks Mark Lee(malept)
* Make sure we update packages list one Chris Lea's PPA repository is added. * Make sure we update packages list one Chris Lea's PPA repository is added.
* Hard code the Debian Squeeze backports to the DE mirror since the main repository is down. * Hard code the Debian Squeeze backports to the DE mirror since the main repository is down.
Thanks @panticz. #589. Thanks @panticz. #589.
* Only install git if not already installed. #560 * Only install git if not already installed. #560
* Fix openSUSE 13.2 where we need to pass --replaceflags. Thanks Roman Inflianskas(rominf). * Fix openSUSE 13.2 where we need to pass --replaceflags. Thanks Roman Inflianskas(rominf).
#504. #504.
* Make sure that a recent enough requests package is installed in Debian/Ubuntu. * Make sure that a recent enough requests package is installed in Debian/Ubuntu.
* Install tornado on git installs for the develop branch if necessary. #580 * Install tornado on git installs for the develop branch if necessary. #580
* Add support for Ubuntu 15.04 * Add support for Ubuntu 15.04
Version 2015.03.15: Version 2015.03.15:
* Add multi-master support. Thanks Fred Reimer(freimer). #555 * Add multi-master support. Thanks Fred Reimer(freimer). #555
Version 2015.03.04: Version 2015.03.04:
* Fix the salt package selection on Arch stable installs. * Fix the salt package selection on Arch stable installs.
Version 2015.02.28: Version 2015.02.28:
* Fix Debian backports repository. * Fix Debian backports repository.
Version 2015.02.27: Version 2015.02.27:
* Try other tools besides wget when downloading the COPR repo file. Thanks Ronald van * Try other tools besides wget when downloading the COPR repo file. Thanks Ronald van
Zantvoort(The-Loeki) Zantvoort(The-Loeki)
* No need to install packages from the Unstable repository for debian, use backports. Thanks * No need to install packages from the Unstable repository for debian, use backports. Thanks
Ari Aosved(devaos) Ari Aosved(devaos)
* Fix an issue in CentOS where the syndic package wasn't being installed(since it's now a * Fix an issue in CentOS where the syndic package wasn't being installed(since it's now a
separate package). Thanks Ronald van Zantvoort(The-Loeki) separate package). Thanks Ronald van Zantvoort(The-Loeki)
* Enable the server-optionals repository for RHEL >= 7 * Enable the server-optionals repository for RHEL >= 7
* RHEL/CentOS 5 now uses the COPR repository. #533 * RHEL/CentOS 5 now uses the COPR repository. #533
Version 2015.01.12: Version 2015.01.12:
* Add package upgrades support to FreeBSD. Thanks William Eshagh(eshagl). * Add package upgrades support to FreeBSD. Thanks William Eshagh(eshagl).
* Make sure wget is installed on debian bare systems. * Make sure wget is installed on debian bare systems.
* Make sure the Arch pacman database is up to date * Make sure the Arch pacman database is up to date
* Install `python-hashlib` in CentOS 5 in order to use the COPR repository * Install `python-hashlib` in CentOS 5 in order to use the COPR repository
Version 2014.12.11: Version 2014.12.11:
* Enable binary installations on CentOS 7. Thanks ggillies * Enable binary installations on CentOS 7. Thanks ggillies
* Updated the URL for EPEL 7 * Updated the URL for EPEL 7
Version 2014.10.30: Version 2014.10.30:
* Apply the forking patch to openSUSE git installations. * Apply the forking patch to openSUSE git installations.
Version 2014.10.28: Version 2014.10.28:
* Install the python systemd bindings for Arch and Fedora git installations * Install the python systemd bindings for Arch and Fedora git installations
* Allow cloning from Salt's git repository using HTTPS. #475 * Allow cloning from Salt's git repository using HTTPS. #475
Version 2014.10.21: Version 2014.10.21:
* Fix path to python on FreeBSD. Thanks Pavel Snagovsky(paha) * Fix path to python on FreeBSD. Thanks Pavel Snagovsky(paha)
* Fix syndic installation on RHEL based installations. Thanks markgaylard * Fix syndic installation on RHEL based installations. Thanks markgaylard
* Properly detect the git checkout `basename` directory instead of hard coding it. Thanks * Properly detect the git checkout `basename` directory instead of hard coding it. Thanks
Howard Mei(HowardMei). Howard Mei(HowardMei).
* Allow installing ZMQ for SaltStack's COPR repository. * Allow installing ZMQ for SaltStack's COPR repository.
* Allow installing ZMQ4/PyZMQ14 from Chris Lea's PPA repository. * Allow installing ZMQ4/PyZMQ14 from Chris Lea's PPA repository.
Version 2014.10.14: Version 2014.10.14:
* Fixed a regex issue with matching Salt's tags. Match v2014.7 but not 2014.7 as a valid tag * Fixed a regex issue with matching Salt's tags. Match v2014.7 but not 2014.7 as a valid tag
* Distro Support Added: * Distro Support Added:
* Added Linux Mint 17 support(Thanks Skyler Berg) * Added Linux Mint 17 support(Thanks Skyler Berg)
* Disrto Suuport Fixed: * Disrto Suuport Fixed:
* Init pacman keys if not done so previously * Init pacman keys if not done so previously
Version 2014.09.25: Version 2014.09.25:
* Properly detect Amazon AMI's >= 2014.9. #468 * Properly detect Amazon AMI's >= 2014.9. #468
Version 2014.09.09: Version 2014.09.09:
* Distro Support Fixes: * Distro Support Fixes:
* Updated the URL for EPEL 7 * Updated the URL for EPEL 7
* PIP based installations on Ubuntu 10.04 need setuptools installed * PIP based installations on Ubuntu 10.04 need setuptools installed
* Arch stopped providing the version information on `/etc/arch-release` * Arch stopped providing the version information on `/etc/arch-release`
* Complete `salt-api` services checking. #450 * Complete `salt-api` services checking. #450
Version 2014.08.30: Version 2014.08.30:
* Skip service checks for `salt-api`, since this should be an opt-in service not necessarily * Skip service checks for `salt-api`, since this should be an opt-in service not necessarily
meant to start at boot time. meant to start at boot time.
* Distro Support Fixes: * Distro Support Fixes:
* Also install the salt-api service on RHEL based distributions for git based * Also install the salt-api service on RHEL based distributions for git based
installations. installations.
* Properly detect Arch Linux when lsb-release is available * Properly detect Arch Linux when lsb-release is available
* Updated the URL for EPEL 7 * Updated the URL for EPEL 7
Version 2014.08.23: Version 2014.08.23:
* Avoid redirect breakage when installing EPEL with rpm on RHEL 5 * Avoid redirect breakage when installing EPEL with rpm on RHEL 5
* Ensure python-apt is installed by the bootstrap script for Debian & Ubuntu minions. Thanks * Ensure python-apt is installed by the bootstrap script for Debian & Ubuntu minions. Thanks
@garethgreenaway. @garethgreenaway.
* Don't shallow clone on git versions lower than 1.7.10 * Don't shallow clone on git versions lower than 1.7.10
* Only shallow clone on git tag based installations * Only shallow clone on git tag based installations
* Configurable Salt repository clone directory for git based installations * Configurable Salt repository clone directory for git based installations
* Distro Support Fixed: * Distro Support Fixed:
* Fixed the URL to download EPEL for Cent 5 * Fixed the URL to download EPEL for Cent 5
* Use the full path to the `chkconfig` binary when checking for services in SysV init * Use the full path to the `chkconfig` binary when checking for services in SysV init
systems. systems.
* Fixed an issue where the default sleep period(3 secs) on Ubuntu would cause a race * Fixed an issue where the default sleep period(3 secs) on Ubuntu would cause a race
condition with upstart wherein the package installation would call an upstart start and condition with upstart wherein the package installation would call an upstart start and
before it could complete, bootstrap would call another. The result was *two* copies of salt before it could complete, bootstrap would call another. The result was *two* copies of salt
running which ended up causing a most stubborn bug that's documented in running which ended up causing a most stubborn bug that's documented in
https://github.com/saltstack/salt/issues/12248 https://github.com/saltstack/salt/issues/12248
Version 2014.07.29: Version 2014.07.29:
* Shallow clone Salt's repository for speed improvements. In case of failure, resume old * Shallow clone Salt's repository for speed improvements. In case of failure, resume old
behaviour. behaviour.
* Fixed bug introduced in 0577622 when salt-api service install and checks were added * Fixed bug introduced in 0577622 when salt-api service install and checks were added
* Distro Support Fixed: * Distro Support Fixed:
* Fixed infinite loop when handling RHEL dependencies. Thanks Dan Mick(@dmick). * Fixed infinite loop when handling RHEL dependencies. Thanks Dan Mick(@dmick).
Version 2014.07.27: Version 2014.07.27:
* Amazon Linux AMI 2010.xx is not explicitly not supported. * Amazon Linux AMI 2010.xx is not explicitly not supported.
* Install the `salt-api` scripts if available when the `salt-master` is also installed. * Install the `salt-api` scripts if available when the `salt-master` is also installed.
* Added support for a configurable sleep time when starting, restarting and checking for * Added support for a configurable sleep time when starting, restarting and checking for
enabled services. enabled services.
* Drop the `tsflags` requirement for RHEL and RHEL based distributions. * Drop the `tsflags` requirement for RHEL and RHEL based distributions.
* When sorting release files, oracle-release has higher priority than redhat-release. * When sorting release files, oracle-release has higher priority than redhat-release.
* Distro Support Fixed: * Distro Support Fixed:
* Debian >= 7 uses system's python-requests package, not PIP * Debian >= 7 uses system's python-requests package, not PIP
* Install 'python-zypp' in SuSE and openSUSE(required by Salt's zypper module) * Install 'python-zypp' in SuSE and openSUSE(required by Salt's zypper module)
* Only install EPEL on requiring distributions if not already installed * Only install EPEL on requiring distributions if not already installed
* CentOS 7 now uses systemd and the script now properly handles it * CentOS 7 now uses systemd and the script now properly handles it
* systemd in openSUSE 12.2 complains if service does not contain `.service`` * systemd in openSUSE 12.2 complains if service does not contain `.service``
* Properly detect openSUSE using `lsb_release * Properly detect openSUSE using `lsb_release
* SLES 11 SP3 ships with both python-M2Crypto-0.22.* and python-m2crypto-0.21 and we will * SLES 11 SP3 ships with both python-M2Crypto-0.22.* and python-m2crypto-0.21 and we will
be asked which we want to install, even with --non-interactive. Let's try to install the be asked which we want to install, even with --non-interactive. Let's try to install the
higher version first and then the lower one in case of failure. higher version first and then the lower one in case of failure.
* Allow some extra time on RHEL for the optionals repo check in case the repository * Allow some extra time on RHEL for the optionals repo check in case the repository
subscription is being managed externally. subscription is being managed externally.
Version 2014.06.30: Version 2014.06.30:
* Distro Support Fixed: * Distro Support Fixed:
* Bump build/maintenance version for epel-release package. Thanks Gregory Meno(GregMeno) * Bump build/maintenance version for epel-release package. Thanks Gregory Meno(GregMeno)
* Properly detect Amazon Linux AMI when using `lsb_release` * Properly detect Amazon Linux AMI when using `lsb_release`
* Fix `tsflags` installation. * Fix `tsflags` installation.
Version 2014.06.28: Version 2014.06.28:
* Fixed `tsflags` packages detection for RHEL and Oracle Linux 6.5 * Fixed `tsflags` packages detection for RHEL and Oracle Linux 6.5
Version 2014.06.21: Version 2014.06.21:
* Also export the HTTPS proxy environment variable. Thanks Giuseppe Iannello(gianello). * Also export the HTTPS proxy environment variable. Thanks Giuseppe Iannello(gianello).
* Distro Support Fixed: * Distro Support Fixed:
* Improve Oracle Linux Server detection * Improve Oracle Linux Server detection
* Overcome the Oracle Linux awkwardness. `--enablerepo=XYX` disables ALL OTHER REPOS!!!! * Overcome the Oracle Linux awkwardness. `--enablerepo=XYX` disables ALL OTHER REPOS!!!!
* Oracle Linux also support testing repositories installation * Oracle Linux also support testing repositories installation
Version 2014.06.19: Version 2014.06.19:
* Allow passing the master address as an environment variable, `BS_SALT_MASTER_ADDRESS` * Allow passing the master address as an environment variable, `BS_SALT_MASTER_ADDRESS`
* Fixed an issue with the keys pre-seed. We were passing absolute paths where we only needed * Fixed an issue with the keys pre-seed. We were passing absolute paths where we only needed
basenames. basenames.
* Added HTTP proxy configuration support. Thanks Giuseppe Iannello(gianello), * Added HTTP proxy configuration support. Thanks Giuseppe Iannello(gianello),
* Distro Support Added: * Distro Support Added:
* Elementary OS * Elementary OS
* RHEL 7 Beta/RC * RHEL 7 Beta/RC
* Kali Linux. Thanks Valentin Bud(valentinbud) * Kali Linux. Thanks Valentin Bud(valentinbud)
* Distro Support Fixed: * Distro Support Fixed:
* Improved RHEL optionals repository detection * Improved RHEL optionals repository detection
Version 2014.04.16: Version 2014.04.16:
* Fixed a bug for RHEL 6 based distributions where yum-utils was not getting installed. * Fixed a bug for RHEL 6 based distributions where yum-utils was not getting installed.
* Added minor version check for RHEL 6 optional channel. * Added minor version check for RHEL 6 optional channel.
* Added quotes around "apache-libcloud>=$_LIBCLOUD_MIN_VERSION" for proper version requirements * Added quotes around "apache-libcloud>=$_LIBCLOUD_MIN_VERSION" for proper version requirements
handling. handling.
* Install the python 'requests' package which is now a hard dependency in Salt. * Install the python 'requests' package which is now a hard dependency in Salt.
* When installing from a user defined repository add the official one as a remote and fetch * When installing from a user defined repository add the official one as a remote and fetch
its tags for proper versioning. its tags for proper versioning.
* Distro Support Fixed: * Distro Support Fixed:
* CentOS netinstall ISO's don't install `chkconfig` * CentOS netinstall ISO's don't install `chkconfig`
* Improved RHEL optional repository detection. This allows user repository usage, which * Improved RHEL optional repository detection. This allows user repository usage, which
don't need the optional repository support since they usually provide their packages. don't need the optional repository support since they usually provide their packages.
* Distro Support Added: * Distro Support Added:
* Oracle Linux * Oracle Linux
* Scientific Linux * Scientific Linux
Version 2014.03.10-1: Version 2014.03.10-1:
* Distro Support Fixed: * Distro Support Fixed:
* Fix the Debian services running function * Fix the Debian services running function
Version 2014.03.10: Version 2014.03.10:
* Debian based distributions which don't use upstart now also check if the salt services are * Debian based distributions which don't use upstart now also check if the salt services are
enabled. enabled.
* Distro Support Fixed: * Distro Support Fixed:
* RedHat based distributions now have a proper services enabled checker. * RedHat based distributions now have a proper services enabled checker.
Version 2014.02.27: Version 2014.02.27:
* Fixed a bug on the services enabled function searching logic. * Fixed a bug on the services enabled function searching logic.
* Arch, Fedora, openSUSE and SuSE now check for services enabled, if using systemd * Arch, Fedora, openSUSE and SuSE now check for services enabled, if using systemd
* CentOS(and any RedHat based) and Ubuntu now check for services enabled is using upstart * CentOS(and any RedHat based) and Ubuntu now check for services enabled is using upstart
* Distro Support Added: * Distro Support Added:
* Debian 8. Thank You Boris Feld(Lothiraldan). * Debian 8. Thank You Boris Feld(Lothiraldan).
Version 2014.02.19: Version 2014.02.19:
* Fixed a problem with the quotes of an error message * Fixed a problem with the quotes of an error message
* Arch installations now uses the community repository * Arch installations now uses the community repository
* Distro Support Fixed: * Distro Support Fixed:
* Fixed Fedora Git based installations(git was not being installed) * Fixed Fedora Git based installations(git was not being installed)
Version 2014.02.18: Version 2014.02.18:
* Debian based distribution now get a warning stating that NOT starting daemons does not work * Debian based distribution now get a warning stating that NOT starting daemons does not work
as supposed, mainly because that's the Debian policy. as supposed, mainly because that's the Debian policy.
* Fix bug introduced when implementing the master ip flag. The default minion includes * Fix bug introduced when implementing the master ip flag. The default minion includes
directory is `minion.d`, not `minion.conf.d` directory is `minion.d`, not `minion.conf.d`
Version 2014.02.16: Version 2014.02.16:
* The script now allows setting up the salt-master address as a separate configuration file by * The script now allows setting up the salt-master address as a separate configuration file by
passing `-A` to the script. passing `-A` to the script.
* Add support to install apache-libcloud by passing the `-L` flag. In some distribution it's * Add support to install apache-libcloud by passing the `-L` flag. In some distribution it's
also needed to pass `-P` because the minimal apache-libcloud version is `0.14.0`. This support also needed to pass `-P` because the minimal apache-libcloud version is `0.14.0`. This support
is still missing for FreeBSD and SmartOS. is still missing for FreeBSD and SmartOS.
* Fixed an issue when copying or moving files. We now test to see if the destination is a * Fixed an issue when copying or moving files. We now test to see if the destination is a
directory and create a full path from that so that the "do not override" logic works as directory and create a full path from that so that the "do not override" logic works as
supposed. #294. supposed. #294.
* Allow passing additional package names to install while installing Salt's dependencies. #262 * Allow passing additional package names to install while installing Salt's dependencies. #262
* Pass the salt configuration directory, default or from environment variable to the setup.py * Pass the salt configuration directory, default or from environment variable to the setup.py
script for git based installations. #305 script for git based installations. #305
* Distro Support Fixed: * Distro Support Fixed:
* FreeBSD `fetch` now has a notion of insecure certificates. Handle this properly. Thank * FreeBSD `fetch` now has a notion of insecure certificates. Handle this properly. Thank
You Mike Carlson(m87carlson). You Mike Carlson(m87carlson).
* Arch, openSUSE and SuSE are now upgradable when the `-U` flag is passed. * Arch, openSUSE and SuSE are now upgradable when the `-U` flag is passed.
* Force overwrites now works for existing init.d scripts on CentOS git installations. #259 * Force overwrites now works for existing init.d scripts on CentOS git installations. #259
* Distro Support Added: * Distro Support Added:
* FreeBSD 10 is now also supported. Thank You Mike Carlson(m87carlson). * FreeBSD 10 is now also supported. Thank You Mike Carlson(m87carlson).
* Red Had Enterprise Workstation is now supported. * Red Had Enterprise Workstation is now supported.
Version 1.5.11: Version 1.5.11:
* Fixed an out of scope variable missed when moving functions around. * Fixed an out of scope variable missed when moving functions around.
Version 1.5.10: Version 1.5.10:
* Salt no longer has the master branch in git, install from develop as default. * Salt no longer has the master branch in git, install from develop as default.
* Installing from Git on Red Hat based distributions now also needs `yum-utils` installed. * Installing from Git on Red Hat based distributions now also needs `yum-utils` installed.
* Allow the script to use a different git repository to install from. * Allow the script to use a different git repository to install from.
* Fixed a bug where a branch name with dashes would be wrongly detected as an option to the * Fixed a bug where a branch name with dashes would be wrongly detected as an option to the
script. script.
* Default to secure file downloads(if any). * Default to secure file downloads(if any).
* Distro Support Fixed: * Distro Support Fixed:
* Minimal Ubuntu installation might not have upstart installed, fixed. * Minimal Ubuntu installation might not have upstart installed, fixed.
* FreeBSD now uses the official FreeBSD repository. Thank You Paul Brian(lifeisstillgood)! * FreeBSD now uses the official FreeBSD repository. Thank You Paul Brian(lifeisstillgood)!
Version 1.5.9: Version 1.5.9:
* Allow to not start the daemons after bootstrapping salt. This will allow `vagrant-lxc` * Allow to not start the daemons after bootstrapping salt. This will allow `vagrant-lxc`
installations, `debootstrap*`, etc, to finish properly. Thanks Henrik Holmboe (holmboe). installations, `debootstrap*`, etc, to finish properly. Thanks Henrik Holmboe (holmboe).
* Distro Support Fixed: * Distro Support Fixed:
* Salt >= 0.17 requires ElementTree which is on the python standard library after python * Salt >= 0.17 requires ElementTree which is on the python standard library after python
2.6 but openSUSE split that into a separate package. 2.6 but openSUSE split that into a separate package.
* Fixed a logic preventing proper Ubuntu bootstrapping on some situations. * Fixed a logic preventing proper Ubuntu bootstrapping on some situations.
Version 1.5.8: Version 1.5.8:
* Fixed an Ubuntu regression. `add-apt-repository` is only available on * Fixed an Ubuntu regression. `add-apt-repository` is only available on
`software-properties-common` after 12.10, inclusive. Thanks Diego Woitasen(diegows) `software-properties-common` after 12.10, inclusive. Thanks Diego Woitasen(diegows)
Version 1.5.7: Version 1.5.7:
* For RedHat based distributions which rely on `epel`, the user can now pass `testing` to the * For RedHat based distributions which rely on `epel`, the user can now pass `testing` to the
script and `epel-testing` shall be used to bootstrap salt and it's dependencies. script and `epel-testing` shall be used to bootstrap salt and it's dependencies.
* No full system upgrades, if optional by the distribution, shall be done unless `-U` is passed * No full system upgrades, if optional by the distribution, shall be done unless `-U` is passed
to the bootstrap script(required upgrade procedures must exist on the script, currently Debian to the bootstrap script(required upgrade procedures must exist on the script, currently Debian
and RedHat based distributions support system upgrades). and RedHat based distributions support system upgrades).
* Fixed an issue where passing BS_KEEP_TEMP_FILES=1 to the script was causing an error. #206. * Fixed an issue where passing BS_KEEP_TEMP_FILES=1 to the script was causing an error. #206.
* Switched FreeBSD default packages repository to PCBSD(http://www.pcbsd.org) and added * Switched FreeBSD default packages repository to PCBSD(http://www.pcbsd.org) and added
multiple repository support to install salt from the SaltStack's FreeBSD repository. Thanks multiple repository support to install salt from the SaltStack's FreeBSD repository. Thanks
Christer Edwards(cedwards). Christer Edwards(cedwards).
* Improved Gentoo Support. Thanks Elias Probst(eliasp). * Improved Gentoo Support. Thanks Elias Probst(eliasp).
* Stop execution soon for end of life distributions or non supported distribution versions. * Stop execution soon for end of life distributions or non supported distribution versions.
* Distro Support Fixed: * Distro Support Fixed:
* Fixed an unbound variable while bootstraping Gentoo. * Fixed an unbound variable while bootstraping Gentoo.
* Fixed CentOS/RHEL 5. * Fixed CentOS/RHEL 5.
* Fixed crypto++ compilation. Thanks Kenneth Wilke(KennethWilke)! * Fixed crypto++ compilation. Thanks Kenneth Wilke(KennethWilke)!
* Fixed FreeBSD git installations not pointing to the proper salt configuration directory, * Fixed FreeBSD git installations not pointing to the proper salt configuration directory,
which on FreeBSD is '/usr/local/etc/salt'. which on FreeBSD is '/usr/local/etc/salt'.
* Fixed testing installation for Red Hat based distributions. Thanks Jeff Strunk(jstrunk) * Fixed testing installation for Red Hat based distributions. Thanks Jeff Strunk(jstrunk)
* Fixed wrong package name on Arch. Thanks Niels Abspoel(aboe76) * Fixed wrong package name on Arch. Thanks Niels Abspoel(aboe76)
* Make sure the Ubuntu universe repository is enabled. Thanks Karl Grzeszczak(karlgrz). * Make sure the Ubuntu universe repository is enabled. Thanks Karl Grzeszczak(karlgrz).
* Fixed SmartOS installation. Thanks Matthieu Guegan(mguegan). * Fixed SmartOS installation. Thanks Matthieu Guegan(mguegan).
Version 1.5.6: Version 1.5.6:
* If there's a `grains` file on the provided temporary configuration directory, move it to the * If there's a `grains` file on the provided temporary configuration directory, move it to the
proper place while moving the minion configuration file. proper place while moving the minion configuration file.
* Gentoo bootstraps can now use a bin host to provide binary packages, just set the * Gentoo bootstraps can now use a bin host to provide binary packages, just set the
`BS_GENTOO_USE_BINHOST` environment variable. `BS_GENTOO_USE_BINHOST` environment variable.
* If `BS_KEEP_TEMP_FILES=1` is found on the environment, the script will copy the files instead * If `BS_KEEP_TEMP_FILES=1` is found on the environment, the script will copy the files instead
of moving them. of moving them.
* There were still some `mv` and `cp` occurrences which were not using their `{move,copy}file` * There were still some `mv` and `cp` occurrences which were not using their `{move,copy}file`
replacements which ended up on now respecting the "Do not override existing configuration" replacements which ended up on now respecting the "Do not override existing configuration"
feature. feature.
* Distro Support Fixed: * Distro Support Fixed:
* Arch now upgrades it's system package properly as suggested on their mailing list. * Arch now upgrades it's system package properly as suggested on their mailing list.
* Arch now moves back any configuration files provided by the user renamed by pacman on the * Arch now moves back any configuration files provided by the user renamed by pacman on the
installation process. installation process.
* Fixed SmartOS detection(was being detected as Solaris) and bootstrapping. Fixed SmartOS * Fixed SmartOS detection(was being detected as Solaris) and bootstrapping. Fixed SmartOS
different gcc package names for different package sets. different gcc package names for different package sets.
* Fixed FreeBSD git based installations(no rc.d scripts were available). * Fixed FreeBSD git based installations(no rc.d scripts were available).
* Fixed FreeBSD not re-evaluating the `PKI_DIR` variable since the `SALT_ETC_DIR` was * Fixed FreeBSD not re-evaluating the `PKI_DIR` variable since the `SALT_ETC_DIR` was
redefined. redefined.
* Distro Support Added: * Distro Support Added:
* Linux Mint. Thanks Alex Van't Hof(alexvh)! * Linux Mint. Thanks Alex Van't Hof(alexvh)!
* Linaro. * Linaro.
Version 1.5.5: Version 1.5.5:
* Fixed a variable error in the new pre-seed feature. * Fixed a variable error in the new pre-seed feature.
* Fixed the destination path to where the pre-seed minions keys should be copied. * Fixed the destination path to where the pre-seed minions keys should be copied.
* Debian installations now use SaltStack's repository. * Debian installations now use SaltStack's repository.
* Configuration files can now be passed as an URL to a compressed file. Thanks Geoff Garside! * Configuration files can now be passed as an URL to a compressed file. Thanks Geoff Garside!
* Distro Support Fixed: * Distro Support Fixed:
* Debian's optional ZMQ3 support was fixed (libzmq3 has moved from experimental to * Debian's optional ZMQ3 support was fixed (libzmq3 has moved from experimental to
unstable). unstable).
* Ubuntu Lucid Daily PPA * Ubuntu Lucid Daily PPA
* SmartOS no longer ignores $SALT_ETC_DIR. Matthieu Guegan! * SmartOS no longer ignores $SALT_ETC_DIR. Matthieu Guegan!
* FreeBSD no longer ignores $SALT_ETC_DIR. Thanks Geoff Garside! * FreeBSD no longer ignores $SALT_ETC_DIR. Thanks Geoff Garside!
* FreeBSD does not try to install pkgng if pkg is installed. Thanks Geoff Garside! * FreeBSD does not try to install pkgng if pkg is installed. Thanks Geoff Garside!
* SunOS (Make use of XPG4 binaries on SunOS). Thanks Matthieu Guegan! * SunOS (Make use of XPG4 binaries on SunOS). Thanks Matthieu Guegan!
* openSUSE (Don't fail if only one of the repositories failed to update) * openSUSE (Don't fail if only one of the repositories failed to update)
* Arch (Fixed the GPG issues for git installations) * Arch (Fixed the GPG issues for git installations)
* Distro Support Added: * Distro Support Added:
* Gentoo. Thanks kaithar! * Gentoo. Thanks kaithar!
Version 1.5.4: Version 1.5.4:
* Fixed an issue we had when /proc/cpuinfo had more than one CPU. Detected on AMD CPUs. * Fixed an issue we had when /proc/cpuinfo had more than one CPU. Detected on AMD CPUs.
* OpenSUSE 12.3 uses lsb_release. Fix the returned distro name "openSUSE project" to "openSUSE" * OpenSUSE 12.3 uses lsb_release. Fix the returned distro name "openSUSE project" to "openSUSE"
which the script handles. which the script handles.
* Added an custom move function which will only override if required and if we permit it. * Added an custom move function which will only override if required and if we permit it.
* Implemented the necessary function to pre-seed minion keys on a salt master as an optional * Implemented the necessary function to pre-seed minion keys on a salt master as an optional
argument. argument.
* Distro Support Fixed: * Distro Support Fixed:
* FreeBSD (Don't let the script fail if PACKAGESITE is not set) * FreeBSD (Don't let the script fail if PACKAGESITE is not set)
* Debian Stable installations (the function search was not working as supposed) * Debian Stable installations (the function search was not working as supposed)
* Distro Support Added: * Distro Support Added:
* Ubuntu 13.04 (Was disabled because of a bad beta1. Fixed in beta2) * Ubuntu 13.04 (Was disabled because of a bad beta1. Fixed in beta2)
Version 1.5.3: Version 1.5.3:
* Return 0 or 1 from functions * Return 0 or 1 from functions
* Convert several pipes into a single awk call * Convert several pipes into a single awk call
* Fixed `/etc/os-release` parsing * Fixed `/etc/os-release` parsing
* Fixed `config_salt()` * Fixed `config_salt()`
* Distro Support Fixed: * Distro Support Fixed:
* EPEL-based installations (CentOS, Amazon Linux, RedHat) * EPEL-based installations (CentOS, Amazon Linux, RedHat)
* SuSE/OpenSUSE (problem running the script twice, ie, existing `devel_languages_python` * SuSE/OpenSUSE (problem running the script twice, ie, existing `devel_languages_python`
repository) repository)
* SuSE 11 SP1 (pip based install and config trigger) * SuSE 11 SP1 (pip based install and config trigger)
* Distro Support Added: * Distro Support Added:
* Debian 7 (Only git installations at the moment) * Debian 7 (Only git installations at the moment)
Version 1.5.2: Version 1.5.2:
* Fix issue with Travis testing (it installs it's own ZeroMQ3 lib * Fix issue with Travis testing (it installs it's own ZeroMQ3 lib
* Allow setting the debug output from an environment variable * Allow setting the debug output from an environment variable
* Fix an escape issue in the `printf` calls used in our echo calls * Fix an escape issue in the `printf` calls used in our echo calls
* Don't overwrite files (`config`, `init.d`, etc). Use a specific flag to force overwrites. * Don't overwrite files (`config`, `init.d`, etc). Use a specific flag to force overwrites.
* Distro Support Fixed: * Distro Support Fixed:
* Ubuntu daily installs. * Ubuntu daily installs.
* Distro Support Added: * Distro Support Added:
* Trisquel 6.0 (Ubuntu 12.04) * Trisquel 6.0 (Ubuntu 12.04)
Version 1.5.1: Version 1.5.1:
* Improved unittesting. * Improved unittesting.
* Starting daemons. * Starting daemons.
* Make sure that daemons are really running. * Make sure that daemons are really running.
* For the users to make the choice if installing from PIP (if required since there aren't system * For the users to make the choice if installing from PIP (if required since there aren't system
pacakges). pacakges).
* Fixed salt's git cloning when the salt git tree is already present on the system. * Fixed salt's git cloning when the salt git tree is already present on the system.
* Distro Support Fixed: * Distro Support Fixed:
* Debian 6 * Debian 6
* Ubuntu 12.10 * Ubuntu 12.10
* CentOS * CentOS
* Distro Support Added: * Distro Support Added:
* SuSE 11 SP1/11 SP2 * SuSE 11 SP1/11 SP2
* OpenSUSE 12.x * OpenSUSE 12.x
Version 1.5: Version 1.5:
* First stable version of the script * First stable version of the script
* Support for: * Support for:
* Ubuntu 10.x/11.x/12.x * Ubuntu 10.x/11.x/12.x
* Debian 6.x * Debian 6.x
* CentOS 5/6 * CentOS 5/6
* Red Hat 5/6 * Red Hat 5/6
* Red Hat Enterprise 5/6 * Red Hat Enterprise 5/6
* Fedora * Fedora
* Arch * Arch
* SmartOS * SmartOS
* FreeBSD 9.0 * FreeBSD 9.0
# Don't remove the line below. # Don't remove the line below.

View file

@ -1,6 +1,6 @@
Salt Bootstrap - Generic Salt Bootstrap Script Salt Bootstrap - Generic Salt Bootstrap Script
Copyright 2012-2016 Salt Stack (saltstack.org) Copyright 2012-2017 Salt Stack (saltstack.org)
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View file

@ -13,16 +13,11 @@ the `Salt`_ installation process is handled by this shell script ``bootstrap-sal
script runs through a series of checks to determine operating system type and version to then script runs through a series of checks to determine operating system type and version to then
install the `Salt`_ binaries using the appropriate methods. install the `Salt`_ binaries using the appropriate methods.
.. note:: **NOTE**
This ``README`` file is not the absolute truth to what the bootstrap script is capable of, for
that, please read the generated help by passing ``-h`` to the script or even better,
`read the source`_.
**In case you found a bug, please read** `I Found a Bug`_ **first before submitting a new issue.**
The examples there show how to get the latest development version of the bootstrap script. Chances
are high that your issue was already fixed.
This ``README`` file is not the absolute truth to what the bootstrap script is capable of, for
that, please read the generated help by passing ``-h`` to the script or even better,
`read the source`_.
Bootstrap Bootstrap
========= =========
@ -32,11 +27,17 @@ 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:
- 2017.08.17: ``909b4d35696b9867b34b22ef4b60edbc5a0e9f8d1ed8d05f922acb79a02e46e3``
- 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89`` - 2017.05.24: ``8c42c2e5ad3d4384ddc557da5c214ba3e40c056ca1b758d14a392c1364650e89``
If you're looking for the *one-liner* to install Salt, please scroll to the bottom and use the If you're looking for the *one-liner* to install Salt, please scroll to the bottom and use the
instructions for `Installing via an Insecure One-Liner`_. instructions for `Installing via an Insecure One-Liner`_.
Contributing
------------
The Salt Bootstrap project is open and encouraging to code contributions. Please review the
`Contributing Guidelines`_ for information on filing issues, fixing bugs, and submitting features.
Examples Examples
-------- --------
@ -44,11 +45,11 @@ Examples
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. well as several ways of obtaining the bootstrap script itself.
.. note:: **NOTE**
These examples below show how to bootstrap Salt directly from GitHub or other Git repository. These examples below show how to bootstrap Salt directly from GitHub or other Git repository.
Run the script without any parameters to get latest stable Salt packages for your system from 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. `SaltStack's corporate repository`_. See first example in the `Install using wget`_ section.
Install using curl Install using curl
@ -108,10 +109,10 @@ Installing a specific version from git using ``wget``:
wget -O bootstrap-salt.sh https://bootstrap.saltstack.com wget -O bootstrap-salt.sh https://bootstrap.saltstack.com
sudo sh bootstrap-salt.sh -P git v2016.11.5 sudo sh bootstrap-salt.sh -P git v2016.11.5
.. note:: **NOTE**
On the above example we added `-P` which will allow PIP packages to be installed if required but On the above example we added `-P` which will allow PIP packages to be installed if required but
it's not a necessary flag for Git based bootstraps. it's not a necessary flag for Git based bootstraps.
Install using Python Install using Python
@ -163,14 +164,14 @@ Or link them to the right place:
Installing via an Insecure One-Liner Installing via an Insecure One-Liner
------------------------------------ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following examples illustrate how to install Salt via a one-liner. The following examples illustrate how to install Salt via a one-liner.
.. note:: **NOTE**
Warning! These methods do not involve a verification step and assume that the delivered file is Warning! These methods do not involve a verification step and assume that the delivered file is
trustworthy. trustworthy.
Any of the example above which use two-lines can be made to run in a single-line Any of the example above which use two-lines can be made to run in a single-line
configuration with minor modifications. configuration with minor modifications.
@ -205,7 +206,7 @@ listed on the official supported operating systems document, the level of suppor
Since Salt is written in Python, the packages available from `SaltStack's corporate repository`_ 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. 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 However, SaltStack does package Salt's binary dependencies only for ``x86_64`` (``amd64``) and
``AArch32`` (``armhf``), which is limited for Debian/Raspbian 8 platforms. ``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 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``). architectures, such as ``x86`` (``i386``), ``AArch64`` (``arm64``) or ``ARM EABI`` (``armel``).
@ -216,12 +217,11 @@ You also may need to disable repository configuration and allow ``pip`` installa
sudo sh bootstrap-salt.sh -r -P git develop sudo sh bootstrap-salt.sh -r -P git develop
.. note:: **NOTE**
Bootstrap may fail to install Salt on the cutting-edge version of distributions with frequent Bootstrap may fail to install Salt on the cutting-edge version of distributions with frequent
release cycles such as: Amazon Linux, Fedora, openSUSE Tumbleweed, or Ubuntu non-LTS. Check the release cycles such as: Amazon Linux, Fedora, openSUSE Tumbleweed, or Ubuntu non-LTS. Check the
versions from the list below. Also, see the `Unsupported Distro`_ and versions from the list below. Also, see the `Unsupported Distro`_ section.
`Adding Support for Other Operating Systems`_ sections.
Debian and derivatives Debian and derivatives
@ -229,9 +229,10 @@ Debian and derivatives
- Cumulus Linux 2/3 - Cumulus Linux 2/3
- Debian GNU/Linux 7/8/9 - Debian GNU/Linux 7/8/9
- Devuan GNU/Linux 1/2
- Linux Mint Debian Edition 1 (based on Debian 8) - Linux Mint Debian Edition 1 (based on Debian 8)
- Kali Linux 1.0 (based on Debian 7) - Kali Linux 1.0 (based on Debian 7)
- Raspbian 8 (``armhf``) - Raspbian 8 (``armhf`` packages) and 9 (using ``git`` installation mode only)
Debian Best Effort Support: Testing Release Debian Best Effort Support: Testing Release
******************************************* *******************************************
@ -252,7 +253,7 @@ Red Hat family
- Amazon Linux 2012.3 and later - Amazon Linux 2012.3 and later
- CentOS 6/7 - CentOS 6/7
- Cloud Linux 6/7 - Cloud Linux 6/7
- Fedora 24/25 - Fedora 25/26
- Oracle Linux 6/7 - Oracle Linux 6/7
- Red Hat Enterprise Linux 6/7 - Red Hat Enterprise Linux 6/7
- Scientific Linux 6/7 - Scientific Linux 6/7
@ -261,10 +262,9 @@ Red Hat family
SUSE family SUSE family
~~~~~~~~~~~ ~~~~~~~~~~~
- openSUSE 12/13 - openSUSE Leap 42.2/42.3
- openSUSE Leap 42
- openSUSE Tumbleweed 2015 - openSUSE Tumbleweed 2015
- SUSE Linux Enterprise Server 11 SP1/11 SP2/11 SP3/12 - SUSE Linux Enterprise Server 11 SP4, 12 SP2
Ubuntu and derivatives Ubuntu and derivatives
@ -306,7 +306,6 @@ UNIX systems
- SmartOS - SmartOS
Unsupported Distro Unsupported Distro
------------------ ------------------
@ -318,211 +317,14 @@ Please run the following commands and report their output when creating a ticket
sudo find /etc/ -name \*-release -print -exec cat {} \; sudo find /etc/ -name \*-release -print -exec cat {} \;
command lsb_release -a command lsb_release -a
For information on how to add support for a currently unsupported distro, please refer to the
`Contributing Guidelines`_.
Adding Support for Other Operating Systems Testing
------------------------------------------ -------
The following operating systems are detected, but Salt and its dependencies installation functions
are not developed yet:
**BSD**:
- NetBSD
**Linux**:
- Slackware
**SunOS**
- OpenIndiana
- Oracle Solaris
- OmniOS (Illumos)
In order to install Salt for a distribution you need to define:
1. To Install Dependencies, which is required, one of:
.. code:: bash
install_<distro>_<major_version>_<install_type>_deps
install_<distro>_<major_version>_<minor_version>_<install_type>_deps
install_<distro>_<major_version>_deps
install_<distro>_<major_version>_<minor_version>_deps
install_<distro>_<install_type>_deps
install_<distro>_deps
2. Optionally, define a minion configuration function, which will be called if the
``-c`` option is passed. One of:
.. code:: bash
config_<distro>_<major_version>_<install_type>_salt
config_<distro>_<major_version>_<minor_version>_<install_type>_salt
config_<distro>_<major_version>_salt
config_<distro>_<major_version>_<minor_version>_salt
config_<distro>_<install_type>_salt
config_<distro>_salt
config_salt [THIS ONE IS ALREADY DEFINED AS THE DEFAULT]
3. Optionally, define a Salt master pre-seed function, which will be called if the
``-k`` (pre-seed master keys) option is passed. One of:
.. code:: bash
preseed_<distro>_<major_version>_<install_type>_master
preseed_<distro>_<major_version>_<minor_version>_<install_type>_master
preseed_<distro>_<major_version>_master
preseed_<distro>_<major_version>_<minor_version>_master
preseed_<distro>_<install_type>_master
preseed_<distro>_master
preseed_master [THIS ONE IS ALREADY DEFINED AS THE DEFAULT]
4. To install salt, which, of course, is required, one of:
.. code:: bash
install_<distro>_<major_version>_<install_type>
install_<distro>_<major_version>_<minor_version>_<install_type>
install_<distro>_<install_type>
5. Optionally, define a post install function, one of:
.. code:: bash
install_<distro>_<major_version>_<install_type>_post
install_<distro>_<major_version>_<minor_version>_<install_type>_post
install_<distro>_<major_version>_post
install_<distro>_<major_version>_<minor_version>_post
install_<distro>_<install_type>_post
install_<distro>_post
6. Optionally, define a start daemons function, one of:
.. code:: bash
install_<distro>_<major_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_<minor_version>_<install_type>_restart_daemons
install_<distro>_<major_version>_restart_daemons
install_<distro>_<major_version>_<minor_version>_restart_daemons
install_<distro>_<install_type>_restart_daemons
install_<distro>_restart_daemons
.. admonition:: Attention!
The start daemons function should be able to restart any daemons which are running, or start if
they're not running.
7. Optionally, define a daemons running function, one of:
.. code:: bash
daemons_running_<distro>_<major_version>_<install_type>
daemons_running_<distro>_<major_version>_<minor_version>_<install_type>
daemons_running_<distro>_<major_version>
daemons_running_<distro>_<major_version>_<minor_version>
daemons_running_<distro>_<install_type>
daemons_running_<distro>
daemons_running [THIS ONE IS ALREADY DEFINED AS THE DEFAULT]
8. Optionally, check enabled Services:
.. code:: bash
install_<distro>_<major_version>_<install_type>_check_services
install_<distro>_<major_version>_<minor_version>_<install_type>_check_services
install_<distro>_<major_version>_check_services
install_<distro>_<major_version>_<minor_version>_check_services
install_<distro>_<install_type>_check_services
install_<distro>_check_services
----
Below is an example for Ubuntu Oneiric (the example may not be up to date with the script):
.. code:: bash
install_ubuntu_11_10_deps() {
apt-get update
apt-get -y install python-software-properties
add-apt-repository -y 'deb http://us.archive.ubuntu.com/ubuntu/ oneiric universe'
add-apt-repository -y ppa:saltstack/salt
}
install_ubuntu_11_10_post() {
add-apt-repository -y --remove 'deb http://us.archive.ubuntu.com/ubuntu/ oneiric universe'
}
install_ubuntu_stable() {
apt-get -y install salt-minion
}
install_ubuntu_restart_daemons() {
for fname in minion master syndic; do
# Skip if not meant to be installed
[ $fname = "minion" ] && [ $INSTALL_MINION -eq $BS_FALSE ] && continue
[ $fname = "master" ] && [ $INSTALL_MASTER -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ $INSTALL_SYNDIC -eq $BS_FALSE ] && continue
if [ -f /sbin/initctl ]; then
# We have upstart support
/sbin/initctl status salt-$fname > /dev/null 2>&1
if [ $? -eq 0 ]; then
# upstart knows about this service, let's stop and start it.
# We could restart but earlier versions of the upstart script
# did not support restart, so, it's safer this way
/sbin/initctl stop salt-$fname > /dev/null 2>&1
/sbin/initctl start salt-$fname > /dev/null 2>&1
[ $? -eq 0 ] && continue
# We failed to start the service, let's test the SysV code bellow
fi
fi
/etc/init.d/salt-$fname stop > /dev/null 2>&1
/etc/init.d/salt-$fname start
done
}
Since there is no ``install_ubuntu_11_10_stable()`` it defaults to the unspecified version script.
The bootstrapping script must be plain POSIX ``sh`` only, **not** ``bash`` or another shell script.
By design the targeting for each operating system and version is very specific. Assumptions of
supported versions or variants should not be made, to avoid failed or broken installations.
I Found a Bug
=============
If you found a possible problem, or bug, please try to bootstrap using the develop version. The
issue you are having might have already been fixed and it's just not yet included in the stable
version.
.. code:: console
curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com/develop
sudo sh bootstrap-salt.sh git develop
Or the insecure one liner:
.. code:: console
curl -L https://bootstrap.saltstack.com/develop | sudo sh -s -- git develop
If after trying this and the problem still occurs, please `file an issue`_.
There are a couple of ways to test the bootstrap script. Running the script on a full-fledged
VM is one way. Other options include using Vagrant or Docker.
Testing in Vagrant Testing in Vagrant
================== ==================
@ -535,7 +337,6 @@ Ubuntu box. First, install Vagrant, then:
vagrant up vagrant up
vagrant ssh vagrant ssh
Running in Docker Running in Docker
================= =================
@ -562,15 +363,14 @@ And finally "enter" the running container and make Salt fully operational:
Salt is ready and working in the Docker container with Minion authenticated on Master. Salt is ready and working in the Docker container with Minion authenticated on Master.
.. note:: **NOTE**
The ``Dockerfile`` here inherits Ubuntu 14.04 public image with Upstart configured as init system.
Consider 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 key`_ already installed.
The ``Dockerfile`` here inherits Ubuntu 14.04 public image with Upstart configured as init system.
Consider 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 key`_ already installed.
.. _Contributing Guidelines: https://github.com/saltstack/salt-bootstrap/blob/develop/CONTRIBUTING.md
.. _Docker: https://www.docker.com/ .. _Docker: https://www.docker.com/
.. _`file an issue`: https://github.com/saltstack/salt-bootstrap/issues/new
.. _`pre-accepted Minion key`: https://docs.saltstack.com/en/latest/topics/tutorials/preseed_key.html .. _`pre-accepted Minion key`: https://docs.saltstack.com/en/latest/topics/tutorials/preseed_key.html
.. _`read the source`: https://github.com/saltstack/salt-bootstrap/blob/develop/bootstrap-salt.sh .. _`read the source`: https://github.com/saltstack/salt-bootstrap/blob/develop/bootstrap-salt.sh
.. _`Salt`: https://saltstack.com/community/ .. _`Salt`: https://saltstack.com/community/

View file

@ -18,7 +18,7 @@
#====================================================================================================================== #======================================================================================================================
set -o nounset # Treat unset variables as an error set -o nounset # Treat unset variables as an error
__ScriptVersion="2017.08.17" __ScriptVersion="2017.12.13"
__ScriptName="bootstrap-salt.sh" __ScriptName="bootstrap-salt.sh"
__ScriptFullName="$0" __ScriptFullName="$0"
@ -710,10 +710,24 @@ else
SETUP_PY_INSTALL_ARGS="" SETUP_PY_INSTALL_ARGS=""
fi fi
# Handle the insecure flags
if [ "$_INSECURE_DL" -eq $BS_TRUE ]; then
_CURL_ARGS="${_CURL_ARGS} --insecure"
_FETCH_ARGS="${_FETCH_ARGS} --no-verify-peer"
_GPG_ARGS="${_GPG_ARGS} --keyserver-options no-check-cert"
_WGET_ARGS="${_WGET_ARGS} --no-check-certificate"
else
_GPG_ARGS="${_GPG_ARGS} --keyserver-options ca-cert-file=/etc/ssl/certs/ca-certificates.crt"
fi
# Export the http_proxy configuration to our current environment # Export the http_proxy configuration to our current environment
if [ "${_HTTP_PROXY}" != "" ]; then if [ "${_HTTP_PROXY}" != "" ]; then
export http_proxy="$_HTTP_PROXY" export http_proxy="${_HTTP_PROXY}"
export https_proxy="$_HTTP_PROXY" export https_proxy="${_HTTP_PROXY}"
# Using "deprecated" option here, but that appears the only way to make it work.
# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=818802
# and https://bugs.launchpad.net/ubuntu/+source/gnupg2/+bug/1625848
_GPG_ARGS="${_GPG_ARGS},http-proxy=${_HTTP_PROXY}"
fi fi
# Work around for 'Docker + salt-bootstrap failure' https://github.com/saltstack/salt-bootstrap/issues/394 # Work around for 'Docker + salt-bootstrap failure' https://github.com/saltstack/salt-bootstrap/issues/394
@ -737,15 +751,6 @@ if [ -d "${_VIRTUALENV_DIR}" ]; then
exit 1 exit 1
fi fi
# Handle the insecure flags
if [ "$_INSECURE_DL" -eq $BS_TRUE ]; then
_CURL_ARGS="${_CURL_ARGS} --insecure"
_FETCH_ARGS="${_FETCH_ARGS} --no-verify-peer"
_GPG_ARGS="${_GPG_ARGS} --keyserver-options no-check-cert"
_WGET_ARGS="${_WGET_ARGS} --no-check-certificate"
else
_GPG_ARGS="${_GPG_ARGS} --keyserver-options ca-cert-file=/etc/ssl/certs/ca-certificates.crt"
fi
#--- FUNCTION ------------------------------------------------------------------------------------------------------- #--- FUNCTION -------------------------------------------------------------------------------------------------------
# NAME: __fetch_url # NAME: __fetch_url
@ -915,7 +920,7 @@ __sort_release_files() {
done done
# Now let's sort by know files importance, max important goes last in the max_prio list # Now let's sort by know files importance, max important goes last in the max_prio list
max_prio="redhat-release centos-release oracle-release" max_prio="redhat-release centos-release oracle-release fedora-release"
for entry in $max_prio; do for entry in $max_prio; do
if [ "$(echo "${primary_release_files}" | grep "$entry")" != "" ]; then if [ "$(echo "${primary_release_files}" | grep "$entry")" != "" ]; then
primary_release_files=$(echo "${primary_release_files}" | sed -e "s:\(.*\)\($entry\)\(.*\):\2 \1 \3:g") primary_release_files=$(echo "${primary_release_files}" | sed -e "s:\(.*\)\($entry\)\(.*\):\2 \1 \3:g")
@ -1001,7 +1006,6 @@ __gather_linux_system_info() {
echo redhat-release lsb-release echo redhat-release lsb-release
)"); do )"); do
[ -L "/etc/${rsource}" ] && continue # Don't follow symlinks
[ ! -f "/etc/${rsource}" ] && continue # Does not exist [ ! -f "/etc/${rsource}" ] && continue # Does not exist
n=$(echo "${rsource}" | sed -e 's/[_-]release$//' -e 's/[_-]version$//') n=$(echo "${rsource}" | sed -e 's/[_-]release$//' -e 's/[_-]version$//')
@ -1397,13 +1401,16 @@ __debian_derivatives_translation() {
# If the file does not exist, return # If the file does not exist, return
[ ! -f /etc/os-release ] && return [ ! -f /etc/os-release ] && return
DEBIAN_DERIVATIVES="(cumulus_.+|kali|linuxmint|raspbian)" DEBIAN_DERIVATIVES="(cumulus_.+|devuan|kali|linuxmint|raspbian)"
# Mappings # Mappings
cumulus_2_debian_base="7.0" cumulus_2_debian_base="7.0"
cumulus_3_debian_base="8.0" cumulus_3_debian_base="8.0"
devuan_1_debian_base="8.0"
devuan_2_debian_base="9.0"
kali_1_debian_base="7.0" kali_1_debian_base="7.0"
linuxmint_1_debian_base="8.0" linuxmint_1_debian_base="8.0"
raspbian_8_debian_base="8.0" raspbian_8_debian_base="8.0"
raspbian_9_debian_base="9.0"
# Translate Debian derivatives to their base Debian version # Translate Debian derivatives to their base Debian version
match=$(echo "$DISTRO_NAME_L" | egrep ${DEBIAN_DERIVATIVES}) match=$(echo "$DISTRO_NAME_L" | egrep ${DEBIAN_DERIVATIVES})
@ -1414,6 +1421,10 @@ __debian_derivatives_translation() {
_major=$(echo "$DISTRO_VERSION" | sed 's/^\([0-9]*\).*/\1/g') _major=$(echo "$DISTRO_VERSION" | sed 's/^\([0-9]*\).*/\1/g')
_debian_derivative="cumulus" _debian_derivative="cumulus"
;; ;;
devuan)
_major=$(echo "$DISTRO_VERSION" | sed 's/^\([0-9]*\).*/\1/g')
_debian_derivative="devuan"
;;
kali) kali)
_major=$(echo "$DISTRO_VERSION" | sed 's/^\([0-9]*\).*/\1/g') _major=$(echo "$DISTRO_VERSION" | sed 's/^\([0-9]*\).*/\1/g')
_debian_derivative="kali" _debian_derivative="kali"
@ -1428,12 +1439,13 @@ __debian_derivatives_translation() {
;; ;;
esac esac
_debian_version=$(eval echo "\$${_debian_derivative}_${_major}_debian_base") _debian_version=$(eval echo "\$${_debian_derivative}_${_major}_debian_base" 2>/dev/null)
if [ "$_debian_version" != "" ]; then if [ "$_debian_version" != "" ]; then
echodebug "Detected Debian $_debian_version derivative" echodebug "Detected Debian $_debian_version derivative"
DISTRO_NAME_L="debian" DISTRO_NAME_L="debian"
DISTRO_VERSION="$_debian_version" DISTRO_VERSION="$_debian_version"
DISTRO_MAJOR_VERSION="$(echo "$DISTRO_VERSION" | sed 's/^\([0-9]*\).*/\1/g')"
fi fi
fi fi
} }
@ -1489,8 +1501,8 @@ __check_end_of_life_versions() {
# = 14.10 # = 14.10
# = 15.04, 15.10 # = 15.04, 15.10
if [ "$DISTRO_MAJOR_VERSION" -lt 14 ] || \ if [ "$DISTRO_MAJOR_VERSION" -lt 14 ] || \
[ "$DISTRO_MAJOR_VERSION" -eq 15 ] || \ [ "$DISTRO_MAJOR_VERSION" -eq 15 ] || \
([ "$DISTRO_MAJOR_VERSION" -lt 16 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]); then ([ "$DISTRO_MAJOR_VERSION" -lt 16 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]); then
echoerror "End of life distributions are not supported." echoerror "End of life distributions are not supported."
echoerror "Please consider upgrading to the next stable. See:" echoerror "Please consider upgrading to the next stable. See:"
echoerror " https://wiki.ubuntu.com/Releases" echoerror " https://wiki.ubuntu.com/Releases"
@ -1501,8 +1513,10 @@ __check_end_of_life_versions() {
opensuse) opensuse)
# openSUSE versions not supported # openSUSE versions not supported
# #
# <= 12.1 # <= 13.X
if ([ "$DISTRO_MAJOR_VERSION" -eq 12 ] && [ "$DISTRO_MINOR_VERSION" -eq 1 ]) || [ "$DISTRO_MAJOR_VERSION" -lt 12 ]; then # <= 42.1
if [ "$DISTRO_MAJOR_VERSION" -le 13 ] || \
([ "$DISTRO_MAJOR_VERSION" -eq 42 ] && [ "$DISTRO_MINOR_VERSION" -le 1 ]); then
echoerror "End of life distributions are not supported." echoerror "End of life distributions are not supported."
echoerror "Please consider upgrading to the next stable. See:" echoerror "Please consider upgrading to the next stable. See:"
echoerror " http://en.opensuse.org/Lifetime" echoerror " http://en.opensuse.org/Lifetime"
@ -1513,21 +1527,25 @@ __check_end_of_life_versions() {
suse) suse)
# SuSE versions not supported # SuSE versions not supported
# #
# < 11 SP2 # < 11 SP4
# < 12 SP2
SUSE_PATCHLEVEL=$(awk '/PATCHLEVEL/ {print $3}' /etc/SuSE-release ) SUSE_PATCHLEVEL=$(awk '/PATCHLEVEL/ {print $3}' /etc/SuSE-release )
if [ "${SUSE_PATCHLEVEL}" = "" ]; then if [ "${SUSE_PATCHLEVEL}" = "" ]; then
SUSE_PATCHLEVEL="00" SUSE_PATCHLEVEL="00"
fi fi
if ([ "$DISTRO_MAJOR_VERSION" -eq 11 ] && [ "$SUSE_PATCHLEVEL" -lt 02 ]) || [ "$DISTRO_MAJOR_VERSION" -lt 11 ]; then if [ "$DISTRO_MAJOR_VERSION" -lt 11 ] || \
echoerror "Versions lower than SuSE 11 SP2 are not supported." ([ "$DISTRO_MAJOR_VERSION" -eq 11 ] && [ "$SUSE_PATCHLEVEL" -lt 04 ]) || \
([ "$DISTRO_MAJOR_VERSION" -eq 12 ] && [ "$SUSE_PATCHLEVEL" -lt 02 ]); then
echoerror "Versions lower than SuSE 11 SP4 or 12 SP2 are not supported."
echoerror "Please consider upgrading to the next stable" echoerror "Please consider upgrading to the next stable"
echoerror " https://www.suse.com/lifecycle/"
exit 1 exit 1
fi fi
;; ;;
fedora) fedora)
# Fedora lower than 24 are no longer supported # Fedora lower than 25 are no longer supported
if [ "$DISTRO_MAJOR_VERSION" -lt 24 ]; then if [ "$DISTRO_MAJOR_VERSION" -lt 25 ]; then
echoerror "End of life distributions are not supported." echoerror "End of life distributions are not supported."
echoerror "Please consider upgrading to the next stable. See:" echoerror "Please consider upgrading to the next stable. See:"
echoerror " https://fedoraproject.org/wiki/Releases" echoerror " https://fedoraproject.org/wiki/Releases"
@ -1729,18 +1747,6 @@ if ([ "${DISTRO_NAME_L}" != "ubuntu" ] && [ $_PIP_ALL -eq $BS_TRUE ]); then
exit 1 exit 1
fi fi
# Starting from Debian 9 and Ubuntu 16.10, gnupg-curl has been renamed to gnupg1-curl.
GNUPG_CURL="gnupg-curl"
if [ "$DISTRO_NAME_L" = "debian" ]; then
if [ "$DISTRO_MAJOR_VERSION" -gt 8 ]; then
GNUPG_CURL="gnupg1-curl"
fi
elif [ "$DISTRO_NAME_L" = "ubuntu" ]; then
if [ "${DISTRO_VERSION}" = "16.10" ] || [ "$DISTRO_MAJOR_VERSION" -gt 16 ]; then
GNUPG_CURL="gnupg1-curl"
fi
fi
#--- FUNCTION ------------------------------------------------------------------------------------------------------- #--- FUNCTION -------------------------------------------------------------------------------------------------------
# NAME: __function_defined # NAME: __function_defined
@ -1786,8 +1792,6 @@ __apt_get_upgrade_noinput() {
__apt_key_fetch() { __apt_key_fetch() {
url=$1 url=$1
__apt_get_install_noinput ${GNUPG_CURL} || return 1
# shellcheck disable=SC2086 # shellcheck disable=SC2086
apt-key adv ${_GPG_ARGS} --fetch-keys "$url"; return $? apt-key adv ${_GPG_ARGS} --fetch-keys "$url"; return $?
} # ---------- end of function __apt_key_fetch ---------- } # ---------- end of function __apt_key_fetch ----------
@ -2539,7 +2543,6 @@ __enable_universe_repository() {
} }
__install_saltstack_ubuntu_repository() { __install_saltstack_ubuntu_repository() {
# Workaround for latest non-LTS ubuntu # Workaround for latest non-LTS ubuntu
if [ "$DISTRO_VERSION" = "16.10" ] || [ "$DISTRO_MAJOR_VERSION" -gt 16 ]; then if [ "$DISTRO_VERSION" = "16.10" ] || [ "$DISTRO_MAJOR_VERSION" -gt 16 ]; then
echowarn "Non-LTS Ubuntu detected, but stable packages requested. Trying packages from latest LTS release. You may experience problems." echowarn "Non-LTS Ubuntu detected, but stable packages requested. Trying packages from latest LTS release. You may experience problems."
@ -2550,15 +2553,27 @@ __install_saltstack_ubuntu_repository() {
UBUNTU_CODENAME=$DISTRO_CODENAME UBUNTU_CODENAME=$DISTRO_CODENAME
fi fi
# SaltStack's stable Ubuntu repository: __PACKAGES=''
SALTSTACK_UBUNTU_URL="${HTTP_VAL}://${_REPO_URL}/apt/ubuntu/${UBUNTU_VERSION}/${__REPO_ARCH}/${STABLE_REV}"
echo "deb $SALTSTACK_UBUNTU_URL $UBUNTU_CODENAME main" > /etc/apt/sources.list.d/saltstack.list # Install downloader backend for GPG keys fetching
if [ "$DISTRO_VERSION" = "16.10" ] || [ "$DISTRO_MAJOR_VERSION" -gt 16 ]; then
__PACKAGES="${__PACKAGES} gnupg2 dirmngr"
else
__PACKAGES="${__PACKAGES} gnupg-curl"
fi
# Make sure https transport is available # Make sure https transport is available
if [ "$HTTP_VAL" = "https" ] ; then if [ "$HTTP_VAL" = "https" ] ; then
__apt_get_install_noinput apt-transport-https ca-certificates || return 1 __PACKAGES="${__PACKAGES} apt-transport-https ca-certificates"
fi fi
# shellcheck disable=SC2086,SC2090
__apt_get_install_noinput ${__PACKAGES} || return 1
# SaltStack's stable Ubuntu repository:
SALTSTACK_UBUNTU_URL="${HTTP_VAL}://${_REPO_URL}/apt/ubuntu/${UBUNTU_VERSION}/${__REPO_ARCH}/${STABLE_REV}"
echo "deb $SALTSTACK_UBUNTU_URL $UBUNTU_CODENAME main" > /etc/apt/sources.list.d/saltstack.list
__apt_key_fetch "$SALTSTACK_UBUNTU_URL/SALTSTACK-GPG-KEY.pub" || return 1 __apt_key_fetch "$SALTSTACK_UBUNTU_URL/SALTSTACK-GPG-KEY.pub" || return 1
apt-get update apt-get update
@ -2640,9 +2655,8 @@ install_ubuntu_stable_deps() {
__apt_get_upgrade_noinput || return 1 __apt_get_upgrade_noinput || return 1
fi fi
__check_dpkg_architecture || return 1
if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
__check_dpkg_architecture || return 1
__install_saltstack_ubuntu_repository || return 1 __install_saltstack_ubuntu_repository || return 1
fi fi
@ -2936,18 +2950,30 @@ __install_saltstack_debian_repository() {
DEBIAN_CODENAME="$DISTRO_CODENAME" DEBIAN_CODENAME="$DISTRO_CODENAME"
fi fi
__PACKAGES=''
# Install downloader backend for GPG keys fetching
if [ "$DISTRO_MAJOR_VERSION" -ge 9 ]; then
__PACKAGES="${__PACKAGES} gnupg2 dirmngr"
else
__PACKAGES="${__PACKAGES} gnupg-curl"
fi
# Make sure https transport is available
if [ "$HTTP_VAL" = "https" ] ; then
__PACKAGES="${__PACKAGES} apt-transport-https ca-certificates"
fi
# shellcheck disable=SC2086,SC2090
__apt_get_install_noinput ${__PACKAGES} || return 1
# amd64 is just a part of repository URI, 32-bit pkgs are hosted under the same location # amd64 is just a part of repository URI, 32-bit pkgs are hosted under the same location
SALTSTACK_DEBIAN_URL="${HTTP_VAL}://${_REPO_URL}/apt/debian/${DEBIAN_RELEASE}/${__REPO_ARCH}/${STABLE_REV}" SALTSTACK_DEBIAN_URL="${HTTP_VAL}://${_REPO_URL}/apt/debian/${DEBIAN_RELEASE}/${__REPO_ARCH}/${STABLE_REV}"
echo "deb $SALTSTACK_DEBIAN_URL $DEBIAN_CODENAME main" > "/etc/apt/sources.list.d/saltstack.list" echo "deb $SALTSTACK_DEBIAN_URL $DEBIAN_CODENAME main" > "/etc/apt/sources.list.d/saltstack.list"
if [ "$HTTP_VAL" = "https" ] ; then
__apt_get_install_noinput apt-transport-https ca-certificates || return 1
fi
__apt_key_fetch "$SALTSTACK_DEBIAN_URL/SALTSTACK-GPG-KEY.pub" || return 1 __apt_key_fetch "$SALTSTACK_DEBIAN_URL/SALTSTACK-GPG-KEY.pub" || return 1
apt-get update apt-get update
} }
install_debian_deps() { install_debian_deps() {
@ -2970,23 +2996,17 @@ install_debian_deps() {
__apt_get_upgrade_noinput || return 1 __apt_get_upgrade_noinput || return 1
fi fi
__check_dpkg_architecture || return 1
# 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='procps pciutils' __PACKAGES='procps pciutils'
# YAML module is used for generating custom master/minion configs # YAML module is used for generating custom master/minion configs
__PACKAGES="${__PACKAGES} python-yaml" __PACKAGES="${__PACKAGES} python-yaml"
# Debian 9 needs the dirmgr package in order to import the GPG key later
if [ "$DISTRO_MAJOR_VERSION" -ge 9 ]; then
__PACKAGES="${__PACKAGES} dirmngr"
fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__apt_get_install_noinput ${__PACKAGES} || return 1 __apt_get_install_noinput ${__PACKAGES} || return 1
if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then if [ "$_DISABLE_REPOS" -eq "$BS_FALSE" ] || [ "$_CUSTOM_REPO_URL" != "null" ]; then
__check_dpkg_architecture || return 1
__install_saltstack_debian_repository || return 1 __install_saltstack_debian_repository || return 1
fi fi
@ -3318,7 +3338,13 @@ install_fedora_deps() {
__install_saltstack_copr_salt_repository || return 1 __install_saltstack_copr_salt_repository || return 1
fi fi
__PACKAGES="yum-utils PyYAML libyaml python-crypto python-jinja2 python-zmq python2-msgpack python2-requests" __PACKAGES="PyYAML libyaml python-crypto python-jinja2 python-zmq python2-msgpack python2-requests"
if [ "$DISTRO_MAJOR_VERSION" -lt 26 ]; then
__PACKAGES="${__PACKAGES} yum-utils"
else
__PACKAGES="${__PACKAGES} dnf-utils"
fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
dnf install -y ${__PACKAGES} || return 1 dnf install -y ${__PACKAGES} || return 1
@ -4404,7 +4430,7 @@ install_amazon_linux_ami_deps() {
repo_rev="$(echo "${STABLE_REV}" | sed 's|.*\/||g')" repo_rev="$(echo "${STABLE_REV}" | sed 's|.*\/||g')"
if echo "$repo_rev" | egrep -q '^(latest|2016\.11)$' || \ if echo "$repo_rev" | egrep -q '^(latest|2016\.11)$' || \
( echo "$repo_rev" | egrep -q '^[0-9]+$' && [ "$(echo "$repo_rev" | cut -c1-4)" -gt 2016 ] ); then [ "$(echo "$repo_rev" | cut -c1-4)" -gt 2016 ]; then
_USEAWS=$BS_TRUE _USEAWS=$BS_TRUE
pkg_append="python27" pkg_append="python27"
fi fi
@ -5075,7 +5101,7 @@ install_freebsd_restart_daemons() {
__choose_openbsd_mirror() { __choose_openbsd_mirror() {
OPENBSD_REPO='' OPENBSD_REPO=''
MINTIME='' MINTIME=''
MIRROR_LIST=$(ftp -w 15 -Vao - 'http://ftp.openbsd.org/cgi-bin/ftplist.cgi?dbversion=1' | awk '/^http/ {print $1}') MIRROR_LIST=$(ftp -w 15 -Vao - 'https://ftp.openbsd.org/cgi-bin/ftplist.cgi?dbversion=1' | awk '/^http/ {print $1}')
for MIRROR in $MIRROR_LIST; do for MIRROR in $MIRROR_LIST; do
MIRROR_HOST=$(echo "$MIRROR" | sed -e 's|.*//||' -e 's|+*/.*$||') MIRROR_HOST=$(echo "$MIRROR" | sed -e 's|.*//||' -e 's|+*/.*$||')
@ -5096,10 +5122,12 @@ __choose_openbsd_mirror() {
} }
install_openbsd_deps() { install_openbsd_deps() {
__choose_openbsd_mirror || return 1 if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
echoinfo "setting package repository to $OPENBSD_REPO with ping time of $MINTIME" __choose_openbsd_mirror || return 1
[ -n "$OPENBSD_REPO" ] || return 1 echoinfo "setting package repository to $OPENBSD_REPO with ping time of $MINTIME"
echo "${OPENBSD_REPO}" >>/etc/installurl || return 1 [ -n "$OPENBSD_REPO" ] || return 1
echo "${OPENBSD_REPO}" >>/etc/installurl || return 1
fi
if [ "${_EXTRA_PACKAGES}" != "" ]; then if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}" echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
@ -5383,9 +5411,30 @@ install_smartos_restart_daemons() {
# #
__ZYPPER_REQUIRES_REPLACE_FILES=-1 __ZYPPER_REQUIRES_REPLACE_FILES=-1
__set_suse_pkg_repo() {
# Set distro repo variable
if [ "${DISTRO_MAJOR_VERSION}" -gt 2015 ]; then
DISTRO_REPO="openSUSE_Tumbleweed"
elif [ "${DISTRO_MAJOR_VERSION}" -ge 42 ]; then
DISTRO_REPO="openSUSE_Leap_${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}"
elif [ "${DISTRO_MAJOR_VERSION}" -lt 42 ]; then
DISTRO_REPO="SLE_${DISTRO_MAJOR_VERSION}_SP${SUSE_PATCHLEVEL}"
fi
if [ "$_DOWNSTREAM_PKG_REPO" -eq $BS_TRUE ]; then
suse_pkg_url_base="https://download.opensuse.org/repositories/systemsmanagement:/saltstack"
suse_pkg_url_path="${DISTRO_REPO}/systemsmanagement:saltstack.repo"
else
suse_pkg_url_base="${HTTP_VAL}://repo.saltstack.com/opensuse"
suse_pkg_url_path="${DISTRO_REPO}/systemsmanagement:saltstack:products.repo"
fi
SUSE_PKG_URL="$suse_pkg_url_base/$suse_pkg_url_path"
}
__check_and_refresh_suse_pkg_repo() { __check_and_refresh_suse_pkg_repo() {
# Check to see if systemsmanagement_saltstack exists # Check to see if systemsmanagement_saltstack exists
__zypper repos | grep systemsmanagement_saltstack >/dev/null 2>&1 __zypper repos | grep -q systemsmanagement_saltstack
if [ $? -eq 1 ]; then if [ $? -eq 1 ]; then
# zypper does not yet know anything about systemsmanagement_saltstack # zypper does not yet know anything about systemsmanagement_saltstack
@ -5393,16 +5442,6 @@ __check_and_refresh_suse_pkg_repo() {
fi fi
} }
__set_suse_pkg_repo() {
suse_pkg_url_path="${DISTRO_REPO}/systemsmanagement:saltstack.repo"
if [ "$_DOWNSTREAM_PKG_REPO" -eq $BS_TRUE ]; then
suse_pkg_url_base="http://download.opensuse.org/repositories/systemsmanagement:/saltstack"
else
suse_pkg_url_base="${HTTP_VAL}://repo.saltstack.com/opensuse"
fi
SUSE_PKG_URL="$suse_pkg_url_base/$suse_pkg_url_path"
}
__version_lte() { __version_lte() {
if ! __check_command_exists python; then if ! __check_command_exists python; then
zypper zypper --non-interactive install --replacefiles --auto-agree-with-licenses python || \ zypper zypper --non-interactive install --replacefiles --auto-agree-with-licenses python || \
@ -5435,14 +5474,6 @@ __zypper_install() {
} }
install_opensuse_stable_deps() { install_opensuse_stable_deps() {
if [ "${DISTRO_MAJOR_VERSION}" -gt 2015 ]; then
DISTRO_REPO="openSUSE_Tumbleweed"
elif [ "${DISTRO_MAJOR_VERSION}" -ge 42 ]; then
DISTRO_REPO="openSUSE_Leap_${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}"
elif [ "${DISTRO_MAJOR_VERSION}" -lt 42 ]; then
DISTRO_REPO="openSUSE_${DISTRO_MAJOR_VERSION}.${DISTRO_MINOR_VERSION}"
fi
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
# Is the repository already known # Is the repository already known
__set_suse_pkg_repo __set_suse_pkg_repo
@ -5466,25 +5497,14 @@ install_opensuse_stable_deps() {
__zypper --gpg-auto-import-keys update || return 1 __zypper --gpg-auto-import-keys update || return 1
fi fi
# YAML module is used for generating custom master/minion configs
# requests is still used by many salt modules
# Salt needs python-zypp installed in order to use the zypper module # Salt needs python-zypp installed in order to use the zypper module
__PACKAGES="python-zypp" __PACKAGES="python-PyYAML python-requests python-zypp"
__PACKAGES="${__PACKAGES} python python-Jinja2 python-M2Crypto python-PyYAML python-requests"
__PACKAGES="${__PACKAGES} python-msgpack-python python-pycrypto python-pyzmq python-xml"
if [ "$DISTRO_MAJOR_VERSION" -lt 13 ]; then
__PACKAGES="${__PACKAGES} libzmq3"
elif [ "$DISTRO_MAJOR_VERSION" -eq 13 ]; then
__PACKAGES="${__PACKAGES} libzmq3"
elif [ "$DISTRO_MAJOR_VERSION" -gt 13 ]; then
__PACKAGES="${__PACKAGES} libzmq5"
fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
__zypper_install ${__PACKAGES} || return 1 __zypper_install ${__PACKAGES} || return 1
# Fix for OpenSUSE 13.2 and 2015.8 - gcc should not be required. Work around until package is fixed by SuSE
_EXTRA_PACKAGES="${_EXTRA_PACKAGES} gcc python-devel libgit2-devel"
if [ "${_EXTRA_PACKAGES}" != "" ]; then if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}" echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
@ -5509,7 +5529,7 @@ install_opensuse_git_deps() {
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="" __PACKAGES="libzmq5 python-Jinja2 python-msgpack-python python-pycrypto python-pyzmq python-xml"
if [ -f "${_SALT_GIT_CHECKOUT_DIR}/requirements/base.txt" ]; then if [ -f "${_SALT_GIT_CHECKOUT_DIR}/requirements/base.txt" ]; then
# We're on the develop branch, install whichever tornado is on the requirements file # We're on the develop branch, install whichever tornado is on the requirements file
@ -5678,18 +5698,6 @@ install_opensuse_check_services() {
# #
install_suse_12_stable_deps() { install_suse_12_stable_deps() {
SUSE_PATCHLEVEL=$(awk '/PATCHLEVEL/ {print $3}' /etc/SuSE-release )
if [ "${SUSE_PATCHLEVEL}" != "" ]; then
DISTRO_PATCHLEVEL="_SP${SUSE_PATCHLEVEL}"
fi
DISTRO_REPO="SLE_${DISTRO_MAJOR_VERSION}${DISTRO_PATCHLEVEL}"
# SLES 12 repo name does not use a patch level so PATCHLEVEL will need to be updated with SP1
#DISTRO_REPO="SLE_${DISTRO_MAJOR_VERSION}${DISTRO_PATCHLEVEL}"
DISTRO_REPO="SLE_${DISTRO_MAJOR_VERSION}"
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
# Is the repository already known # Is the repository already known
__set_suse_pkg_repo __set_suse_pkg_repo
@ -5703,18 +5711,10 @@ install_suse_12_stable_deps() {
__zypper --gpg-auto-import-keys update || return 1 __zypper --gpg-auto-import-keys update || return 1
fi fi
# YAML module is used for generating custom master/minion configs
# requests is still used by many salt modules
# Salt needs python-zypp installed in order to use the zypper module # Salt needs python-zypp installed in order to use the zypper module
__PACKAGES="python-zypp" __PACKAGES="python-PyYAML python-requests python-zypp"
# shellcheck disable=SC2089
__PACKAGES="${__PACKAGES} libzmq5 python python-Jinja2 python-msgpack-python"
__PACKAGES="${__PACKAGES} python-pycrypto python-pyzmq python-pip python-xml python-requests"
if [ "$SUSE_PATCHLEVEL" -eq 1 ]; then
__check_pip_allowed
echowarn "PyYaml will be installed using pip"
else
__PACKAGES="${__PACKAGES} python-PyYAML"
fi
if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ]; then if [ "$_INSTALL_CLOUD" -eq $BS_TRUE ]; then
__PACKAGES="${__PACKAGES} python-apache-libcloud" __PACKAGES="${__PACKAGES} python-apache-libcloud"
@ -5723,41 +5723,6 @@ install_suse_12_stable_deps() {
# shellcheck disable=SC2086,SC2090 # shellcheck disable=SC2086,SC2090
__zypper_install ${__PACKAGES} || return 1 __zypper_install ${__PACKAGES} || return 1
if [ "$SUSE_PATCHLEVEL" -eq 1 ]; then
# There's no python-PyYaml in SP1, let's install it using pip
pip install PyYaml || return 1
fi
# PIP based installs need to copy configuration files "by hand".
if [ "$SUSE_PATCHLEVEL" -eq 1 ]; then
# Let's trigger config_salt()
if [ "$_TEMP_CONFIG_DIR" = "null" ]; then
# Let's set the configuration directory to /tmp
_TEMP_CONFIG_DIR="/tmp"
CONFIG_SALT_FUNC="config_salt"
for fname in api master minion syndic; do
# Skip salt-api since there is no example config for it in the Salt git repo
[ $fname = "api" ] && continue
# Skip if not meant to be installed
[ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue
[ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
# Syndic uses the same configuration file as the master
[ $fname = "syndic" ] && fname=master
# Let's download, since they were not provided, the default configuration files
if [ ! -f "$_SALT_ETC_DIR/$fname" ] && [ ! -f "$_TEMP_CONFIG_DIR/$fname" ]; then
# shellcheck disable=SC2086
curl $_CURL_ARGS -s -o "$_TEMP_CONFIG_DIR/$fname" -L \
"https://raw.githubusercontent.com/saltstack/salt/develop/conf/$fname" || return 1
fi
done
fi
fi
if [ "${_EXTRA_PACKAGES}" != "" ]; then if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}" echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
@ -5777,6 +5742,9 @@ install_suse_12_git_deps() {
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="" __PACKAGES=""
# shellcheck disable=SC2089
__PACKAGES="${__PACKAGES} libzmq3 python-Jinja2 python-msgpack-python python-pycrypto"
__PACKAGES="${__PACKAGES} python-pyzmq python-xml"
if [ -f "${_SALT_GIT_CHECKOUT_DIR}/requirements/base.txt" ]; then if [ -f "${_SALT_GIT_CHECKOUT_DIR}/requirements/base.txt" ]; then
# We're on the develop branch, install whichever tornado is on the requirements file # We're on the develop branch, install whichever tornado is on the requirements file
@ -5803,14 +5771,7 @@ install_suse_12_git_deps() {
} }
install_suse_12_stable() { install_suse_12_stable() {
if [ "$SUSE_PATCHLEVEL" -gt 1 ]; then install_opensuse_stable || return 1
install_opensuse_stable || return 1
else
# USE_SETUPTOOLS=1 To work around
# error: option --single-version-externally-managed not recognized
USE_SETUPTOOLS=1 pip install salt || return 1
fi
return 0 return 0
} }
@ -5820,34 +5781,7 @@ install_suse_12_git() {
} }
install_suse_12_stable_post() { install_suse_12_stable_post() {
if [ "$SUSE_PATCHLEVEL" -gt 1 ]; then install_opensuse_stable_post || return 1
install_opensuse_stable_post || return 1
else
for fname in api master minion syndic; do
# Skip if not meant to be installed
[ $fname = "api" ] && \
([ "$_INSTALL_MASTER" -eq $BS_FALSE ] || ! __check_command_exists "salt-${fname}") && continue
[ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue
[ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
if [ -f /bin/systemctl ]; then
# shellcheck disable=SC2086
curl $_CURL_ARGS -L "https://github.com/saltstack/salt/raw/develop/pkg/salt-$fname.service" \
-o "/usr/lib/systemd/system/salt-$fname.service" || return 1
fi
# Skip salt-api since the service should be opt-in and not necessarily started on boot
[ $fname = "api" ] && continue
if [ -f /bin/systemctl ]; then
systemctl is-enabled salt-$fname.service || (systemctl preset salt-$fname.service && systemctl enable salt-$fname.service)
sleep 0.1
systemctl daemon-reload
fi
done
fi
return 0 return 0
} }
@ -5872,16 +5806,6 @@ install_suse_12_restart_daemons() {
# #
install_suse_11_stable_deps() { install_suse_11_stable_deps() {
SUSE_PATCHLEVEL=$(awk '/PATCHLEVEL/ {print $3}' /etc/SuSE-release )
if [ "${SUSE_PATCHLEVEL}" != "" ]; then
if [ "${SUSE_PATCHLEVEL}" != "4" ]; then
echowarn "Salt packages for SLE 11 are only build for SP4."
echowarn "Attempting to install SP4 packages on SP${SUSE_PATCHLEVEL}."
fi
DISTRO_PATCHLEVEL="_SP4"
fi
DISTRO_REPO="SLE_${DISTRO_MAJOR_VERSION}${DISTRO_PATCHLEVEL}"
if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then
# Is the repository already known # Is the repository already known
__set_suse_pkg_repo __set_suse_pkg_repo
@ -5895,57 +5819,12 @@ install_suse_11_stable_deps() {
__zypper --gpg-auto-import-keys update || return 1 __zypper --gpg-auto-import-keys update || return 1
fi fi
# Salt needs python-zypp installed in order to use the zypper module # YAML module is used for generating custom master/minion configs
__PACKAGES="python-zypp" __PACKAGES="python-PyYAML"
# shellcheck disable=SC2089
__PACKAGES="${__PACKAGES} libzmq5 python python-Jinja2 python-msgpack-python"
__PACKAGES="${__PACKAGES} python-pycrypto python-pyzmq python-pip python-xml python-requests"
if [ "$SUSE_PATCHLEVEL" -eq 1 ]; then
__check_pip_allowed
echowarn "PyYaml will be installed using pip"
else
__PACKAGES="${__PACKAGES} python-PyYAML"
fi
# shellcheck disable=SC2086,SC2090 # shellcheck disable=SC2086,SC2090
__zypper_install ${__PACKAGES} || return 1 __zypper_install ${__PACKAGES} || return 1
if [ "$SUSE_PATCHLEVEL" -eq 1 ]; then
# There's no python-PyYaml in SP1, let's install it using pip
pip install PyYaml || return 1
fi
# PIP based installs need to copy configuration files "by hand".
if [ "$SUSE_PATCHLEVEL" -eq 1 ]; then
# Let's trigger config_salt()
if [ "$_TEMP_CONFIG_DIR" = "null" ]; then
# Let's set the configuration directory to /tmp
_TEMP_CONFIG_DIR="/tmp"
CONFIG_SALT_FUNC="config_salt"
for fname in api master minion syndic; do
# Skip salt-api since there is no example config for it in the Salt git repo
[ $fname = "api" ] && continue
# Skip if not meant to be installed
[ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue
[ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
# Syndic uses the same configuration file as the master
[ $fname = "syndic" ] && fname=master
# Let's download, since they were not provided, the default configuration files
if [ ! -f "$_SALT_ETC_DIR/$fname" ] && [ ! -f "$_TEMP_CONFIG_DIR/$fname" ]; then
# shellcheck disable=SC2086
curl $_CURL_ARGS -s -o "$_TEMP_CONFIG_DIR/$fname" -L \
"https://raw.githubusercontent.com/saltstack/salt/develop/conf/$fname" || return 1
fi
done
fi
fi
if [ "${_EXTRA_PACKAGES}" != "" ]; then if [ "${_EXTRA_PACKAGES}" != "" ]; then
echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}" echoinfo "Installing the following extra packages as requested: ${_EXTRA_PACKAGES}"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
@ -5965,6 +5844,9 @@ install_suse_11_git_deps() {
__git_clone_and_checkout || return 1 __git_clone_and_checkout || return 1
__PACKAGES="" __PACKAGES=""
# shellcheck disable=SC2089
__PACKAGES="${__PACKAGES} libzmq4 python-Jinja2 python-msgpack-python python-pycrypto"
__PACKAGES="${__PACKAGES} python-pyzmq python-xml python-zypp"
if [ -f "${_SALT_GIT_CHECKOUT_DIR}/requirements/base.txt" ]; then if [ -f "${_SALT_GIT_CHECKOUT_DIR}/requirements/base.txt" ]; then
# We're on the develop branch, install whichever tornado is on the requirements file # We're on the develop branch, install whichever tornado is on the requirements file
@ -5991,13 +5873,7 @@ install_suse_11_git_deps() {
} }
install_suse_11_stable() { install_suse_11_stable() {
if [ "$SUSE_PATCHLEVEL" -gt 1 ]; then install_opensuse_stable || return 1
install_opensuse_stable || return 1
else
# USE_SETUPTOOLS=1 To work around
# error: option --single-version-externally-managed not recognized
USE_SETUPTOOLS=1 pip install salt || return 1
fi
return 0 return 0
} }
@ -6007,32 +5883,7 @@ install_suse_11_git() {
} }
install_suse_11_stable_post() { install_suse_11_stable_post() {
if [ "$SUSE_PATCHLEVEL" -gt 1 ]; then install_opensuse_stable_post || return 1
install_opensuse_stable_post || return 1
else
for fname in api master minion syndic; do
# Skip if not meant to be installed
[ $fname = "api" ] && \
([ "$_INSTALL_MASTER" -eq $BS_FALSE ] || ! __check_command_exists "salt-${fname}") && continue
[ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue
[ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue
[ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue
if [ -f /bin/systemctl ]; then
# shellcheck disable=SC2086
curl $_CURL_ARGS -L "https://github.com/saltstack/salt/raw/develop/pkg/salt-$fname.service" \
-o "/lib/systemd/system/salt-$fname.service" || return 1
continue
fi
# shellcheck disable=SC2086
curl $_CURL_ARGS -L "https://github.com/saltstack/salt/raw/develop/pkg/rpm/salt-$fname" \
-o "/etc/init.d/salt-$fname" || return 1
chmod +x "/etc/init.d/salt-$fname"
done
fi
return 0 return 0
} }
@ -6050,6 +5901,8 @@ install_suse_11_restart_daemons() {
# #
# End of SUSE Enterprise 11 # End of SUSE Enterprise 11
# #
#######################################################################################################################
####################################################################################################################### #######################################################################################################################
# #
# SUSE Enterprise General Functions # SUSE Enterprise General Functions
@ -6078,7 +5931,7 @@ install_suse_check_services() {
} }
# #
# SUSE Enterprise General Functions # End of SUSE Enterprise General Functions
# #
####################################################################################################################### #######################################################################################################################
@ -6698,7 +6551,7 @@ for FUNC_NAME in $(__strip_duplicates "$CHECK_SERVICES_FUNC_NAMES"); do
done done
echodebug "CHECK_SERVICES_FUNC=${CHECK_SERVICES_FUNC}" echodebug "CHECK_SERVICES_FUNC=${CHECK_SERVICES_FUNC}"
if [ "$DEPS_INSTALL_FUNC" = "null" ]; then if [ ${_NO_DEPS} -eq $BS_FALSE ] && [ "$DEPS_INSTALL_FUNC" = "null" ]; then
echoerror "No dependencies installation function found. Exiting..." echoerror "No dependencies installation function found. Exiting..."
exit 1 exit 1
fi fi
@ -6709,7 +6562,7 @@ if [ "$INSTALL_FUNC" = "null" ]; then
fi fi
# Install dependencies # Install dependencies
if [ "$_CONFIG_ONLY" -eq $BS_FALSE ]; then if [ ${_NO_DEPS} -eq $BS_FALSE ] && [ $_CONFIG_ONLY -eq $BS_FALSE ]; then
# Only execute function is not in config mode only # Only execute function is not in config mode only
echoinfo "Running ${DEPS_INSTALL_FUNC}()" echoinfo "Running ${DEPS_INSTALL_FUNC}()"
$DEPS_INSTALL_FUNC $DEPS_INSTALL_FUNC
@ -6725,7 +6578,7 @@ if [ "$_CUSTOM_MASTER_CONFIG" != "null" ] || [ "$_CUSTOM_MINION_CONFIG" != "null
_TEMP_CONFIG_DIR="$_SALT_ETC_DIR" _TEMP_CONFIG_DIR="$_SALT_ETC_DIR"
fi fi
if [ "$_CONFIG_ONLY" -eq $BS_TRUE ]; then if [ ${_NO_DEPS} -eq $BS_FALSE ] && [ $_CONFIG_ONLY -eq $BS_TRUE ]; then
# Execute function to satisfy dependencies for configuration step # Execute function to satisfy dependencies for configuration step
echoinfo "Running ${DEPS_INSTALL_FUNC}()" echoinfo "Running ${DEPS_INSTALL_FUNC}()"
$DEPS_INSTALL_FUNC $DEPS_INSTALL_FUNC