#!/usr/bin/env bash # Install salt # ascii/stretch version 2016.11.2+ds-1 # ceres version 2017.7.1+ds-1 # saltstack repo version 2017.7.1+ds-1 # Debian 11 (Bullseye): # sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/11/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg # echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/11/amd64/latest bullseye main" | sudo tee /etc/apt/sources.list.d/salt.list #DEBIAN_VERSION=8 #DEBIAN_RELEASE=jessie #DEBIAN_VERSION=11 #DEBIAN_RELEASE=bullseye ARCH="amd64" DEBIAN_VERSION=12 DEBIAN_RELEASE=bookworm SALT_VERSION=latest REFRESHED_AT=2024-09-09 mkdir -p /etc/apt/sources.list-available KEY_DIR="/etc/apt/trusted.gpg.d" # if you don't want to have signed-by in the sources.list # KEY_DIR="/etc/apt/keyrings" mkdir -p ${KEY_DIR} # sudo curl -fsSL -o ${KEY_DIR}/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/${DEBIAN_VERSION}/${ARCH}/latest/salt-archive-keyring.gpg sudo curl -fsSL -o ${KEY_DIR}/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/${DEBIAN_VERSION}/${ARCH}/SALT-PROJECT-GPG-PUBKEY-2023.gpg # NB Packages now have dh-systemd deps and --with-systemd treat as debian upstream echo "#sudo curl -fsSL -o ${KEY_DIR}/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/${DEBIAN_VERSION}/${ARCH}/latest/salt-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/salt.list # echo "deb [signed-by=${KEY_DIR}/salt-archive-keyring.gpg arch=${ARCH}] https://repo.saltproject.io/py3/debian/${DEBIAN_VERSION}/${ARCH}/latest ${DEBIAN_RELEASE} main" | sudo tee /etc/apt/sources.list.d/salt.list echo "deb [signed-by=${KEY_DIR}/salt-archive-keyring-2023.gpg arch=${ARCH}] https://repo.saltproject.io/salt/py3/debian/${DEBIAN_VERSION}/${ARCH}/latest ${DEBIAN_RELEASE} main" | sudo tee /etc/apt/sources.list-available/saltstack-${DEBIAN_RELEASE}.list ln -sf /etc/apt/sources.list-available/saltstack-${DEBIAN_RELEASE}.list /etc/apt/sources.list.d/saltstack-${DEBIAN_RELEASE}.list # Upgrade The System apt update && apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade -y # salt-api - Generic, modular network access system # salt-cloud - public cloud VM management system # salt-common - shared libraries that salt requires for all packages # salt-doc - additional documentation for salt, the distributed remote execution system # salt-master - remote manager to administer servers via salt # salt-minion - client package for salt, the distributed remote execution system # salt-proxy - Proxy client package for salt stack # salt-ssh - remote manager to administer servers via Salt SSH # salt-syndic - master-of-masters for salt, the distributed remote execution system # salt-formula-kubernetes - Salt formula for Kubernetes # salt-formula-ceilometer - Salt formula for OpenStack Ceilometer # salt-formula-cinder - Salt formula for OpenStack Cinder # salt-formula-glance - Salt formula for OpenStack Glance # salt-formula-heat - Salt formula for OpenStack Heat # salt-formula-horizon - Salt formula for OpenStack Horizon # salt-formula-keystone - Salt formula for OpenStack Keystone # salt-formula-neutron - Salt formula for OpenStack Neutron # salt-formula-nova - Salt formula for OpenStack Nova # salt-formula-swift - Salt formula for OpenStack Swift # Install Salt Dependencies apt install -y -o "Dpkg::Options::=--force-confold" \ python \ apt-utils \ software-properties-common \ python-yaml \ python-m2crypto \ python-crypto \ python-msgpack \ python-zmq \ python2.7-doc \ python-jinja2 \ python-requests apt install -y salt-minion # Salt-master apt install -yq -o -o "Dpkg::Options::=--force-confold" --no-install-recommends \ salt-master \ salt-minion \ salt-ssh \ salt-syndic \ salt-cloud \ salt-api \ reclass \ python-apt \ python-git \ python-openssl \ python-cherrypy3 \ git \ openssh-client \ make # Or get the development version # apt upgrade -y -o "Dpkg::Options::=--force-confold" && \ # apt install -y -o "Dpkg::Options::=--force-confold" curl # curl -L https://bootstrap.saltstack.com | sh -s -- -X git develop # salt-common in debian is missing zsh completions # source: http://github.com/saltstack/salt/tree/develop/pkg/ *.{bash,zsh} # FYI: completition provided by salt-common pkg test -e /usr/share/bash-completion/completions/salt-common || \ curl -sL "https://raw.githubusercontent.com/saltstack/salt/develop/pkg/salt.bash" | tee /usr/share/bash-completion/completions/salt-common test -e /usr/share/zsh/vendor-completions/_salt || \ curl -sL "https://raw.githubusercontent.com/saltstack/salt/develop/pkg/zsh_completion.zsh" | tee /usr/share/zsh/vendor-completions/_salt