infra/deploy.sh

38 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
CMD="ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook recette.yml"
REMOTE=false
for arg in "$@"; do
if [[ $arg = "remote" ]]; then
REMOTE=true
CMD="$CMD -i hosts"
fi
if [[ $arg = "check" ]]; then
CMD="$CMD --syntax-check"
fi
if [[ $arg = "debug" ]]; then
CMD="$CMD -vvv"
fi
done
if [[ $REMOTE = false ]]; then
# Sécurité pour empêcher une personne d'appliquer par erreur le playbook de ~fr sur son propre serveur
# Si le hostname dans config.yml est configuré pour fr.tild3.org mais que /etc/hostname n'est pas "fr",
# alors on ne fait rien... sauf bien sûr en mode remote.
grep -E "^hostname:.*?fr.tild3.org.*?$" config.yml > /dev/null
FR=$?
if [[ "$(cat /etc/hostname)" != "fr" ]] && [[ $FR = 0 ]]; then
echo "ERREUR DE CONFIGURATION"
echo " Tu essayes d'appliquer la recette avec la configuration du serveur ~fr (hostname: fr.tild3.org), pourtant il semblerait que ce serveur n'est pas ~fr car /etc/hostname dit le contraire."
echo " Pour configurer ton serveur, tu peux repartir du fichier d'exemple config.default.yml: \`cp config.default.yml config.yml\`. Voir le manuel d'administration dans le ficher \`docs/administrateurice.md\`."
exit 1
fi
CMD="$CMD --connection=local --inventory 127.0.0.1, --limit 127.0.0.1"
fi
eval $CMD