salt-public/install-minion.sh
cynfo3000 3509e8d8bb Initial: Salt Minion Installationsskript
- install-minion.sh: Automatische Minion-Installation mit Kundennummer
- Keine sensiblen Daten (keine internen IPs, keine Credentials)
2026-02-22 20:00:56 +00:00

65 lines
1.7 KiB
Bash

#!/bin/bash
# Salt Minion Installation fuer cynfo-Kundenserver
# Verwendung: bash install-minion.sh <KUNDENNUMMER>
# Beispiel: bash install-minion.sh K100163
set -e
KUNDE=$1
SALT_MASTER="salt.cynfo.net"
if [ -z "$KUNDE" ]; then
echo "Fehler: Kundennummer angeben!"
echo "Verwendung: bash install-minion.sh <KUNDENNUMMER>"
echo "Beispiel: bash install-minion.sh K100163"
exit 1
fi
echo "=== Salt Minion Installation ==="
echo "Kunde: $KUNDE"
echo "Salt Master: $SALT_MASTER"
echo "Hostname: $(hostname)"
echo ""
# Detect OS
if [ -f /etc/debian_version ]; then
OS="debian"
echo "OS: Debian/Ubuntu erkannt"
elif [ -f /etc/redhat-release ]; then
OS="rhel"
echo "OS: RHEL/CentOS erkannt"
else
echo "Fehler: Unbekanntes OS"
exit 1
fi
# Install Salt Minion
if [ "$OS" = "debian" ]; then
apt-get install -y gnupg2 curl >/dev/null 2>&1
curl -fsSL https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public | gpg --dearmor -o /etc/apt/keyrings/salt-archive-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/salt-archive-keyring.gpg] https://packages.broadcom.com/artifactory/saltproject-deb/ stable main' > /etc/apt/sources.list.d/salt.list
apt-get update >/dev/null 2>&1
apt-get install -y salt-minion
fi
# Configure Master
cat > /etc/salt/minion.d/master.conf << EOF
master: $SALT_MASTER
EOF
# Set Grains (Kundennummer)
cat > /etc/salt/grains << EOF
kunde: $KUNDE
EOF
# Restart Minion
systemctl enable salt-minion
systemctl restart salt-minion
echo ""
echo "=== Fertig ==="
echo "Minion installiert und gestartet."
echo "Grain 'kunde: $KUNDE' gesetzt."
echo ""
echo "Naechster Schritt: Salt Master kontaktieren fuer Key-Akzeptanz."