mirror of
https://github.com/YunoHost/yunohost_demo.git
synced 2024-09-03 19:56:44 +02:00
upgrade.d
This commit is contained in:
parent
e3e08575de
commit
018c5a2cbc
4 changed files with 39 additions and 0 deletions
|
@ -30,3 +30,6 @@ Il va alterner toutes les 30 minutes (par défaut) les 2 conteneurs et rétablir
|
|||
## demo_upgrade
|
||||
Ce script est placé en cron par demo_lxc_build.
|
||||
demo_upgrade vérifie chaque nuit les mises à jour sur les conteneurs, et les applique le cas échéant. Si nécessaire, il se charge également de refaire le snapshot.
|
||||
|
||||
Pour effectuer des modifications pérennes sur les conteneurs, il est possible d'ajouter des scripts dans le dossier upgrade.d. Ces scripts seront exécutés après l'upgrade des packages dans chaque conteneur.
|
||||
En cas d'échec d'exécution, le script sera mis de côté en attendant sa correction. Sinon, il sera archivé.
|
||||
|
|
|
@ -14,6 +14,7 @@ PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2
|
|||
TIME_TO_SWITCH=$(cat "$script_dir/demo_lxc_build.sh" | grep TIME_TO_SWITCH= | cut -d '=' -f2)
|
||||
|
||||
IP_UPGRADE=$PLAGE_IP.150
|
||||
LOOP=0
|
||||
|
||||
UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||
MACHINE=$1
|
||||
|
@ -50,6 +51,25 @@ UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
|||
sudo lxc-attach -n $MACHINE -- apt-get autoremove
|
||||
sudo lxc-attach -n $MACHINE -- apt-get autoclean
|
||||
|
||||
# Exécution des scripts de upgrade.d
|
||||
LOOP=$((LOOP + 1))
|
||||
ls -1 "$script_dir/upgrade.d" | while read LIGNE
|
||||
do
|
||||
if [ ! "$LIGNE" == "exemple" ] && [ ! "$LIGNE" == "old_scripts" ] && ! echo "$LIGNE" | grep -q ".fail$" # Le fichier exemple, le dossier old_scripts et les scripts fail sont ignorés
|
||||
then
|
||||
# Exécute chaque script trouvé dans upgrade.d
|
||||
/bin/bash "$script_dir/upgrade.d/$LIGNE" $MACHINE
|
||||
if [ "$?" -ne 0 ]; then # Si le script a échoué, le snapshot est annulé.
|
||||
echo "Échec du script $LIGNE"
|
||||
mv -f "$script_dir/upgrade.d/$LIGNE" "$script_dir/upgrade.d/$LIGNE.fail"
|
||||
update_apt=0
|
||||
elif [ "$LOOP" -eq 2 ]
|
||||
then # Après l'upgrade du 2e conteneur, déplace le script dans le dossier des anciens scripts si il a été exécuté avec succès.
|
||||
mv -f "$script_dir/upgrade.d/$LIGNE" "$script_dir/upgrade.d/old_scripts/$LIGNE"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Arrêt de la machine virtualisée
|
||||
sudo lxc-stop -n $MACHINE
|
||||
|
||||
|
|
13
upgrade.d/exemple
Normal file
13
upgrade.d/exemple
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Ce script est un script d'exemple à dupliquer pour effectuer des modifications pérennes dans les conteneurs de demo.
|
||||
# Le script n'est pas exécuté dans le conteneur, il convient donc d'utiliser lxc-attach pour opérer à l'intérieur.
|
||||
# L'ensemble des scripts ajoutés ici seront exécutés lors de l'upgrade des conteneurs dans la nuit
|
||||
# Toutefois, l'exécution sera loggée dans $script_dir/demo_upgrade.log
|
||||
|
||||
# Récupère le dossier du script
|
||||
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$PWD/$(dirname "$0" | cut -d '.' -f2)"; fi
|
||||
|
||||
MACHINE=$1 # Nom du conteneur
|
||||
|
||||
sudo lxc-attach -n $MACHINE -- echo coucou
|
3
upgrade.d/old_scripts/.gitignore
vendored
Normal file
3
upgrade.d/old_scripts/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*.swp
|
||||
*~
|
||||
Notes
|
Loading…
Add table
Reference in a new issue