76 lines
2.1 KiB
Bash
76 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
log() {
|
||
printf '[worker-setup] %s\n' "$*"
|
||
}
|
||
|
||
require_root() {
|
||
if [[ $EUID -ne 0 ]]; then
|
||
echo "Bitte als root (oder via sudo) ausführen." >&2
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
install_packages() {
|
||
log "Aktualisiere Paketquellen …"
|
||
apt-get update
|
||
|
||
log "Installiere Basis-Python-Umgebung …"
|
||
apt-get install -y --no-install-recommends \
|
||
python3 python3-pip python3-venv
|
||
|
||
log "Installiere Datentransfer-Tools …"
|
||
apt-get install -y --no-install-recommends \
|
||
qemu-utils curl wget python3-boto3 zip unzip tar s3cmd
|
||
|
||
log "Installiere Windows-OS-Morphing-Werkzeuge …"
|
||
apt-get install -y --no-install-recommends \
|
||
ntfs-3g chntpw parted kpartx
|
||
|
||
log "Installiere Linux-OS-Morphing-Werkzeuge …"
|
||
apt-get install -y --no-install-recommends \
|
||
lvm2 dracut
|
||
|
||
log "Bereinige APT-Caches …"
|
||
apt-get clean
|
||
}
|
||
|
||
# install_stackit_agent() {
|
||
# local agent_pkg_url="${STACKIT_AGENT_URL:-}"
|
||
# if [[ -z $agent_pkg_url ]]; then
|
||
# log "STACKIT_AGENT_URL nicht gesetzt – überspringe Agent-Installation (bitte manuell nachziehen)."
|
||
# return
|
||
# fi
|
||
|
||
# # Der STACKIT Agent ist Voraussetzung für Run-Command v2 – ohne ihn kann der Provider keine Skripte auf der Worker-VM starten.
|
||
# log "Lade STACKIT Agent von ${agent_pkg_url} …"
|
||
# local tmpdir
|
||
# tmpdir=$(mktemp -d)
|
||
# trap 'rm -rf "$tmpdir"' EXIT
|
||
|
||
# curl -fsSL "$agent_pkg_url" -o "$tmpdir/stackit-agent.deb"
|
||
# log "Installiere STACKIT Agent …"
|
||
# apt-get install -y "$tmpdir/stackit-agent.deb"
|
||
|
||
# log "Aktiviere und starte Stackit-Agent-Dienst …"
|
||
# systemctl enable --now stackit-agent.service
|
||
# systemctl status stackit-agent.service --no-pager
|
||
# }
|
||
|
||
configure_cloud_init() {
|
||
log "Stelle sicher, dass cloud-init aktiviert ist …"
|
||
systemctl enable cloud-init.service || true
|
||
systemctl enable cloud-init-local.service || true
|
||
}
|
||
|
||
main() {
|
||
require_root
|
||
install_packages
|
||
# install_stackit_agent
|
||
configure_cloud_init
|
||
log "Worker-VM-Grundkonfiguration abgeschlossen."
|
||
log "Bitte VM herunterfahren und als Image/Snapshot speichern."
|
||
}
|
||
|
||
main "$@"
|