From 64438d64e68aca13369871cf7d94f46045bd51fa Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Fri, 14 Aug 2026 13:47:00 +0200 Subject: [PATCH] f-37: script: clean commentaries Signed-off-by: GnomeZworc --- scripts/deploy.sh | 71 ----------------------------------------------- 1 file changed, 71 deletions(-) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 780dd00..29b74c8 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -11,7 +11,6 @@ esac SCRIPT_PATH="scripts/deploy.sh" UNIT_DIR="/etc/systemd/system" -# Copies locales des scripts de bootstrap, déposées à la main sur l'host. SCRIPTS_DIR="/opt/two/scripts" info () { echo "== ${1}"; } @@ -33,10 +32,6 @@ exec_with_dry_run () { return 0 } -# `set -e` est inopérant dans main : bash désactive errexit dans le corps d'une -# fonction appelée depuis une liste `||` (cf. dernières lignes du fichier), y -# compris dans les fonctions qu'elle appelle. Les étapes qui ne doivent pas -# échouer silencieusement passent donc par run(). run () { exec_with_dry_run "${1}" "${2}" || die "échec : ${2}" } @@ -52,8 +47,6 @@ check_latest_script () { return 0 } -# Liste les units actives correspondant à un motif, une par ligne. -# Sortie vide si aucune ne tourne — ce n'est pas une erreur. list_active_units () { PATTERN="${1}" systemctl list-units --state=active --no-legend --plain "${PATTERN}" 2>/dev/null \ @@ -72,9 +65,6 @@ profile_main_units () { done } -# Instances actives des templates du profil (dnsmasq@vpc_br, metadata@i-xxx). -# À relever AVANT l'arrêt : c'est la seule façon de savoir lesquelles -# redémarrer ensuite. active_instances () { for unit in $(profile_units "${1}") do @@ -89,8 +79,6 @@ stop_services () { PROFILE="${2}" INSTANCES="${3}" - # Les units principales en premier : sur le profil kvm, l'agent pilote les - # autres units, on ne veut pas qu'il observe leur disparition. for unit in $(profile_main_units "${PROFILE}") do run "${DRY_RUN}" "systemctl stop '${unit}'" @@ -107,9 +95,6 @@ start_services () { PROFILE="${2}" INSTANCES="${3}" - # Ordre inverse de l'arrêt : les dépendances d'abord, les units principales - # en dernier. Une instance qui refuse de repartir (VM disparue entre-temps) - # ne doit pas empêcher le redémarrage de l'agent, d'où le simple warn. for unit in ${INSTANCES} do exec_with_dry_run "${DRY_RUN}" "systemctl start '${unit}'" \ @@ -122,17 +107,6 @@ start_services () { done } -# ------------------------------------------------------------------- profils -# -# Un profil décrit ce qu'un host doit recevoir : ses units systemd, ses -# exécutables et son script de préparation. Rien n'est déployé qui ne soit -# listé par le profil — un host intel ne reçoit pas l'agent kvm. Ajouter un -# profil = ajouter une branche dans les trois fonctions ci-dessous et livrer un -# bootstrap_.sh exposant bootstrap_host(). -# -# kvm hyperviseur QEMU/KVM : agent + metadata + dnsmasq, bridges, br_netfilter -# intel réservé, non implémenté - profile_units () { case "${1}" in kvm) echo "agent.service dnsmasq@.service metadata@.service" ;; @@ -141,9 +115,6 @@ profile_units () { esac } -# Noms courts des exécutables, tels qu'ils apparaîtront dans /opt/two/bin. -# Un asset de release les porte soit à l'identique (run-dnsmasq-in-netns.sh), -# soit suffixé par la plateforme (agent → agent_linux_amd64). profile_binaries () { case "${1}" in kvm) echo "agent metadata run-dnsmasq-in-netns.sh" ;; @@ -152,9 +123,6 @@ profile_binaries () { esac } -# Script de préparation de l'host, sourcé par run_bootstrap. Vide = le profil -# n'a rien à préparer. Paquets, kernel et réseau appartiennent au profil, pas à -# deploy.sh. profile_bootstrap () { case "${1}" in kvm) echo "bootstrap_kvm.sh" ;; @@ -163,18 +131,6 @@ profile_bootstrap () { esac } -# Charge le script de bootstrap du profil et lui passe la main. -# -# Même logique que ./libs/shflags : copie locale d'abord, dépôt ensuite. -# 1. /opt/two/scripts/ — déposé à la main sur l'host, permet de figer ou -# de patcher un profil sans toucher au dépôt -# 2. la branche demandée — cas courant sur un host neuf -# -# Le fichier ne contenant que des définitions de fonctions, il supporte l'`eval` -# — au contraire de deploy.sh, dont la garde BASH_SOURCE finale déclencherait -# main(). `curl --fail` reste indispensable : sans lui, le corps d'un 404 -# (« Not found. ») serait évalué comme du shell. En cas d'échec, curl ne produit -# rien, l'eval est un no-op et c'est le contrôle de bootstrap_host() qui tranche. run_bootstrap () { DRY_RUN="${1}" PROFILE="${2}" @@ -198,8 +154,6 @@ run_bootstrap () { "${FLAGS_uplink}" "${FLAGS_bridge}" "${FLAGS_pub_bridge}" "${FLAGS_rollback}" } -# ------------------------------------------------------------------- release - resolve_tag () { TAG="${1}" GIT_SERVER="${2}" @@ -209,7 +163,6 @@ resolve_tag () { curl --silent "${GIT_SERVER}api/v1/repos/${REPO_PATH}releases/?limit=1" | jq -r '.[0].tag_name' } -# Assets de la release, un objet JSON compact par ligne. release_assets () { GIT_SERVER="${1}" REPO_PATH="${2}" @@ -218,8 +171,6 @@ release_assets () { curl --silent "${GIT_SERVER}api/v1/repos/${REPO_PATH}releases/tags/${RELEASE_TAG}" | jq -c '.assets[]' } -# Nom complet de l'asset correspondant à un nom court : exact, ou suffixé par la -# plateforme (agent → agent_linux_amd64). Vide si absent de la release. asset_name () { echo "${1}" | jq -r --arg s "${2}" 'select(.name == $s or (.name | startswith($s + "_"))) | .name' | head -1 } @@ -228,9 +179,6 @@ asset_url () { echo "${1}" | jq -r --arg n "${2}" 'select(.name == $n) | .browser_download_url' | head -1 } -# Télécharge dans les répertoires versionnés les seuls assets réclamés par le -# profil. Aucun impact sur les services en cours, donc aucune raison de les -# arrêter pendant ce temps. fetch_assets () { DRY_RUN="${1}" PROFILE="${2}" @@ -259,9 +207,6 @@ fetch_assets () { done } -# Installe les units du profil depuis la release. Les templates (dnsmasq@, -# metadata@) ne sont pas activés : l'agent les instancie au fil des subnets et -# des VMs. install_units () { DRY_RUN="${1}" PROFILE="${2}" @@ -291,8 +236,6 @@ install_units () { done } -# Bascule des liens symboliques, services arrêtés : c'est la seule fenêtre -# d'indisponibilité réelle. switch_binaries () { DRY_RUN="${1}" PROFILE="${2}" @@ -317,8 +260,6 @@ switch_binaries () { start_services "${DRY_RUN}" "${PROFILE}" "${INSTANCES}" } -# ---------------------------------------------------------------------------- - main () { [[ -f ./libs/shflags ]] && . ./libs/shflags || eval "$(curl --silent https://git.g3e.fr/H6N/tools/raw/branch/main/libs/shflags)" @@ -342,14 +283,6 @@ main () { profile_units "${FLAGS_profile}" >/dev/null || die "profil inconnu : ${FLAGS_profile}" - # --noup_script court-circuite la vérification : seul moyen de dérouler un - # script en cours de modification, encore absent de la branche. - # - # L'ancien idiome `check_latest_script || ( ... ; exit 1 )` ne s'arrêtait pas - # réellement : le `exit 1` d'un sous-shell placé en fin de liste `||` est - # ignoré parce qu'errexit est désactivé dans le corps de main. Le script - # s'écrasait puis continuait à exécuter sa version périmée en mémoire. D'où - # le die() explicite. if [[ ${FLAGS_up_script} -eq ${FLAGS_TRUE} ]] then SCRIPT_URL="${FLAGS_git_server}${FLAGS_repo_path}raw/branch/${FLAGS_branch}${SCRIPT_PATH}" @@ -360,8 +293,6 @@ main () { fi fi - # Préparation de l'host avant tout téléchargement : elle ne dépend pas de la - # release, et les paquets comme le réseau conditionnent la suite. [[ ${FLAGS_bootstrap} -eq ${FLAGS_TRUE} ]] && \ run_bootstrap "${FLAGS_dryrun}" "${FLAGS_profile}" "${FLAGS_git_server}" "${FLAGS_repo_path}" "${FLAGS_branch}" @@ -377,8 +308,6 @@ main () { fetch_assets "${FLAGS_dryrun}" "${FLAGS_profile}" "${ASSETS}" - # Les units sont installées avant la bascule : stop_services arrête les - # units principales du profil, qui doivent donc déjà exister. install_units "${FLAGS_dryrun}" "${FLAGS_profile}" switch_binaries "${FLAGS_dryrun}" "${FLAGS_profile}" "${ASSETS}" }