La commande deploy.sh s'applique localement par défaut

This commit is contained in:
southerntofu 2020-04-15 17:10:38 +00:00
parent c20e7a9986
commit cef276c076
2 changed files with 13 additions and 7 deletions

View File

@ -1,10 +1,14 @@
#!/bin/bash
CMD="ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook -i hosts recette.yml"
CMD="ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook recette.yml"
if [[ $# = 0 ]]; then
CMD="$CMD --connection=local --inventory 127.0.0.1, --limit 127.0.0.1"
fi
for arg in "$@"; do
if [[ $arg = "local" ]]; then
CMD="$CMD --connection=local --inventory 127.0.0.1, --limit 127.0.0.1"
if [[ $arg = "remote" ]]; then
CMD="$CMD -i hosts"
fi
if [[ $arg = "check" ]]; then
CMD="$CMD --syntax-check"

View File

@ -88,18 +88,20 @@ $ cp config.default.yml config.yml
Pour une configuration minimale, il faut au moins changer le hostname (en mettant ton nom de domaine) et la clé SSH (voire le nom) de l'utilisateurice. Le reste de la configuration est décrit dans la section [Configuration](#configuration).
Enfin, pour appliquer les changements, il faut lancer le playbook ansible. On utilise pour cela le script deploy.sh. Par défaut, il lance le playbook vers le serveur défini dans le fichier hosts. Si un argument `local` est trouvé, alors le playbook est exécuté localement.
Enfin, pour appliquer les changements, il faut lancer le playbook ansible. On utilise pour cela le script deploy.sh. Par défaut, la recette est appliquée localement et il faut donc la lancer en root. Si un argument "remote" est trouvé, alors la recette est exécuté sur le serveur défini dans le fichier hosts.
```
# Exécuter la recette à distance
user@client:~/infra $ ./deploy.sh
user@client:~/infra $ ./deploy.sh remote
...
# Appliquer la recette localement
root@server:~/infra $ ./deploy.sh local
root@server:~/infra $ ./deploy.sh
```
Additionnellement, deploy.sh accepte un argument `check` qui déclenche une simple vérification de la syntaxe Ansible. En résumé :
```
deploy.sh [local|check] [local|check]
deploy.sh [remote|check] [remote|check]
check: vérifie la syntaxe ansible
remote: applique la recette sur un serveur distant (défini dans ./hosts)
```