Nasazení na server: Proxmox LXC a Docker #13

Merged
david-spacil merged 4 commits from agents/claude/nasazeni into main 2026-08-22 21:32:13 +02:00
Showing only changes of commit 861470da55 - Show all commits
+24 -9
View File
@@ -40,6 +40,10 @@ VERSION="${VERSION:-}" # prázdné = poslední vydání
# --- výpisy ------------------------------------------------------------------ # --- výpisy ------------------------------------------------------------------
# Bez tohohle Ctrl+C zabije jen rozdělaný podproces a skript jede vesele dál
# — třeba rovnou zakládat kontejner, na který se čekat nemá.
trap 'echo; echo -e "\e[1;31m ✗\e[0m Přerušeno." >&2; exit 130' INT TERM
msg() { echo -e "\e[1;34m →\e[0m $*"; } msg() { echo -e "\e[1;34m →\e[0m $*"; }
ok() { echo -e "\e[1;32m ✓\e[0m $*"; } ok() { echo -e "\e[1;32m ✓\e[0m $*"; }
die() { echo -e "\e[1;31m ✗\e[0m $*" >&2; exit 1; } die() { echo -e "\e[1;31m ✗\e[0m $*" >&2; exit 1; }
@@ -215,7 +219,7 @@ hotovo() {
echo -e " \e[2mDatabáze: /var/lib/kostky/dice.db (uvnitř kontejneru)" echo -e " \e[2mDatabáze: /var/lib/kostky/dice.db (uvnitř kontejneru)"
echo -e " Log: pct exec $ctid -- journalctl -u kostky -f" echo -e " Log: pct exec $ctid -- journalctl -u kostky -f"
echo -e " Konzole: pct enter $ctid" echo -e " Konzole: pct enter $ctid"
echo -e " Zrušit: pct stop $ctid \&\& pct destroy $ctid\e[0m" echo -e " Zrušit: pct stop $ctid && pct destroy $ctid\e[0m"
echo echo
} }
@@ -272,17 +276,28 @@ fi
CTID="${CTID:-$(pvesh get /cluster/nextid)}" CTID="${CTID:-$(pvesh get /cluster/nextid)}"
msg "Kontejner dostane číslo $CTID" msg "Kontejner dostane číslo $CTID"
msg "Hledám šablonu Debianu $OSVERSION" # Architektura uzlu, ne první šablona v seznamu. pveam nabízí amd64 i arm64
pveam update >/dev/null 2>&1 || true # vedle sebe a bez tohohle filtru by výběr padl na tu abecedně poslední.
TEMPLATE=$(pveam available --section system \ ARCH=$(dpkg --print-architecture)
| awk '{print $2}' | grep "^debian-${OSVERSION}-standard" | sort -V | tail -1) SABLONA="debian-${OSVERSION}-standard[^[:space:]]*_${ARCH}\.tar\.[a-z]*"
[ -n "$TEMPLATE" ] || die "Šablona pro Debian $OSVERSION není k dispozici."
msg "Hledám šablonu Debianu $OSVERSION pro $ARCH"
# Nejdřív co už na uzlu leží — stahovat 120 MB znovu je zbytečné.
TEMPLATE=$(pveam list "$TEMPLATE_STORAGE" 2>/dev/null | grep -o "$SABLONA" | sort -V | tail -1)
if [ -n "$TEMPLATE" ]; then
ok "Šablona $TEMPLATE (už je na uzlu)"
else
pveam update >/dev/null 2>&1 || true
TEMPLATE=$(pveam available --section system 2>/dev/null | grep -o "$SABLONA" | sort -V | tail -1)
[ -n "$TEMPLATE" ] || die "Šablona pro Debian $OSVERSION a $ARCH není k dispozici."
if ! pveam list "$TEMPLATE_STORAGE" 2>/dev/null | grep -q "$TEMPLATE"; then
msg "Stahuji $TEMPLATE (asi 120 MB, chvíli to trvá)" msg "Stahuji $TEMPLATE (asi 120 MB, chvíli to trvá)"
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null \
|| die "Stažení šablony selhalo."
ok "Šablona $TEMPLATE"
fi fi
ok "Šablona $TEMPLATE"
msg "Zakládám kontejner" msg "Zakládám kontejner"
pct create "$CTID" "$TEMPLATE_STORAGE:vztmpl/$TEMPLATE" \ pct create "$CTID" "$TEMPLATE_STORAGE:vztmpl/$TEMPLATE" \