diff --git a/README.rst b/README.rst index 5083d16..6eb2b7b 100644 --- a/README.rst +++ b/README.rst @@ -216,8 +216,8 @@ Debian and derivatives .. note:: Installation of Salt packages on Debian 8 based distribution from repo.saltstack.com repository - is currently supported for ``amd64`` (``x86-64``) and ``armhf`` architechtures ONLY. Use ``git`` - bootstrap mode as described above to install Salt on other architechtures, such as ``i386`` or + is currently supported for ``amd64`` (``x86-64``) and ``armhf`` architectures ONLY. Use ``git`` + bootstrap mode as described above to install Salt on other architectures, such as ``i386`` or ``armel``. You also may need to disable repository configuration and allow ``pip`` installations by providing ``-r`` and ``-P`` options to the bootstrap script, i.e.: @@ -251,9 +251,22 @@ Ubuntu and derivatives - Elementary OS 0.2 (based on Ubuntu 12.04) - Linaro 12.04 -- Linux Mint 13/14/16/17/18 +- Linux Mint 13/17/18 - Trisquel GNU/Linux 6 (based on Ubuntu 12.04) -- Ubuntu 10.x/11.x/12.x/13.x/14.x/15.x/16.04 +- Ubuntu 12.04/14.04/16.04 + +Ubuntu Best Effort Support: Non-LTS Releases +******************************************** + +This script provides best-effort support for current, non-LTS Ubuntu releases. If package +repositories are not provided on `SaltStack's Ubuntu repository`_ for the non-LTS release, the +bootstrap script will attempt to install the packages for the most closely related LTS Ubuntu +release instead. + +For example, when installing Salt on Ubuntu 16.10, the bootstrap script will setup the repository +for Ubuntu 16.04 from `SaltStack's Ubuntu repository`_ and install the 16.04 packages. + +.. _`SaltStack's Ubuntu repository`: http://repo.saltstack.com/#ubuntu Other Linux distro diff --git a/bootstrap-salt.sh b/bootstrap-salt.sh index 919b701..9253b80 100755 --- a/bootstrap-salt.sh +++ b/bootstrap-salt.sh @@ -1201,12 +1201,6 @@ __ubuntu_derivatives_translation() { # Mappings trisquel_6_ubuntu_base="12.04" linuxmint_13_ubuntu_base="12.04" - linuxmint_14_ubuntu_base="12.10" - #linuxmint_15_ubuntu_base="13.04" - # Bug preventing add-apt-repository from working on Mint 15: - # https://bugs.launchpad.net/linuxmint/+bug/1198751 - - linuxmint_16_ubuntu_base="13.10" linuxmint_17_ubuntu_base="14.04" linuxmint_18_ubuntu_base="16.04" linaro_12_ubuntu_base="12.04" @@ -1264,13 +1258,6 @@ __ubuntu_codename_translation() { "14") DISTRO_CODENAME="trusty" ;; - "15") - if [ -n "$_april" ]; then - DISTRO_CODENAME="vivid" - else - DISTRO_CODENAME="wily" - fi - ;; "16") if [ "$_april" ]; then DISTRO_CODENAME="xenial" @@ -1711,7 +1698,12 @@ __check_end_of_life_versions() { # Ubuntu versions not supported # # < 12.04 - if [ "$DISTRO_MAJOR_VERSION" -lt 12 ]; then + # 13.x, 15.x + # 12.10, 14.10 + if [ "$DISTRO_MAJOR_VERSION" -lt 12 ] || \ + [ "$DISTRO_MAJOR_VERSION" -eq 13 ] || \ + [ "$DISTRO_MAJOR_VERSION" -eq 15 ] || \ + ([ "$DISTRO_MAJOR_VERSION" -lt 16 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]); then echoerror "End of life distributions are not supported." echoerror "Please consider upgrading to the next stable. See:" echoerror " https://wiki.ubuntu.com/Releases" @@ -2306,23 +2298,13 @@ __enable_universe_repository() { echodebug "Enabling the universe repository" - # Ubuntu versions higher than 12.04 do not live in the old repositories - if [ "$DISTRO_MAJOR_VERSION" -gt 12 ] || ([ "$DISTRO_MAJOR_VERSION" -eq 12 ] && [ "$DISTRO_MINOR_VERSION" -gt 04 ]); then - add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" || return 1 - elif [ "$DISTRO_MAJOR_VERSION" -lt 11 ] && [ "$DISTRO_MINOR_VERSION" -lt 10 ]; then - # Below Ubuntu 11.10, the -y flag to add-apt-repository is not supported - add-apt-repository "deb http://old-releases.ubuntu.com/ubuntu $(lsb_release -sc) universe" || return 1 - else - add-apt-repository -y "deb http://old-releases.ubuntu.com/ubuntu $(lsb_release -sc) universe" || return 1 - fi - - add-apt-repository -y "deb http://old-releases.ubuntu.com/ubuntu $(lsb_release -sc) universe" || return 1 + add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" || return 1 return 0 } install_ubuntu_deps() { - if [ "$DISTRO_MAJOR_VERSION" -gt 12 ] || ([ "$DISTRO_MAJOR_VERSION" -eq 12 ] && [ "$DISTRO_MINOR_VERSION" -eq 10 ]); then + if [ "$DISTRO_MAJOR_VERSION" -gt 12 ]; then # Above Ubuntu 12.04 add-apt-repository is in a different package __apt_get_install_noinput software-properties-common || return 1 else @@ -2336,18 +2318,10 @@ install_ubuntu_deps() { if [ "$(echo "$STABLE_REV" | egrep '^(2015\.5|2015\.8|2016\.3|2016\.11|latest|archive\/)')" = "" ]; then if [ "$DISTRO_MAJOR_VERSION" -lt 14 ]; then echoinfo "Installing Python Requests/Chardet from Chris Lea's PPA repository" - if [ "$DISTRO_MAJOR_VERSION" -gt 11 ] || ([ "$DISTRO_MAJOR_VERSION" -eq 11 ] && [ "$DISTRO_MINOR_VERSION" -gt 04 ]); then - # Above Ubuntu 11.04 add a -y flag - add-apt-repository -y "ppa:chris-lea/python-requests" || return 1 - add-apt-repository -y "ppa:chris-lea/python-chardet" || return 1 - add-apt-repository -y "ppa:chris-lea/python-urllib3" || return 1 - add-apt-repository -y "ppa:chris-lea/python-crypto" || return 1 - else - add-apt-repository "ppa:chris-lea/python-requests" || return 1 - add-apt-repository "ppa:chris-lea/python-chardet" || return 1 - add-apt-repository "ppa:chris-lea/python-urllib3" || return 1 - add-apt-repository "ppa:chris-lea/python-crypto" || return 1 - fi + add-apt-repository -y "ppa:chris-lea/python-requests" || return 1 + add-apt-repository -y "ppa:chris-lea/python-chardet" || return 1 + add-apt-repository -y "ppa:chris-lea/python-urllib3" || return 1 + add-apt-repository -y "ppa:chris-lea/python-crypto" || return 1 fi fi @@ -2358,7 +2332,7 @@ install_ubuntu_deps() { # Minimal systems might not have upstart installed, install it __PACKAGES="upstart" - if [ "$DISTRO_MAJOR_VERSION" -ge 15 ]; then + if [ "$DISTRO_MAJOR_VERSION" -ge 16 ]; then __PACKAGES="${__PACKAGES} python2.7" fi if [ "$_VIRTUALENV_DIR" != "null" ]; then @@ -2389,7 +2363,7 @@ install_ubuntu_deps() { } install_ubuntu_stable_deps() { - if ([ "${_SLEEP}" -eq "${__DEFAULT_SLEEP}" ] && [ "$DISTRO_MAJOR_VERSION" -lt 15 ]); then + if [ "${_SLEEP}" -eq "${__DEFAULT_SLEEP}" ] && [ "$DISTRO_MAJOR_VERSION" -lt 16 ]; then # The user did not pass a custom sleep value as an argument, let's increase the default value echodebug "On Ubuntu systems we increase the default sleep value to 10." echodebug "See https://github.com/saltstack/salt/issues/12248 for more info." @@ -2434,10 +2408,10 @@ install_ubuntu_stable_deps() { # Versions starting with 2015.5.6, 2015.8.1 and 2016.3.0 are hosted at repo.saltstack.com if [ "$(echo "$STABLE_REV" | egrep '^(2015\.5|2015\.8|2016\.3|2016\.11|latest|archive\/)')" != "" ]; then # Workaround for latest non-LTS ubuntu - if [ "$DISTRO_MAJOR_VERSION" -eq 15 ]; then + if [ "$DISTRO_VERSION" = "16.10" ]; then echowarn "Non-LTS Ubuntu detected, but stable packages requested. Trying packages from latest LTS release. You may experience problems." - UBUNTU_VERSION=14.04 - UBUNTU_CODENAME=trusty + UBUNTU_VERSION=16.04 + UBUNTU_CODENAME=xenial else UBUNTU_VERSION=$DISTRO_VERSION UBUNTU_CODENAME=$DISTRO_CODENAME @@ -2463,12 +2437,7 @@ install_ubuntu_stable_deps() { STABLE_PPA="saltstack/salt" fi - if [ "$DISTRO_MAJOR_VERSION" -gt 11 ] || ([ "$DISTRO_MAJOR_VERSION" -eq 11 ] && [ "$DISTRO_MINOR_VERSION" -gt 04 ]); then - # Above Ubuntu 11.04 add a -y flag - add-apt-repository -y "ppa:$STABLE_PPA" || return 1 - else - add-apt-repository "ppa:$STABLE_PPA" || return 1 - fi + add-apt-repository -y "ppa:$STABLE_PPA" || return 1 fi apt-get update @@ -2480,24 +2449,17 @@ install_ubuntu_stable_deps() { install_ubuntu_daily_deps() { install_ubuntu_stable_deps || return 1 - if [ "$DISTRO_MAJOR_VERSION" -ge 12 ]; then - # Above Ubuntu 11.10 add-apt-repository is in a different package + if [ "$DISTRO_MAJOR_VERSION" -gt 12 ]; then __apt_get_install_noinput software-properties-common || return 1 else + # Ubuntu 12.04 needs python-software-properties to get add-apt-repository binary __apt_get_install_noinput python-software-properties || return 1 fi if [ $_DISABLE_REPOS -eq $BS_FALSE ]; then __enable_universe_repository || return 1 - # for anything up to and including 11.04 do not use the -y option - if [ "$DISTRO_MAJOR_VERSION" -gt 11 ] || ([ "$DISTRO_MAJOR_VERSION" -eq 11 ] && [ "$DISTRO_MINOR_VERSION" -gt 04 ]); then - # Above Ubuntu 11.04 add a -y flag - add-apt-repository -y ppa:saltstack/salt-daily || return 1 - else - add-apt-repository ppa:saltstack/salt-daily || return 1 - fi - + add-apt-repository -y ppa:saltstack/salt-daily || return 1 apt-get update fi @@ -2601,12 +2563,6 @@ install_ubuntu_git() { } install_ubuntu_stable_post() { - # Workaround for latest LTS packages on latest ubuntu. Normally packages on - # debian-based systems will automatically start the corresponding daemons - if [ "$DISTRO_MAJOR_VERSION" -lt 15 ]; then - return 0 - fi - for fname in api master minion syndic; do # Skip salt-api since the service should be opt-in and not necessarily started on boot [ $fname = "api" ] && continue @@ -2639,7 +2595,7 @@ install_ubuntu_git_post() { [ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue [ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue - if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 15 ]; then + if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 16 ]; then __copyfile "${_SALT_GIT_CHECKOUT_DIR}/pkg/deb/salt-${fname}.service" "/lib/systemd/system/salt-${fname}.service" # Skip salt-api since the service should be opt-in and not necessarily started on boot @@ -2684,7 +2640,7 @@ install_ubuntu_restart_daemons() { [ $_START_DAEMONS -eq $BS_FALSE ] && return # Ensure upstart configs / systemd units are loaded - if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 15 ]; then + if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 16 ]; then systemctl daemon-reload elif [ -f /sbin/initctl ]; then /sbin/initctl reload-configuration @@ -2699,7 +2655,7 @@ install_ubuntu_restart_daemons() { [ $fname = "minion" ] && [ "$_INSTALL_MINION" -eq $BS_FALSE ] && continue [ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue - if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 15 ]; then + if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 16 ]; then echodebug "There's systemd support while checking salt-$fname" systemctl stop salt-$fname > /dev/null 2>&1 systemctl start salt-$fname.service @@ -2743,7 +2699,7 @@ install_ubuntu_check_services() { [ $fname = "master" ] && [ "$_INSTALL_MASTER" -eq $BS_FALSE ] && continue [ $fname = "syndic" ] && [ "$_INSTALL_SYNDIC" -eq $BS_FALSE ] && continue - if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 15 ]; then + if [ -f /bin/systemctl ] && [ "$DISTRO_MAJOR_VERSION" -ge 16 ]; then __check_services_systemd salt-$fname || return 1 elif [ -f /sbin/initctl ] && [ -f /etc/init/salt-${fname}.conf ]; then __check_services_upstart salt-$fname || return 1