alliance-boreale/site-alliance-boreale/deploy/deployer.sh
Dan Allaire a0655d2e45
Some checks failed
CI / yaml-lint (pull_request) Has been cancelled
CI / ssot-export (pull_request) Has been cancelled
CI / tests (pull_request) Has been cancelled
CI / docs (pull_request) Has been cancelled
site web
2026-06-25 18:45:42 -04:00

54 lines
2.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# =============================================================================
# Déploiement du site Alliance Boréale vers web-frontal-01 (ou tout hôte nginx).
#
# Synchronise public/ vers la racine web distante, puis (optionnel) recharge
# nginx. N'embarque aucun secret. À lancer depuis votre poste.
#
# ./deploy/deployer.sh # déploie avec les valeurs par défaut
# HOTE=web-frontal-01 ./deploy/deployer.sh
# RACINE=/var/www/alliance-boreale UTILISATEUR=ansible ./deploy/deployer.sh
# RECHARGER_NGINX=1 ./deploy/deployer.sh # recharge nginx après copie
# DRY_RUN=1 ./deploy/deployer.sh # simulation, ne copie rien
# =============================================================================
set -euo pipefail
# --- Paramètres (surcharger par variables d'environnement) ------------------
HOTE="${HOTE:-web-frontal-01}"
UTILISATEUR="${UTILISATEUR:-ansible}"
RACINE="${RACINE:-/var/www/alliance-boreale}"
PORT_SSH="${PORT_SSH:-22}"
RECHARGER_NGINX="${RECHARGER_NGINX:-0}"
DRY_RUN="${DRY_RUN:-0}"
# --- Emplacements -----------------------------------------------------------
ICI="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SOURCE="${ICI}/public/"
if [[ ! -d "${SOURCE}" ]]; then
echo "ERREUR : dossier source introuvable : ${SOURCE}" >&2
exit 1
fi
CIBLE="${UTILISATEUR}@${HOTE}:${RACINE}/"
OPTS_RSYNC=(-az --delete --human-readable --itemize-changes
--exclude ".DS_Store" --exclude "*.swp")
[[ "${DRY_RUN}" == "1" ]] && OPTS_RSYNC+=(--dry-run)
echo "==> Source : ${SOURCE}"
echo "==> Cible : ${CIBLE} (port SSH ${PORT_SSH})"
[[ "${DRY_RUN}" == "1" ]] && echo "==> MODE SIMULATION (aucune écriture)"
echo
rsync "${OPTS_RSYNC[@]}" -e "ssh -p ${PORT_SSH}" "${SOURCE}" "${CIBLE}"
if [[ "${RECHARGER_NGINX}" == "1" && "${DRY_RUN}" != "1" ]]; then
echo
echo "==> Vérification et rechargement de nginx sur ${HOTE}"
ssh -p "${PORT_SSH}" "${UTILISATEUR}@${HOTE}" 'sudo nginx -t && sudo systemctl reload nginx'
fi
echo
echo "==> Terminé."
[[ "${DRY_RUN}" == "1" ]] && echo " (simulation — relancer sans DRY_RUN=1 pour déployer pour de vrai)"