54 lines
2.1 KiB
Bash
Executable file
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)"
|