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
|
## demo_upgrade
|
||||||
Ce script est placé en cron par demo_lxc_build.
|
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.
|
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)
|
TIME_TO_SWITCH=$(cat "$script_dir/demo_lxc_build.sh" | grep TIME_TO_SWITCH= | cut -d '=' -f2)
|
||||||
|
|
||||||
IP_UPGRADE=$PLAGE_IP.150
|
IP_UPGRADE=$PLAGE_IP.150
|
||||||
|
LOOP=0
|
||||||
|
|
||||||
UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
MACHINE=$1
|
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 autoremove
|
||||||
sudo lxc-attach -n $MACHINE -- apt-get autoclean
|
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
|
# Arrêt de la machine virtualisée
|
||||||
sudo lxc-stop -n $MACHINE
|
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