mirror of
https://github.com/saltstack/salt-bootstrap.git
synced 2025-04-16 09:40:21 +00:00
Merge branch 'develop' into 'stable'
No conflicts.
This commit is contained in:
commit
d032d49807
9 changed files with 1896 additions and 827 deletions
11
.github/ISSUE_TEMPLATE.md
vendored
Normal file
11
.github/ISSUE_TEMPLATE.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
### Description of Issue/Question
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
(Please provide relevant configs (Be sure to remove sensitive info).)
|
||||||
|
|
||||||
|
### Steps to Reproduce Issue
|
||||||
|
(Include debug logs if possible, `bootstrap-salt.sh -D`.)
|
||||||
|
|
||||||
|
### Versions and Systems
|
||||||
|
(`salt --versions-report`, `bootstrap-salt.sh -v`, system type and version,
|
||||||
|
cloud/VM provider as appropriate.)
|
13
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
13
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
### What does this PR do?
|
||||||
|
|
||||||
|
### What issues does this PR fix or reference?
|
||||||
|
|
||||||
|
### Previous Behavior
|
||||||
|
Remove this section if not relevant
|
||||||
|
|
||||||
|
### New Behavior
|
||||||
|
Remove this section if not relevant
|
||||||
|
|
||||||
|
### Tests written?
|
||||||
|
|
||||||
|
Yes/No
|
27
AUTHORS.rst
27
AUTHORS.rst
|
@ -7,12 +7,16 @@ order.
|
||||||
========================== ===================== ============================
|
========================== ===================== ============================
|
||||||
Name Nick Email
|
Name Nick Email
|
||||||
========================== ===================== ============================
|
========================== ===================== ============================
|
||||||
|
abednarik abednarik alejandro.bednarik@gmail.com
|
||||||
|
Adam Wright hipikat adam@hipikat.org
|
||||||
Alec Koumjian akoumjian akoumjian@gmail.com
|
Alec Koumjian akoumjian akoumjian@gmail.com
|
||||||
Alex Van't Hof alexvh
|
Alex Van't Hof alexvh
|
||||||
Angelo Gründler plueschopath angelo.gruendler@w1r3.net
|
Angelo Gründler plueschopath angelo.gruendler@w1r3.net
|
||||||
Ari Aosved devaos ari.aosved@gmail.com
|
Ari Aosved devaos ari.aosved@gmail.com
|
||||||
|
Beau Hargis beaucephus beau@customermobile.com
|
||||||
Boris Feld Lothiraldan
|
Boris Feld Lothiraldan
|
||||||
Brad Thurber bradthurber
|
Brad Thurber bradthurber
|
||||||
|
Brandon Clifford brandon099 brandon.clifford@vivint.com
|
||||||
Bret Fisher BretFisher bret@fishbrains.com
|
Bret Fisher BretFisher bret@fishbrains.com
|
||||||
bruce-one bruce-one
|
bruce-one bruce-one
|
||||||
C. R. Oldham cro cr@saltstack.com
|
C. R. Oldham cro cr@saltstack.com
|
||||||
|
@ -20,10 +24,12 @@ Cam camereonsparr
|
||||||
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
|
||||||
Christer Edwards cedwards
|
Christer Edwards cedwards
|
||||||
denmat denmat
|
Clark Perkins iclarkperkins clark.perkins@digitalreasoning.com
|
||||||
Dag Viggo Lokøen dagvl dag.viggo@lokoen.org
|
Dag Viggo Lokøen dagvl dag.viggo@lokoen.org
|
||||||
Dan Mick dmick dan.mick@inktank.com
|
Dan Mick dmick dan.mick@inktank.com
|
||||||
David J. Felix DavidJFelix
|
David J. Felix DavidJFelix
|
||||||
|
denmat denmat
|
||||||
|
Denys Havrysh vutny denys.gavrysh@gmail.com
|
||||||
deployboy deployboy
|
deployboy deployboy
|
||||||
Diego Woitasen diegows diego@flugel.it
|
Diego Woitasen diegows diego@flugel.it
|
||||||
Elias Probst eliasp
|
Elias Probst eliasp
|
||||||
|
@ -33,6 +39,7 @@ EYJ eyj
|
||||||
Forrest Alvarez gravyboat
|
Forrest Alvarez gravyboat
|
||||||
Fred Reimer freimer freimer@freimer.org
|
Fred Reimer freimer freimer@freimer.org
|
||||||
Geoff Garside geoffgarside geoff@geoffgarside.co.uk
|
Geoff Garside geoffgarside geoff@geoffgarside.co.uk
|
||||||
|
gdm85 gdm85
|
||||||
ggillies ggillies
|
ggillies ggillies
|
||||||
Giuseppe Iannello giannello giuseppe.iannello@brokenloop.net
|
Giuseppe Iannello giannello giuseppe.iannello@brokenloop.net
|
||||||
Gregory Meno GregMeno gregory.meno@inktank.com
|
Gregory Meno GregMeno gregory.meno@inktank.com
|
||||||
|
@ -40,26 +47,32 @@ Guillaume Derval GuillaumeDerval guillaume@guillaumederval.be
|
||||||
gweis gweis
|
gweis gweis
|
||||||
Henrik Holmboe holmboe
|
Henrik Holmboe holmboe
|
||||||
Howard Mei HowardMei howardleomei@gmail.com
|
Howard Mei HowardMei howardleomei@gmail.com
|
||||||
|
Jared E Stroud jaredestroud jaredestroud@gmail.com
|
||||||
Jeff Hui jeffh jeff@jeffhui.net
|
Jeff Hui jeffh jeff@jeffhui.net
|
||||||
Jeff Strunk jstrunk
|
Jeff Strunk jstrunk
|
||||||
Juan A. Moyano wincus wincus.public@gmail.com
|
Juan A. Moyano wincus wincus.public@gmail.com
|
||||||
|
Justin Anderson jtand janderson@saltstack.com
|
||||||
|
Justin Findlay jfindlay jfindlay@gmail.com
|
||||||
Karl Grzeszczak karlgrz
|
Karl Grzeszczak karlgrz
|
||||||
Kenneth Wilke KennethWilke
|
Kenneth Wilke KennethWilke
|
||||||
lomeroe lomeroe
|
lomeroe lomeroe
|
||||||
Liu Xiaohui oreh herolxh@gmail.com
|
Liu Xiaohui oreh herolxh@gmail.com
|
||||||
Mark Lee malept
|
Mark Lee malept
|
||||||
|
Marcus Furlong furlongm furlongm@gmail.com
|
||||||
markgaylard markgaylard
|
markgaylard markgaylard
|
||||||
Matt Black mafrosis
|
Matt Black mafrosis
|
||||||
Matthew Garrett cingeyedog matt@clemson.edu
|
Matthew Garrett cingeyedog matt@clemson.edu
|
||||||
Matthew Mead-Briggs mattmb
|
Matthew Mead-Briggs mattmb
|
||||||
Matthew Willson ixela
|
Matthew Willson ixela
|
||||||
Matthieu Guegan mguegan
|
Matthieu Guegan mguegan
|
||||||
|
Michael A. Smith kojiromike michaels@syapse.com
|
||||||
Michael Scherer mscherer
|
Michael Scherer mscherer
|
||||||
Michele Bologna mbologna michele.bologna@gmail.com
|
Michele Bologna mbologna michele.bologna@gmail.com
|
||||||
Mike Carlson m87carlson mike@bayphoto.com
|
Mike Carlson m87carlson mike@bayphoto.com
|
||||||
Mike Place cachedout mp@saltstack.com
|
Mike Place cachedout mp@saltstack.com
|
||||||
nevins-b nevins-b
|
nevins-b nevins-b
|
||||||
Niels Abspoel aboe76
|
Nicole Thomas rallytime nicole@saltstack.com
|
||||||
|
Niels Abspoel aboe76 aboe76@gmail.com
|
||||||
Nitin Madhok nmadhok nmadhok@clemson.edu
|
Nitin Madhok nmadhok nmadhok@clemson.edu
|
||||||
panticz panticz
|
panticz panticz
|
||||||
Paul Brian lifeisstillgood paul@mikadosoftware.com
|
Paul Brian lifeisstillgood paul@mikadosoftware.com
|
||||||
|
@ -67,16 +80,26 @@ Pavel Snagovsky paha
|
||||||
Pedro Algarvio s0undt3ch pedro@algarvio.me
|
Pedro Algarvio s0undt3ch pedro@algarvio.me
|
||||||
Pedro Paulo pedropaulovc
|
Pedro Paulo pedropaulovc
|
||||||
Peter Tripp notpeter
|
Peter Tripp notpeter
|
||||||
|
Prayag Verma pra85 prayag.verma@gmail.com
|
||||||
ptonelli ptonelli
|
ptonelli ptonelli
|
||||||
|
Randy Thompson beardedeagle randy@heroictek.com
|
||||||
Raymond Barbiero visualphoenix
|
Raymond Barbiero visualphoenix
|
||||||
Rob Eden hedinfaok
|
Rob Eden hedinfaok
|
||||||
|
Robert James Hernandez l2ol33rt l2ol33rt@gmail.com
|
||||||
Roberto Aguilar rca roberto@baremetal.io
|
Roberto Aguilar rca roberto@baremetal.io
|
||||||
Roman Inflianskas rominf infroma@gmail.com
|
Roman Inflianskas rominf infroma@gmail.com
|
||||||
|
Roman Mohr rmohr rmohr@redhat.com
|
||||||
Ronald van Zantvoort The-Loeki ronald@pcextreme.nl
|
Ronald van Zantvoort The-Loeki ronald@pcextreme.nl
|
||||||
|
RuriRyan RuriRyan ryan@btsoft.eu
|
||||||
|
Ryan Walder ryanwalder ryanwalder@ucds.email
|
||||||
|
Sergey Paramonov serge-p serg.paramonov@s-vp.com
|
||||||
|
Shawn Butts shawnbutts
|
||||||
Skyler Berg skylerberg skylertheberg@gmail.com
|
Skyler Berg skylerberg skylertheberg@gmail.com
|
||||||
Stanislav B stanislavb
|
Stanislav B stanislavb
|
||||||
|
Steve Groesz wolfpackmars2 wolfpackmars2@yahoo.com
|
||||||
Tate Eskew tateeskew
|
Tate Eskew tateeskew
|
||||||
Thomas S. Hatch thatch45 thatch45@saltstack.com
|
Thomas S. Hatch thatch45 thatch45@saltstack.com
|
||||||
|
Tobias Jungel toanju Tobias.Jungel@gmail.com
|
||||||
Tony Narlock tony
|
Tony Narlock tony
|
||||||
Valentin Bud valentinbud valentin@databus.pro
|
Valentin Bud valentinbud valentin@databus.pro
|
||||||
Vladimir Kozhukalov kozhukalov
|
Vladimir Kozhukalov kozhukalov
|
||||||
|
|
63
ChangeLog
63
ChangeLog
|
@ -1,3 +1,64 @@
|
||||||
|
Version 2016.05.10:
|
||||||
|
* Removed libzmq4 and forking-deamon-patch for Opensuse13. (jtand) #840
|
||||||
|
* Ubuntu 12.04 needs to be updated before installing packages. (jtand) #829
|
||||||
|
* Always download and install *latest* `epel-release` package on RHEL systems. (vutny) #825
|
||||||
|
* Fix Amazon Linux EOL check. (vutny) #818
|
||||||
|
|
||||||
|
Version 2016.04.18:
|
||||||
|
* Add support for openSUSE Leap. Thanks Roman Inflianskas(rominf). #693
|
||||||
|
* Fix missing deps installation on Debian. Thanks Steve Groesz(wolfpackmars2). #699
|
||||||
|
* Update SaltStack repo location and latest version for Windows. (brandon099) #711
|
||||||
|
* Better EPEL repository detection on RHEL and CentOS. (vutny) #717
|
||||||
|
* Fix git invocation fail when `man` command is not available. (vutny) #718
|
||||||
|
* Fix `epel-release` package installation on CentOS/RHEL 5. (vutny) #719
|
||||||
|
* Removed deprecated cli option. (abednarik) #705
|
||||||
|
* Remove RHEL optional repo check and enable. (vutny) #720
|
||||||
|
* Remove SaltStack COPR repository configuration for CentOS/RHEL5. (vutny) #721
|
||||||
|
* Add opensuse_Tumbleweed support. (aboe76) #725
|
||||||
|
* Sometimes bootstrap doesn't install zmq. (jtand) #726
|
||||||
|
* 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
|
||||||
|
* Fix for -C (_CONFIG_ONLY). (beaucephus) #544
|
||||||
|
* Fix when using upstream tags. (The-Loeki) #564
|
||||||
|
* COPR project moved. (rmohr) #738
|
||||||
|
* Update license year range. (pra85) #743
|
||||||
|
* Use POSIX-Compliant Command-Exists Test. (kojiromike) #741
|
||||||
|
* Add -f option to force shallow cloning. (eyj) #660
|
||||||
|
* add SLE 12 support, fix OpenSUSE support. (grep4linux) #748
|
||||||
|
* 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
|
||||||
|
* 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
|
||||||
|
* fix for FreeBSD 11 CURRENT install functions. (serge-p) #723
|
||||||
|
* Don't add zypp repo if it already exists. (furlongm) #731
|
||||||
|
* switch repositories for suse and sles fixes `#706`_. (aboe76) #734
|
||||||
|
* Reformat and correct usage instructions. (vutny) #755
|
||||||
|
* fixed missing repo for suse 12. (aboe76) #756
|
||||||
|
* fix for Amazon Linux. (shawnbutts) #700
|
||||||
|
* adding support for OpenBSD distribution. (serge-p) #722
|
||||||
|
* fixing syntax errors. (beardedeagle) #760
|
||||||
|
* 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 sleep time option to recognize a numeric argument. (vutny) #771
|
||||||
|
* Update README. (vutny) #787
|
||||||
|
* get tornado from pip on a fedora git install. (jfindlay) #785
|
||||||
|
* Remove the Saltstack repo's alias. (cro) #794
|
||||||
|
* Ability to change cache dir. (clarkperkins) #761
|
||||||
|
* Add config_freebsd_salt func so freebsd puts cfgs in the right place. (ryanwalder) #779
|
||||||
|
* Allow archive versions. (clarkperkins) #769
|
||||||
|
* Lack of HTTPS for RPM packages. (jaredestroud) #783
|
||||||
|
* Ability to change cache dir. (clarkperkins) #761
|
||||||
|
* Bootstrap on Docker. (vutny) #793
|
||||||
|
* add downstream pkg repo for SUSE. (jfindlay) #791
|
||||||
|
* 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
|
||||||
|
* Add an -l option to switch https to http links. (rallytime) #795
|
||||||
|
* Virtualenv support for Ubuntu. (l2ol33rt) #666
|
||||||
|
* Lint. (jfindlay) #805
|
||||||
|
* use portable command check. (jfindlay) #806
|
||||||
|
* 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
|
||||||
|
|
||||||
|
@ -426,5 +487,5 @@ Version 1.5:
|
||||||
* FreeBSD 9.0
|
* FreeBSD 9.0
|
||||||
|
|
||||||
|
|
||||||
# Don't remove the line bellow.
|
# Don't remove the line below.
|
||||||
# vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want ts=4
|
# vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want ts=4
|
||||||
|
|
20
Dockerfile
Normal file
20
Dockerfile
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
FROM ubuntu-upstart:14.04
|
||||||
|
MAINTAINER "SaltStack Team"
|
||||||
|
|
||||||
|
# Bootstrap script options: install Salt Master by default
|
||||||
|
ENV BOOTSTRAP_OPTS='-M'
|
||||||
|
# Version of salt to install: stable or git
|
||||||
|
ENV SALT_VERSION=stable
|
||||||
|
|
||||||
|
COPY bootstrap-salt.sh /tmp/
|
||||||
|
|
||||||
|
# Prevent udev from being upgraded inside the container, dpkg will fail to configure it
|
||||||
|
RUN echo udev hold | dpkg --set-selections
|
||||||
|
# Upgrade System and Install Salt
|
||||||
|
RUN sudo sh /tmp/bootstrap-salt.sh -U -X -d $BOOTSTRAP_OPTS $SALT_VERSION && \
|
||||||
|
apt-get clean
|
||||||
|
RUN /usr/sbin/update-rc.d -f ondemand remove; \
|
||||||
|
update-rc.d salt-minion defaults && \
|
||||||
|
update-rc.d salt-master defaults || true
|
||||||
|
|
||||||
|
EXPOSE 4505 4506
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
||||||
Salt Bootstrap - Generic Salt Bootstrap Script
|
Salt Bootstrap - Generic Salt Bootstrap Script
|
||||||
|
|
||||||
Copyright 2012-2013 Salt Stack (saltstack.org)
|
Copyright 2012-2016 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.
|
||||||
|
|
404
README.rst
404
README.rst
|
@ -2,139 +2,162 @@
|
||||||
Bootstrapping Salt
|
Bootstrapping Salt
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Before `Salt`_ can be used for provisioning on the desired machine, the binaries need to be
|
Before `Salt`_ can be used for provisioning on the desired machine, the binaries need to be
|
||||||
installed. Since `Salt`_ supports many different distributions and versions of operating systems,
|
installed. Since `Salt`_ supports many different distributions and versions of operating systems,
|
||||||
the `Salt`_ installation process is handled by this shell script ``bootstrap-salt.sh``. This
|
the `Salt`_ installation process is handled by this shell script ``bootstrap-salt.sh``. This
|
||||||
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
|
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
|
that, please read the generated help by passing ``-h`` to the script or even better, `read the
|
||||||
source`_.
|
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.
|
||||||
|
|
||||||
|
.. _`Salt`: https://saltstack.com/community/
|
||||||
.. _`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
|
||||||
|
|
||||||
|
|
||||||
**In case you found a bug, please read** `I found a bug`_ **first before submitting a new issue.**
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bootstrap
|
Bootstrap
|
||||||
---------
|
=========
|
||||||
|
|
||||||
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`_.
|
||||||
|
|
||||||
|
|
||||||
Examples
|
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
In every two-step example, you would be well-served to examine the downloaded file and examine
|
In every two-step example, you would be well-served to examine the downloaded file and examine
|
||||||
it to ensure that it does what you expect.
|
it to ensure that it does what you expect.
|
||||||
|
|
||||||
|
|
||||||
Using ``curl`` to install latest git:
|
Examples
|
||||||
|
--------
|
||||||
|
|
||||||
|
The Salt Bootstrap script has a wide variety of options that can be passed as
|
||||||
|
well as several ways of obtaining the bootstrap script itself.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
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
|
||||||
|
`SaltStack corporate repository`_. See first example in the `Install using wget`_ section.
|
||||||
|
|
||||||
|
.. _`SaltStack corporate repository`: https://repo.saltstack.com/
|
||||||
|
|
||||||
|
|
||||||
|
Install using curl
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Using ``curl`` to install latest development version from GitHub:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
curl -L https://bootstrap.saltstack.com -o install_salt.sh
|
curl -o bootstrap_salt.sh -L https://bootstrap.saltstack.com
|
||||||
sudo sh install_salt.sh git develop
|
sudo sh bootstrap_salt.sh git develop
|
||||||
|
|
||||||
|
If you want to install a specific release version (based on the Git tags):
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
curl -o bootstrap_salt.sh -L https://bootstrap.saltstack.com
|
||||||
|
sudo sh bootstrap_salt.sh git v2015.8.8
|
||||||
|
|
||||||
|
To install a specific branch from a Git fork:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
curl -o bootstrap_salt.sh -L https://bootstrap.saltstack.com
|
||||||
|
sudo sh bootstrap_salt.sh -g https://github.com/myuser/salt.git git mybranch
|
||||||
|
|
||||||
|
If all you want is to install a ``salt-master`` using latest Git:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
curl -o bootstrap_salt.sh -L https://bootstrap.saltstack.com
|
||||||
|
sudo sh bootstrap_salt.sh -M -N git develop
|
||||||
|
|
||||||
|
If your host has Internet access only via HTTP proxy:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
PROXY='http://user:password@myproxy.example.com:3128'
|
||||||
|
curl -o bootstrap_salt.sh -L -x "$PROXY" https://bootstrap.saltstack.com
|
||||||
|
sudo sh bootstrap_salt.sh -G -H "$PROXY" git
|
||||||
|
|
||||||
|
|
||||||
|
Install using wget
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Using ``wget`` to install your distribution's stable packages:
|
Using ``wget`` to install your distribution's stable packages:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
wget -O install_salt.sh https://bootstrap.saltstack.com
|
wget -O bootstrap_salt.sh https://bootstrap.saltstack.com
|
||||||
sudo sh install_salt.sh
|
sudo sh bootstrap_salt.sh
|
||||||
|
|
||||||
|
Installing a specific version from git using ``wget``:
|
||||||
Install a specific version from git using ``wget``:
|
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
wget -O install_salt.sh https://bootstrap.saltstack.com
|
wget -O bootstrap_salt.sh https://bootstrap.saltstack.com
|
||||||
sudo sh install_salt.sh -P git v0.16.4
|
sudo sh bootstrap_salt.sh -P git v2015.8.7
|
||||||
|
|
||||||
On the above example we added `-P` which will allow PIP packages to be installed if required but
|
.. note::
|
||||||
it's no a necessary flag for git based bootstraps.
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
If you already have python installed, ``python 2.6``, then it's as easy as:
|
Install using Python
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
If you already have Python installed, ``python 2.6``, then it's as easy as:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
python -m urllib "https://bootstrap.saltstack.com" > install_salt.sh
|
python -m urllib "https://bootstrap.saltstack.com" > bootstrap_salt.sh
|
||||||
sudo sh install_salt.sh git develop
|
sudo sh bootstrap_salt.sh git develop
|
||||||
|
|
||||||
|
All Python versions should support the following in-line code:
|
||||||
All python versions should support the following one liner:
|
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
python -c 'import urllib; print urllib.urlopen("https://bootstrap.saltstack.com").read()' > install_salt.sh
|
python -c 'import urllib; print urllib.urlopen("https://bootstrap.saltstack.com").read()' > bootstrap_salt.sh
|
||||||
sudo sh install_salt.sh git develop
|
sudo sh bootstrap_salt.sh git develop
|
||||||
|
|
||||||
|
|
||||||
On a FreeBSD base system you usually don't have either of the above binaries available. You **do**
|
Install using fetch
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
On a FreeBSD base system you usually don't have either of the above binaries available. You **do**
|
||||||
have ``fetch`` available though:
|
have ``fetch`` available though:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
fetch -o install_salt.sh https://bootstrap.saltstack.com
|
fetch -o bootstrap_salt.sh https://bootstrap.saltstack.com
|
||||||
sudo sh install_salt.sh
|
sudo sh bootstrap_salt.sh
|
||||||
|
|
||||||
If you have any SSL issues install ``ca_root_nssp``:
|
If you have any SSL issues install ``ca_root_nssp``:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
pkg install ca_root_nssp
|
pkg install ca_root_nssp
|
||||||
|
|
||||||
And either copy the certificates to the place where fetch can find them:
|
And either copy the certificates to the place where fetch can find them:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
cp /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
|
cp /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
|
||||||
|
|
||||||
Or link them to the right place:
|
Or link them to the right place:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
ln -s /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
|
ln -s /usr/local/share/certs/ca-root-nss.crt /etc/ssl/cert.pem
|
||||||
|
|
||||||
|
|
||||||
If all you want is to install a ``salt-master`` using latest git:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
curl -o install_salt.sh -L https://bootstrap.saltstack.com
|
|
||||||
sudo sh install_salt.sh -M -N git develop
|
|
||||||
|
|
||||||
|
|
||||||
If you want to install a specific release version (based on the git tags):
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
curl -o install_salt.sh -L https://bootstrap.saltstack.com
|
|
||||||
sudo sh install_salt.sh git v0.16.4
|
|
||||||
|
|
||||||
|
|
||||||
To install a specific branch from a git fork:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
curl -o install_salt.sh -L https://bootstrap.saltstack.com
|
|
||||||
sudo sh install_salt.sh -g https://github.com/myuser/salt.git git mybranch
|
|
||||||
|
|
||||||
|
|
||||||
Any of the example above which use two-lines can be made to run in a single-line
|
|
||||||
configuration with minor modifications, see `Installing via an Insecure One-Liner`_.
|
|
||||||
|
|
||||||
|
|
||||||
Installing via an Insecure One-Liner
|
Installing via an Insecure One-Liner
|
||||||
|
@ -144,24 +167,23 @@ 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
|
Warning! These methods do not involve a verification step and assume that the delivered file
|
||||||
is trustworthy.
|
is trustworthy.
|
||||||
|
|
||||||
|
Any of the example above which use two-lines can be made to run in a single-line
|
||||||
Examples
|
configuration with minor modifications.
|
||||||
~~~~~~~~
|
|
||||||
|
|
||||||
Installing the latest stable release of Salt (default):
|
Installing the latest stable release of Salt (default):
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
curl -L https://bootstrap.saltstack.com | sudo sh -s -- stable
|
curl -L https://bootstrap.saltstack.com | sudo sh
|
||||||
|
|
||||||
or
|
Using ``wget`` to install your distribution's stable packages:
|
||||||
|
|
||||||
.. code:: console
|
.. code-block:: bash
|
||||||
|
|
||||||
curl -L https://bootstrap.saltstack.com | sudo sh -s
|
wget -O - https://bootstrap.saltstack.com | sudo sh
|
||||||
|
|
||||||
Installing the latest develop branch of Salt:
|
Installing the latest develop branch of Salt:
|
||||||
|
|
||||||
|
@ -170,9 +192,110 @@ Installing the latest develop branch of Salt:
|
||||||
curl -L https://bootstrap.saltstack.com | sudo sh -s -- git develop
|
curl -L https://bootstrap.saltstack.com | sudo sh -s -- git develop
|
||||||
|
|
||||||
|
|
||||||
Adding support for other operating systems
|
Supported Operating Systems
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Bootstrap may fail to install Salt on the cutting-edge version of distributions with frequent
|
||||||
|
release cycle, such as: Amazon Linux, Fedora, openSUSE Tumbleweed or Ubuntu non-LTS. Check the
|
||||||
|
versions from the list below. Also, see the `Unsupported Distro`_ and
|
||||||
|
`Adding Support for Other Operating Systems`_ sections.
|
||||||
|
|
||||||
|
|
||||||
|
Debian and derivatives
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- Debian GNU/Linux 6/7/8
|
||||||
|
- Linux Mint Debian Edition 1 (based on Debian 8)
|
||||||
|
- Kali Linux 1.0 (based on Debian 7)
|
||||||
|
|
||||||
|
|
||||||
|
Red Hat family
|
||||||
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- Amazon Linux 2012.09/2013.03/2013.09/2014.03/2014.09
|
||||||
|
- CentOS 5/6/7
|
||||||
|
- Fedora 17/18/20/21/22
|
||||||
|
- Oracle Linux 5/6/7
|
||||||
|
- Red Hat Enterprise Linux 5/6/7
|
||||||
|
- Scientific Linux 5/6/7
|
||||||
|
|
||||||
|
|
||||||
|
SUSE family
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
- openSUSE 12/13
|
||||||
|
- openSUSE Leap 42
|
||||||
|
- openSUSE Tumbleweed 2015
|
||||||
|
- SUSE Linux Enterprise Server 11 SP1/11 SP2/11 SP3/12
|
||||||
|
|
||||||
|
|
||||||
|
Ubuntu and derivatives
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- Elementary OS 0.2 (based on Ubuntu 12.04)
|
||||||
|
- Linaro 12.04
|
||||||
|
- Linux Mint 13/14/16/17
|
||||||
|
- Trisquel GNU/Linux 6 (based on Ubuntu 12.04)
|
||||||
|
- Ubuntu 10.x/11.x/12.x/13.x/14.x/15.04
|
||||||
|
|
||||||
|
|
||||||
|
Other Linux distro
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
- Arch Linux
|
||||||
|
- Gentoo
|
||||||
|
|
||||||
|
|
||||||
|
UNIX systems
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
**BSD**:
|
||||||
|
|
||||||
|
- OpenBSD (``pip`` installation)
|
||||||
|
- FreeBSD 9/10/11
|
||||||
|
|
||||||
|
**SunOS**:
|
||||||
|
|
||||||
|
- SmartOS
|
||||||
|
|
||||||
|
|
||||||
|
Unsupported Distro
|
||||||
|
------------------
|
||||||
|
|
||||||
|
You found a Linux distribution which we still do not support or we do not correctly identify?
|
||||||
|
Please run the following commands and report their output when creating a ticket:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
sudo find /etc/ -name \*-release -print -exec cat {} \;
|
||||||
|
command lsb_release -a
|
||||||
|
|
||||||
|
|
||||||
|
Adding Support for Other Operating Systems
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
In order to install salt for a distribution you need to define:
|
|
||||||
|
The following operating systems are detected, but Salt and its dependencies installation functions
|
||||||
|
are not developed yet:
|
||||||
|
|
||||||
|
**BSD**:
|
||||||
|
|
||||||
|
- NetBSD
|
||||||
|
|
||||||
|
**Linux**:
|
||||||
|
|
||||||
|
- Raspbian (detected as Debian)
|
||||||
|
- 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:
|
1. To Install Dependencies, which is required, one of:
|
||||||
|
|
||||||
|
@ -186,8 +309,8 @@ In order to install salt for a distribution you need to define:
|
||||||
install_<distro>_deps
|
install_<distro>_deps
|
||||||
|
|
||||||
|
|
||||||
2. Optionally, define a minion configuration function, which will be called if the
|
2. Optionally, define a minion configuration function, which will be called if the
|
||||||
``-c|config-dir`` option is passed. One of:
|
``-c`` option is passed. One of:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -200,8 +323,8 @@ In order to install salt for a distribution you need to define:
|
||||||
config_salt [THIS ONE IS ALREADY DEFINED AS THE DEFAULT]
|
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
|
3. Optionally, define a Salt master pre-seed function, which will be called if the
|
||||||
master keys) option is passed. One of:
|
``-k`` (pre-seed master keys) option is passed. One of:
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -249,7 +372,7 @@ In order to install salt for a distribution you need to define:
|
||||||
|
|
||||||
.. admonition:: Attention!
|
.. admonition:: Attention!
|
||||||
|
|
||||||
The start daemons function should be able to restart any daemons which are running, or start if
|
The start daemons function should be able to restart any daemons which are running, or start if
|
||||||
they're not running.
|
they're not running.
|
||||||
|
|
||||||
|
|
||||||
|
@ -280,7 +403,7 @@ In order to install salt for a distribution you need to define:
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Below is an example for Ubuntu Oneiric(the example may not be up to date with the script):
|
Below is an example for Ubuntu Oneiric (the example may not be up to date with the script):
|
||||||
|
|
||||||
.. code:: bash
|
.. code:: bash
|
||||||
|
|
||||||
|
@ -328,44 +451,22 @@ Below is an example for Ubuntu Oneiric(the example may not be up to date with th
|
||||||
|
|
||||||
Since there is no ``install_ubuntu_11_10_stable()`` it defaults to the unspecified version script.
|
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
|
The bootstrapping script must be plain POSIX ``sh`` only, **not** ``bash`` or another shell script.
|
||||||
design the targeting for each operating system and version is very specific. Assumptions of
|
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.
|
supported versions or variants should not be made, to avoid failed or broken installations.
|
||||||
|
|
||||||
Supported Operating Systems
|
|
||||||
---------------------------
|
|
||||||
- Amazon Linux 2012.09
|
|
||||||
- Arch
|
|
||||||
- CentOS 5/6/7
|
|
||||||
- Debian 6/7/8
|
|
||||||
- Fedora 17/18/20/21/22
|
|
||||||
- FreeBSD 9.1/9.2/10/11
|
|
||||||
- Gentoo
|
|
||||||
- Linaro
|
|
||||||
- Linux Mint 13/14
|
|
||||||
- OpenSUSE 12/13
|
|
||||||
- Oracle Linux 5/5
|
|
||||||
- Red Hat 5/6
|
|
||||||
- Red Hat Enterprise 5/6
|
|
||||||
- Scientific Linux 5/6
|
|
||||||
- SmartOS
|
|
||||||
- SUSE Linux Enterprise 11 SP1/11 SP2/11 SP3
|
|
||||||
- Ubuntu 10.x/11.x/12.x/13.x/14.x/15.04
|
|
||||||
- Elementary OS 0.2
|
|
||||||
|
|
||||||
|
I Found a Bug
|
||||||
|
=============
|
||||||
|
|
||||||
|
If you found a possible problem, or bug, please try to bootstrap using the develop version. The
|
||||||
I found a bug
|
issue you are having might have already been fixed and it's just not yet included in the stable
|
||||||
-------------
|
|
||||||
|
|
||||||
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.
|
version.
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
curl -o install_salt.sh -L https://bootstrap.saltstack.com/develop
|
curl -o bootstrap_salt.sh -L https://bootstrap.saltstack.com/develop
|
||||||
sudo sh install_salt.sh git develop
|
sudo sh bootstrap_salt.sh git develop
|
||||||
|
|
||||||
|
|
||||||
Or the insecure one liner:
|
Or the insecure one liner:
|
||||||
|
@ -375,37 +476,62 @@ Or the insecure one liner:
|
||||||
curl -L https://bootstrap.saltstack.com/develop | sudo sh -s -- git develop
|
curl -L https://bootstrap.saltstack.com/develop | sudo sh -s -- git develop
|
||||||
|
|
||||||
|
|
||||||
If after trying this, you still see the same problems, then, please `file an issue`_.
|
If after trying this, you still see the same problems, then, please `fill an issue`_.
|
||||||
|
|
||||||
|
|
||||||
|
.. _`fill an issue`: https://github.com/saltstack/salt-bootstrap/issues/new
|
||||||
.. _`Salt`: http://saltstack.org/
|
|
||||||
.. _`file an issue`: https://github.com/saltstack/salt-bootstrap/issues/new
|
|
||||||
|
|
||||||
|
|
||||||
Unsupported Distro
|
|
||||||
------------------
|
|
||||||
|
|
||||||
You found a Linux distribution which we still do not support or we do not correctly identify?
|
|
||||||
Please run the following commands and report their output when creating a ticket:
|
|
||||||
|
|
||||||
.. code:: console
|
|
||||||
|
|
||||||
sudo find /etc/ -name '*-release' -print -exec cat {} \;
|
|
||||||
which lsb_release && lsb_release -a
|
|
||||||
|
|
||||||
|
|
||||||
Testing in Vagrant
|
Testing in Vagrant
|
||||||
------------------
|
==================
|
||||||
You can use Vagrant_ to easily test changes on a clean machine. The ``Vagrantfile`` defaults to an
|
|
||||||
|
You can use Vagrant_ to easily test changes on a clean machine. The ``Vagrantfile`` defaults to an
|
||||||
Ubuntu box. First, install Vagrant, then:
|
Ubuntu box. First, install Vagrant, then:
|
||||||
|
|
||||||
.. code:: console
|
.. code:: console
|
||||||
|
|
||||||
$ vagrant up
|
vagrant up
|
||||||
$ vagrant ssh
|
vagrant ssh
|
||||||
|
|
||||||
|
|
||||||
.. _Vagrant: http://www.vagrantup.com
|
.. _Vagrant: http://www.vagrantup.com
|
||||||
.. _Installing via an Insecure One-Liner: #installing-via-an-insecure-one-liner
|
|
||||||
|
|
||||||
|
Running in Docker
|
||||||
|
=================
|
||||||
|
|
||||||
|
Also you are able to run and use Salt inside Docker_ container on Linux machine.
|
||||||
|
Let's prepare the Docker image using provided ``Dockerfile`` to install both Salt Master and Minion
|
||||||
|
with the bootstrap script:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
docker build -t local/salt-bootstrap .
|
||||||
|
|
||||||
|
Start your new container with Salt services up and running:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
docker run --detach --name salt --hostname salt local/salt-bootstrap
|
||||||
|
|
||||||
|
And finally "enter" the running container and make Salt fully operational:
|
||||||
|
|
||||||
|
.. code:: console
|
||||||
|
|
||||||
|
docker exec -i -t salt /bin/bash
|
||||||
|
salt-key -A -y
|
||||||
|
|
||||||
|
Salt is ready and working in the Docker container with Minion authenticated on Master.
|
||||||
|
|
||||||
|
.. 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.
|
||||||
|
|
||||||
|
|
||||||
|
.. _Docker: https://www.docker.com/
|
||||||
|
.. _`pre-accepted Minion key`: https://docs.saltstack.com/en/latest/topics/tutorials/preseed_key.html
|
||||||
|
|
||||||
|
|
||||||
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et
|
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et
|
||||||
|
|
|
@ -1,27 +1,34 @@
|
||||||
<#
|
<#
|
||||||
.SYNOPSIS
|
.SYNOPSIS
|
||||||
A simple Powershell script to download and install a salt minion on windows.
|
A simple Powershell script to download and install a salt minion on windows.
|
||||||
|
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
The script will download the official salt package from saltstack. It will install a specific
|
The script will download the official salt package from saltstack. It will install a specific
|
||||||
package version and accept parameters for the master and minion ids. Finally, it can stop and
|
package version and accept parameters for the master and minion ids. Finally, it can stop and
|
||||||
set the windows service to "manual" for local testing.
|
set the windows service to "manual" for local testing.
|
||||||
|
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
./bootstrap-salt.ps1
|
./bootstrap-salt.ps1
|
||||||
Runs without any parameters. Uses all the default values/settings.
|
Runs without any parameters. Uses all the default values/settings.
|
||||||
|
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
./bootstrap-salt.ps1 -version 2015.4.1-3
|
./bootstrap-salt.ps1 -version 2015.4.1-3
|
||||||
Specifies a particular version of the installer.
|
Specifies a particular version of the installer.
|
||||||
|
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
./bootstrap-salt.ps1 -runservice false
|
./bootstrap-salt.ps1 -runservice false
|
||||||
Specifies the salt-minion service to stop and be set to manual.
|
Specifies the salt-minion service to stop and be set to manual.
|
||||||
Useful for testing locally from the command line with the --local switch
|
Useful for testing locally from the command line with the --local switch
|
||||||
|
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
./bootstrap-salt.ps1 -minion minion-box -master master-box
|
./bootstrap-salt.ps1 -minion minion-box -master master-box
|
||||||
Specifies the minion and master ids in the minion config.
|
Specifies the minion and master ids in the minion config.
|
||||||
Defaults to the installer values of "minion" and "master".
|
Defaults to the installer values of "minion" and "master".
|
||||||
|
|
||||||
.EXAMPLE
|
.EXAMPLE
|
||||||
./bootstrap-salt.ps1 -minion minion-box -master master-box -version 2015.5.2 -runservice false
|
./bootstrap-salt.ps1 -minion minion-box -master master-box -version 2015.5.2 -runservice false
|
||||||
Specifies all the optional parameters in no particular order.
|
Specifies all the optional parameters in no particular order.
|
||||||
|
|
||||||
.PARAMETER version - Default version defined in this script.
|
.PARAMETER version - Default version defined in this script.
|
||||||
|
|
||||||
.PARAMETER runservice - Boolean flag to stop the windows service and set to "manual".
|
.PARAMETER runservice - Boolean flag to stop the windows service and set to "manual".
|
||||||
|
@ -40,14 +47,14 @@ is dynamically determined by the script.
|
||||||
Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-windows-bootstrap
|
Bootstrap GitHub Project (script home) - https://github.com/saltstack/salt-windows-bootstrap
|
||||||
Original Vagrant Provisioner Project -https://github.com/saltstack/salty-vagrant
|
Original Vagrant Provisioner Project -https://github.com/saltstack/salty-vagrant
|
||||||
Vagrant Project (utilizes this script) - https://github.com/mitchellh/vagrant
|
Vagrant Project (utilizes this script) - https://github.com/mitchellh/vagrant
|
||||||
SaltStack Download Location - http://docs.saltstack.com/downloads/
|
SaltStack Download Location - https://repo.saltstack.com/windows/
|
||||||
#>
|
#>
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
Param(
|
Param(
|
||||||
[Parameter(Mandatory=$false,ValueFromPipeline=$true)]
|
[Parameter(Mandatory=$false,ValueFromPipeline=$true)]
|
||||||
# Doesn't support versions prior to "YYYY.M.R-B"
|
# Doesn't support versions prior to "YYYY.M.R-B"
|
||||||
[ValidatePattern('^(201[0-9]\.[0-9]\.[0-9](\-\d{1})?)$')]
|
[ValidatePattern('^(201[0-9]\.[0-9]\.[0-9](\-\d{1})?)$')]
|
||||||
[string]$version = "2015.5.2",
|
[string]$version = '',
|
||||||
|
|
||||||
[Parameter(Mandatory=$false,ValueFromPipeline=$true)]
|
[Parameter(Mandatory=$false,ValueFromPipeline=$true)]
|
||||||
[ValidateSet("true","false")]
|
[ValidateSet("true","false")]
|
||||||
|
@ -99,15 +106,33 @@ If ([IntPtr]::Size -eq 4) {
|
||||||
$arch = "AMD64"
|
$arch = "AMD64"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If version isn't supplied, use latest.
|
||||||
|
if (!$version) {
|
||||||
|
# Find latest version of Salt Minion
|
||||||
|
$repo = Invoke-Restmethod 'http://repo.saltstack.com/windows/'
|
||||||
|
$regex = "<\s*a\s*[^>]*?href\s*=\s*[`"']*([^`"'>]+)[^>]*?>"
|
||||||
|
$returnMatches = new-object System.Collections.ArrayList
|
||||||
|
$resultingMatches = [Regex]::Matches($repo, $regex, "IgnoreCase")
|
||||||
|
foreach($match in $resultingMatches)
|
||||||
|
{
|
||||||
|
$cleanedMatch = $match.Groups[1].Value.Trim()
|
||||||
|
[void] $returnMatches.Add($cleanedMatch)
|
||||||
|
}
|
||||||
|
if ($arch -eq 'x86') {$returnMatches = $returnMatches | Where {$_ -like "Salt-Minion*x86-Setup.exe"}}
|
||||||
|
else {$returnMatches = $returnMatches | Where {$_ -like "Salt-Minion*AMD64-Setup.exe"}}
|
||||||
|
|
||||||
|
$version = $(($returnMatches | Sort-Object -Descending)[0]).Split(("n-","-A","-x"),([System.StringSplitOptions]::RemoveEmptyEntries))[1]
|
||||||
|
}
|
||||||
|
|
||||||
# Download minion setup file
|
# Download minion setup file
|
||||||
Write-Host -NoNewline "Downloading Salt minion installer Salt-Minion-$version-$arch-Setup.exe"
|
Write-Output -NoNewline "Downloading Salt minion installer Salt-Minion-$version-$arch-Setup.exe"
|
||||||
$webclient = New-Object System.Net.WebClient
|
$webclient = New-Object System.Net.WebClient
|
||||||
$url = "https://docs.saltstack.com/downloads/Salt-Minion-$version-$arch-Setup.exe"
|
$url = "https://repo.saltstack.com/windows/Salt-Minion-$version-$arch-Setup.exe"
|
||||||
$file = "C:\tmp\salt.exe"
|
$file = "C:\tmp\salt.exe"
|
||||||
$webclient.DownloadFile($url, $file)
|
$webclient.DownloadFile($url, $file)
|
||||||
|
|
||||||
# Install minion silently
|
# Install minion silently
|
||||||
Write-Host -NoNewline "Installing Salt minion"
|
Write-Output -NoNewline "Installing Salt minion"
|
||||||
#Wait for process to exit before continuing.
|
#Wait for process to exit before continuing.
|
||||||
C:\tmp\salt.exe /S /minion-name=$minion /master=$master | Out-Null
|
C:\tmp\salt.exe /S /minion-name=$minion /master=$master | Out-Null
|
||||||
|
|
||||||
|
@ -141,14 +166,14 @@ If($runservice) {
|
||||||
# If the salt-minion service is still not running, something probably
|
# If the salt-minion service is still not running, something probably
|
||||||
# went wrong and user intervention is required - report failure.
|
# went wrong and user intervention is required - report failure.
|
||||||
If ($service.Status -eq "Stopped") {
|
If ($service.Status -eq "Stopped") {
|
||||||
Write-Host -NoNewline "Failed to start salt minion"
|
Write-Output -NoNewline "Failed to start salt minion"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Else {
|
Else {
|
||||||
Write-Host -NoNewline "Stopping salt minion and setting it to 'Manual'"
|
Write-Output -NoNewline "Stopping salt minion and setting it to 'Manual'"
|
||||||
Set-Service "salt-minion" -startupType "Manual"
|
Set-Service "salt-minion" -startupType "Manual"
|
||||||
Stop-Service "salt-minion"
|
Stop-Service "salt-minion"
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Host -NoNewline "Salt minion successfully installed"
|
Write-Output "Salt minion successfully installed"
|
||||||
|
|
2142
bootstrap-salt.sh
2142
bootstrap-salt.sh
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue