scripts/README.rst in vagrant-salt-0.3.2 vs scripts/README.rst in vagrant-salt-0.4.0
- old
+ new
@@ -1,14 +1,14 @@
+==================
Bootstrapping Salt
==================
-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, the `Salt`_ installation
-process is handled by this shell script ``bootstrap-salt-minion.sh``. This
-script runs through a series of checks to determine operating system type and
-version to then install the `Salt`_ binaries using the appropriate methods.
+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,
+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
+install the `Salt`_ binaries using the appropriate methods.
One Line Bootstrap
------------------
@@ -16,114 +16,203 @@
For example, using ``curl`` to install latest git:
.. code:: console
- curl -L http://bootstrap.saltstack.org | sudo sh -s git develop
+ curl -L http://bootstrap.saltstack.org | sudo sh -s -- git develop
-Or, using ``wget`` to install your distribution's stable packages:
+If you have certificate issues using ``curl``, try the following:
+.. code:: console
+
+ curl --insecure -L http://bootstrap.saltstack.org | sudo sh -s -- git develop
+
+
+
+Using ``wget`` to install your distribution's stable packages:
+
.. code:: console
wget -O - http://bootstrap.saltstack.org | sudo sh
+
If you have certificate issues using ``wget`` try the following:
.. code:: console
wget --no-check-certificate -O - http://bootstrap.saltstack.org | sudo sh
-If you already have python installed, then it's as easy as:
+If you already have python installed, ``python 2.6``, then it's as easy as:
+
.. code:: console
- python -m urllib "http://bootstrap.saltstack.org" | sudo sh -s git develop
+ python -m urllib "http://bootstrap.saltstack.org" | sudo sh -s -- git develop
+All python versions should support the following one liner:
+.. code:: console
+
+ python -c 'import urllib; print urllib.urlopen("http://bootstrap.saltstack.org").read()' | \
+ sudo sh -s -- git develop
+
+
+On a FreeBSD base system you usually don't have either of the above binaries available. You **do**
+have ``fetch`` available though:
+
+.. code:: console
+
+ fetch -o - http://bootstrap.saltstack.org | sudo sh
+
+
+
+If all you want is to install a ``salt-master`` using latest git:
+
+.. code:: console
+
+ curl -L http://bootstrap.saltstack.org | sudo sh -s -- -M -N git develop
+
+
+
Adding support for other operating systems
------------------------------------------
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>_<distro_version>_<install_type>_deps
- install_<distro>_<distro_version>_deps
+ 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. To install salt, which, of course, is required, one of:
+2. Optionally, define a minion configuration function, which will be called if the
+ ``-c|config-dir`` option is passed. One of:
.. code:: bash
- install_<distro>_<distro_version>_<install_type>
- install_<distro>_<install_type>
+ 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 minion configuration function, which will be called if
- the ``-c|config-dir`` option is passed. One of:
+3. To install salt, which, of course, is required, one of:
.. code:: bash
- config_<distro>_<distro_version>_<install_type>_minion
- config_<distro>_<distro_version>_minion
- config_<distro>_<install_type>_minion
- config_<distro>_minion
- config_minion [THIS ONE IS ALREADY DEFINED AS THE DEFAULT]
+ install_<distro>_<major_version>_<install_type>
+ install_<distro>_<major_version>_<minor_version>_<install_type>
+ install_<distro>_<install_type>
-4. Also optionally, define a post install function, one of:
+4. Optionally, define a post install function, one of:
.. code:: bash
- install_<distro>_<distro_versions>_<install_type>_post
- install_<distro>_<distro_versions>_post
+ 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
+5. 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.
+
+
+----
+
Below is an example for Ubuntu Oneiric:
.. code:: bash
- install_ubuntu_1110_deps() {
+ 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_1110_post() {
+ 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
-Since there is no ``install_ubuntu_1110_stable()`` it defaults to the
-unspecified version script.
+ # 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
-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.
+ 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.
+
Supported Operating Systems
---------------------------
- Ubuntu 10.x/11.x/12.x
- Debian 6.x
-- CentOS 6.3
+- CentOS 5/6
+- Red Hat 5/6
+- Red Hat Enterprise 5/6
- Fedora
- Arch
- FreeBSD 9.0
-
+- SmartOS
+- SuSE 11 SP1/11 SP2
+- OpenSUSE 12.x
.. _`Salt`: http://saltstack.org/
.. vim: fenc=utf-8 spell spl=en cc=100 tw=99 fo=want sts=2 sw=2 et