automate/010_saltstack.sh

121 lines
4.8 KiB
Bash
Executable File

#!/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