mirror of
https://github.com/YunoHost/yunohost_demo.git
synced 2024-09-03 19:56:44 +02:00
Upgrade demo scripts
This commit is contained in:
parent
5f56d250b6
commit
fc15ac8ee6
9 changed files with 150 additions and 70 deletions
|
@ -1,10 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Créer les conteneurs Yunohost et les configure
|
# Créer les conteneurs Yunohost et les configure
|
||||||
# !!! Ce script est conçu pour être exécuté par l'user root.
|
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
LOG=Build_lxc.log
|
LOG=Build_lxc.log
|
||||||
LOG_BUILD_LXC="$script_dir/$LOG"
|
LOG_BUILD_LXC="$script_dir/$LOG"
|
||||||
|
@ -23,14 +22,12 @@ MAIL_ADDR=demo@yunohost.org
|
||||||
USER_DEMO=demo
|
USER_DEMO=demo
|
||||||
PASSWORD_DEMO=demo
|
PASSWORD_DEMO=demo
|
||||||
|
|
||||||
# Check root
|
# Check user
|
||||||
# CHECK_ROOT=$EUID
|
if [ "$USER" != "$(cat "$script_dir/setup_user")" ] && test -e "$script_dir/setup_user"; then
|
||||||
# if [ -z "$CHECK_ROOT" ];then CHECK_ROOT=0;fi
|
echo -e "\e[91mCe script doit être exécuté avec l'utilisateur $(cat "$script_dir/setup_user")"
|
||||||
# if [ $CHECK_ROOT -eq 0 ]
|
echo -en "\e[0m"
|
||||||
# then # $EUID est vide sur une exécution avec sudo. Et vaut 0 pour root
|
exit 0
|
||||||
# echo "Le script ne doit pas être exécuté avec les droits root"
|
fi
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
echo "> Création d'une machine debian jessie minimaliste" | tee -a "$LOG_BUILD_LXC"
|
echo "> Création d'une machine debian jessie minimaliste" | tee -a "$LOG_BUILD_LXC"
|
||||||
sudo lxc-create -n $LXC_NAME1 -t debian -- -r jessie >> "$LOG_BUILD_LXC" 2>&1
|
sudo lxc-create -n $LXC_NAME1 -t debian -- -r jessie >> "$LOG_BUILD_LXC" 2>&1
|
||||||
|
@ -96,6 +93,53 @@ ssh $ARG_SSH $LXC_NAME1 "sudo yunohost user create --firstname \"$USER_DEMO_CLEA
|
||||||
echo -e "\n> Vérification de l'état de Yunohost" | tee -a "$LOG_BUILD_LXC"
|
echo -e "\n> Vérification de l'état de Yunohost" | tee -a "$LOG_BUILD_LXC"
|
||||||
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost -v" | tee -a "$LOG_BUILD_LXC" 2>&1
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost -v" | tee -a "$LOG_BUILD_LXC" 2>&1
|
||||||
|
|
||||||
|
# ********
|
||||||
|
echo ">> Modification de Yunohost pour la demo" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
|
||||||
|
# App officielles
|
||||||
|
echo -e "> Installation des applications officielles" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de baikal" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install baikal -a \"domain=$DOMAIN&path=/baikal&password=$PASSWORD_DEMO\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation d'agendav" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install agendav -a \"domain=$DOMAIN&path=/agendav&language=en\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de dokuwiki" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install dokuwiki -a \"domain=$DOMAIN&path=/dokuwiki&admin=$USER_DEMO&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de hextris" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install hextris -a \"domain=$DOMAIN&path=/hextris&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de jappix" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install jappix -a \"domain=$DOMAIN&path=/jappix&name=YunoJappix&language=en\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de jirafeau" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install jirafeau -a \"domain=$DOMAIN&path=/jirafeau&admin_user=$USER_DEMO&upload_password=$PASSWORD_DEMO&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de kanboard" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install kanboard -a \"domain=$DOMAIN&path=/kanboard&admin=$USER_DEMO&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de opensondage" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install opensondage -a \"domain=$DOMAIN&path=/date&admin=$USER_DEMO&language=en_GB&is_public=1\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de owncloud" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install owncloud -a \"domain=$DOMAIN&path=/owncloud&admin=$USER_DEMO&user_home=0\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de phpmyadmin" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install phpmyadmin -a \"domain=$DOMAIN&path=/phpmyadmin&admin=$USER_DEMO\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de roundcube" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install roundcube -a \"domain=$DOMAIN&path=/webmail&with_carddav=0\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de searx" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install searx -a \"domain=$DOMAIN&path=/searx&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de shellinabox" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install shellinabox -a \"domain=$DOMAIN&path=/ssh\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
sudo rm "/var/lib/lxc/$LXC_NAME1/rootfs/etc/nginx/conf.d/$DOMAIN.d/shellinabox.conf" # Supprime le fichier de conf nginx de shellinabox pour empêcher d'y accéder.
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app setting shellinabox path -d && sudo yunohost app ssowatconf" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de strut" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install strut -a \"domain=$DOMAIN&path=/strut&public_site=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de transmission" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install transmission -a \"domain=$DOMAIN&path=/torrent\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de ttrss" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install ttrss -a \"domain=$DOMAIN&path=/ttrss\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de wallabag" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install wallabag -a \"domain=$DOMAIN&path=/wallabag\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de wordpress" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install wordpress -a \"domain=$DOMAIN&path=/blog&admin=$USER_DEMO&language=en_EN&multisite=No&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
echo -e "Installation de zerobin" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
ssh $ARG_SSH $LXC_NAME1 "sudo yunohost app install zerobin -a \"domain=$DOMAIN&path=/zerobin&is_public=Yes\"" | tee -a "$LOG_BUILD_LXC"
|
||||||
|
|
||||||
|
# ********
|
||||||
|
|
||||||
echo "> Arrêt de la machine virtualisée" | tee -a "$LOG_BUILD_LXC"
|
echo "> Arrêt de la machine virtualisée" | tee -a "$LOG_BUILD_LXC"
|
||||||
sudo lxc-stop -n $LXC_NAME1 >> "$LOG_BUILD_LXC" 2>&1
|
sudo lxc-stop -n $LXC_NAME1 >> "$LOG_BUILD_LXC" 2>&1
|
||||||
|
@ -128,12 +172,33 @@ EOF
|
||||||
echo "> Et du cron d'upgrade"
|
echo "> Et du cron d'upgrade"
|
||||||
echo | sudo tee /etc/cron.d/demo_upgrade <<EOF > /dev/null
|
echo | sudo tee /etc/cron.d/demo_upgrade <<EOF > /dev/null
|
||||||
# Vérifie les mises à jour des conteneurs de demo, lorsqu'ils ne sont pas utilisés, à partir de 3h2minutes chaque nuit. Attention à rester sur un multiple du temps de switch.
|
# Vérifie les mises à jour des conteneurs de demo, lorsqu'ils ne sont pas utilisés, à partir de 3h2minutes chaque nuit. Attention à rester sur un multiple du temps de switch.
|
||||||
2 3 * * * root $script_dir/demo_switch.sh >> "$script_dir/demo_upgrade.log" 2>&1
|
2 3 * * * root $script_dir/demo_upgrade.sh >> "$script_dir/demo_upgrade.log" 2>&1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "> Démarrage de la démo"
|
echo "> Démarrage de la démo"
|
||||||
"$script_dir/demo_start.sh"
|
"$script_dir/demo_start.sh"
|
||||||
|
|
||||||
|
# echo "> Mise en place du service"
|
||||||
|
echo | sudo tee /etc/systemd/system/lxc_demo.service <<EOF > /dev/null
|
||||||
|
[Unit]
|
||||||
|
Description=Start and stop script for lxc demo container
|
||||||
|
Requires=network.target
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
ExecStart=$script_dir/demo_start.sh
|
||||||
|
ExecStop=$script_dir/demo_stop.sh
|
||||||
|
ExecReload=$script_dir/demo_start.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Démarrage automatique du service
|
||||||
|
sudo systemctl enable lxc_demo.service
|
||||||
|
sudo service lxc_demo start
|
||||||
|
|
||||||
# Après le démarrage du premier conteneur, fait un snapshot du deuxième.
|
# Après le démarrage du premier conteneur, fait un snapshot du deuxième.
|
||||||
echo "> Création d'un snapshot pour le 2e conteneur" | tee -a "$LOG_BUILD_LXC"
|
echo "> Création d'un snapshot pour le 2e conteneur" | tee -a "$LOG_BUILD_LXC"
|
||||||
sudo lxc-snapshot -n $LXC_NAME2 >> "$LOG_BUILD_LXC" 2>&1
|
sudo lxc-snapshot -n $LXC_NAME2 >> "$LOG_BUILD_LXC" 2>&1
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Installe LXC et les paramètres réseaux avant de procéder au build.
|
# Installe LXC et les paramètres réseaux avant de procéder au build.
|
||||||
# !!! Ce script est conçu pour être exécuté par l'user root.
|
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
LOG=$(cat "$script_dir/demo_lxc_build.sh" | grep LOG= | cut -d '=' -f2)
|
LOG=$(cat "$script_dir/demo_lxc_build.sh" | grep LOG= | cut -d '=' -f2)
|
||||||
LOG_BUILD_LXC="$script_dir/$LOG"
|
LOG_BUILD_LXC="$script_dir/$LOG"
|
||||||
|
@ -15,14 +14,8 @@ IP_LXC1=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC1= | cut -d '=' -f2)
|
||||||
IP_LXC2=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC2= | cut -d '=' -f2)
|
IP_LXC2=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC2= | cut -d '=' -f2)
|
||||||
MAIL_ADDR=$(cat "$script_dir/demo_lxc_build.sh" | grep MAIL_ADDR= | cut -d '=' -f2)
|
MAIL_ADDR=$(cat "$script_dir/demo_lxc_build.sh" | grep MAIL_ADDR= | cut -d '=' -f2)
|
||||||
|
|
||||||
# Check root
|
# Check user
|
||||||
# CHECK_ROOT=$EUID
|
echo $USER > "$script_dir/setup_user"
|
||||||
# if [ -z "$CHECK_ROOT" ];then CHECK_ROOT=0;fi
|
|
||||||
# if [ $CHECK_ROOT -eq 0 ]
|
|
||||||
# then # $EUID est vide sur une exécution avec sudo. Et vaut 0 pour root
|
|
||||||
# echo "Le script ne doit pas être exécuté avec les droits root"
|
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
read -p "Indiquer le nom de domaine du serveur de demo: " DOMAIN
|
read -p "Indiquer le nom de domaine du serveur de demo: " DOMAIN
|
||||||
echo "$DOMAIN" > "$script_dir/domain.ini"
|
echo "$DOMAIN" > "$script_dir/domain.ini"
|
||||||
|
@ -76,6 +69,7 @@ echo "> Mise en place du reverse proxy et du load balancing" | tee -a "$LOG_BUIL
|
||||||
echo | sudo tee /etc/nginx/conf.d/$DOMAIN.conf <<EOF >> "$LOG_BUILD_LXC" 2>&1
|
echo | sudo tee /etc/nginx/conf.d/$DOMAIN.conf <<EOF >> "$LOG_BUILD_LXC" 2>&1
|
||||||
upstream $DOMAIN {
|
upstream $DOMAIN {
|
||||||
server $IP_LXC1:80 ;
|
server $IP_LXC1:80 ;
|
||||||
|
server $IP_LXC1:443 ;
|
||||||
server $IP_LXC2:443 ;
|
server $IP_LXC2:443 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +128,7 @@ cd ~
|
||||||
git clone https://github.com/letsencrypt/letsencrypt
|
git clone https://github.com/letsencrypt/letsencrypt
|
||||||
cd letsencrypt/
|
cd letsencrypt/
|
||||||
# Installe les dépendances de let's encrypt
|
# Installe les dépendances de let's encrypt
|
||||||
./letsencrypt-auto --help
|
sudo ./letsencrypt-auto --help
|
||||||
sudo mkdir /etc/letsencrypt
|
sudo mkdir /etc/letsencrypt
|
||||||
|
|
||||||
# Créer le fichier de config
|
# Créer le fichier de config
|
||||||
|
@ -166,10 +160,14 @@ EOF
|
||||||
|
|
||||||
mkdir -p /tmp/letsencrypt-auto
|
mkdir -p /tmp/letsencrypt-auto
|
||||||
# Créer le certificat
|
# Créer le certificat
|
||||||
./letsencrypt-auto certonly --config /etc/letsencrypt/conf.ini -d $DOMAIN
|
sudo ./letsencrypt-auto certonly --config /etc/letsencrypt/conf.ini -d $DOMAIN
|
||||||
|
|
||||||
# Route l'upstream sur le port 443. Le port 80 servait uniquement à let's encrypt
|
# Route l'upstream sur le port 443. Le port 80 servait uniquement à let's encrypt
|
||||||
sudo sed -i "s/server $IP_LXC1:80 ;/server $IP_LXC1:443 ;/" /etc/nginx/conf.d/$DOMAIN.conf
|
sudo sed -i "s/server $IP_LXC1:80 ;/server $IP_LXC1:443 ;/" /etc/nginx/conf.d/$DOMAIN.conf
|
||||||
|
# Décommente les lignes du certificat
|
||||||
|
sudo sed -i "s/#\tssl_certificate/\tssl_certificate/g" /etc/nginx/conf.d/$DOMAIN.conf
|
||||||
|
sudo service nginx reload
|
||||||
|
|
||||||
|
|
||||||
# Mise en place du cron de renouvellement.
|
# Mise en place du cron de renouvellement.
|
||||||
wget https://raw.githubusercontent.com/YunoHost-Apps/letsencrypt_ynh/master/sources/certificateRenewer
|
wget https://raw.githubusercontent.com/YunoHost-Apps/letsencrypt_ynh/master/sources/certificateRenewer
|
||||||
|
@ -177,7 +175,7 @@ sed -i "s/DOMAIN_NAME/$DOMAIN/" certificateRenewer
|
||||||
sed -i "s/ADMIN_EMAIL/$MAIL_ADDR/" certificateRenewer
|
sed -i "s/ADMIN_EMAIL/$MAIL_ADDR/" certificateRenewer
|
||||||
sudo mv certificateRenewer /etc/cron.weekly/
|
sudo mv certificateRenewer /etc/cron.weekly/
|
||||||
|
|
||||||
echo "\nLe serveur est prêt à déployer les conteneurs de demo."
|
echo "Le serveur est prêt à déployer les conteneurs de demo."
|
||||||
echo "Exécutez le script demo_lxc_build.sh pour créer les conteneurs et mettre en place la demo."
|
echo "Exécutez le script demo_lxc_build.sh pour créer les conteneurs et mettre en place la demo."
|
||||||
# Déploie les conteneurs de demo
|
# Déploie les conteneurs de demo
|
||||||
# "$script_dir/demo_lxc_build.sh"
|
# "$script_dir/demo_lxc_build.sh"
|
||||||
|
|
|
@ -2,24 +2,21 @@
|
||||||
|
|
||||||
# Détruit les conteneurs lxc de demo.
|
# Détruit les conteneurs lxc de demo.
|
||||||
# Permet de repartir sur des bases saines avec le script demo_lxc_build.sh
|
# Permet de repartir sur des bases saines avec le script demo_lxc_build.sh
|
||||||
# !!! Ce script est conçu pour être exécuté par l'user root.
|
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
||||||
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
||||||
IP_LXC1=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC1= | cut -d '=' -f2)
|
IP_LXC1=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC1= | cut -d '=' -f2)
|
||||||
IP_LXC2=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC2= | cut -d '=' -f2)
|
IP_LXC2=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC2= | cut -d '=' -f2)
|
||||||
|
|
||||||
# Check root
|
# Check user
|
||||||
# CHECK_ROOT=$EUID
|
if [ "$USER" != "$(cat "$script_dir/setup_user")" ]; then
|
||||||
# if [ -z "$CHECK_ROOT" ];then CHECK_ROOT=0;fi
|
echo -e "\e[91mCe script doit être exécuté avec l'utilisateur $(cat "$script_dir/sub_scripts/setup_user")"
|
||||||
# if [ $CHECK_ROOT -eq 0 ]
|
echo -en "\e[0m"
|
||||||
# then # $EUID est vide sur une exécution avec sudo. Et vaut 0 pour root
|
exit 0
|
||||||
# echo "Le script ne doit pas être exécuté avec les droits root"
|
fi
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
"$script_dir/demo_stop.sh"
|
"$script_dir/demo_stop.sh"
|
||||||
|
|
||||||
|
@ -38,3 +35,7 @@ sudo rm /etc/cron.d/demo_upgrade
|
||||||
echo "> Suppression des clés ECDSA dans known_hosts"
|
echo "> Suppression des clés ECDSA dans known_hosts"
|
||||||
ssh-keygen -f "$HOME/.ssh/known_hosts" -R $IP_LXC1
|
ssh-keygen -f "$HOME/.ssh/known_hosts" -R $IP_LXC1
|
||||||
ssh-keygen -f "$HOME/.ssh/known_hosts" -R $IP_LXC2
|
ssh-keygen -f "$HOME/.ssh/known_hosts" -R $IP_LXC2
|
||||||
|
|
||||||
|
echo "> Suppression du service"
|
||||||
|
sudo systemctl disable lutim.service
|
||||||
|
sudo rm -f /etc/systemd/system/lxc_demo.service
|
||||||
|
|
|
@ -2,22 +2,19 @@
|
||||||
|
|
||||||
# Purge l'ensemble de la config lxc pour les conteneurs de demo.
|
# Purge l'ensemble de la config lxc pour les conteneurs de demo.
|
||||||
# Il sera nécessaire de lancer le script demo_lxc_build_init.sh pour réinstaller l'ensemble le cas échéant.
|
# Il sera nécessaire de lancer le script demo_lxc_build_init.sh pour réinstaller l'ensemble le cas échéant.
|
||||||
# !!! Ce script est conçu pour être exécuté par l'user root.
|
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
||||||
DOMAIN=$(cat "$script_dir/domain.ini")
|
DOMAIN=$(cat "$script_dir/domain.ini")
|
||||||
|
|
||||||
# Check root
|
# Check user
|
||||||
# CHECK_ROOT=$EUID
|
if [ "$USER" != "$(cat "$script_dir/setup_user")" ]; then
|
||||||
# if [ -z "$CHECK_ROOT" ];then CHECK_ROOT=0;fi
|
echo -e "\e[91mCe script doit être exécuté avec l'utilisateur $(cat "$script_dir/sub_scripts/setup_user")"
|
||||||
# if [ $CHECK_ROOT -eq 0 ]
|
echo -en "\e[0m"
|
||||||
# then # $EUID est vide sur une exécution avec sudo. Et vaut 0 pour root
|
exit 0
|
||||||
# echo "Le script ne doit pas être exécuté avec les droits root"
|
fi
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
"$script_dir/demo_lxc_destroy.sh"
|
"$script_dir/demo_lxc_destroy.sh"
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Démarre le premier conteneur de demo et active la config réseau dédiée.
|
# Démarre le premier conteneur de demo et active la config réseau dédiée.
|
||||||
# !!! Ce script est conçu pour être exécuté par l'user root.
|
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
||||||
LXC_NAME=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
LXC_NAME=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
||||||
|
@ -30,7 +29,7 @@ fi
|
||||||
|
|
||||||
# Démarrage de la machine
|
# Démarrage de la machine
|
||||||
echo "> Démarrage de la machine"
|
echo "> Démarrage de la machine"
|
||||||
sudo lxc-start -n $LXC_NAME -d
|
sudo lxc-start -n $LXC_NAME -o "$script_dir/demo_boot.log" -d
|
||||||
sleep 3
|
sleep 3
|
||||||
|
|
||||||
# Vérifie que la machine a démarré
|
# Vérifie que la machine a démarré
|
||||||
|
|
23
demo_stop.sh
23
demo_stop.sh
|
@ -1,16 +1,29 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Stoppe les conteneurs de demo et arrête la config réseau dédiée.
|
# Stoppe les conteneurs de demo et arrête la config réseau dédiée.
|
||||||
# !!! Ce script est conçu pour être exécuté par l'user root.
|
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
||||||
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
||||||
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
||||||
|
|
||||||
echo "> Arrêt de la machine virtualisée"
|
if [ "$#" -eq 1 ] && [ "$1" == "-f" ]
|
||||||
|
then
|
||||||
|
echo "> Suppression des lock et arrêt forcé des conteneurs."
|
||||||
|
sudo rm -f /var/lib/lxc/$LXC_NAME1.lock_fileS
|
||||||
|
sudo rm -f /var/lib/lxc/$LXC_NAME2.lock_fileS
|
||||||
|
sudo rm -f /var/lib/lxc/$LXC_NAME1.lock_fileU
|
||||||
|
sudo rm -f /var/lib/lxc/$LXC_NAME2.lock_fileU
|
||||||
|
else
|
||||||
|
echo "> Attend la libération des lock sur les conteneurs."
|
||||||
|
while test -e /var/lib/lxc/$LXC_NAME1.lock_file* || test -e /var/lib/lxc/$LXC_NAME2.lock_file*; do
|
||||||
|
sleep 5 # Attend que les conteneur soit libérés par les script upgrade ou switch, le cas échéant.
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "> Arrêt des conteneurs"
|
||||||
if [ $(sudo lxc-info --name $LXC_NAME1 | grep -c "STOPPED") -eq 0 ]; then
|
if [ $(sudo lxc-info --name $LXC_NAME1 | grep -c "STOPPED") -eq 0 ]; then
|
||||||
echo "Arrêt du conteneur $LXC_NAME1"
|
echo "Arrêt du conteneur $LXC_NAME1"
|
||||||
sudo lxc-stop -n $LXC_NAME1
|
sudo lxc-stop -n $LXC_NAME1
|
||||||
|
@ -36,8 +49,4 @@ if sudo ifquery lxc_demo --state > /dev/null; then
|
||||||
sudo ifdown --force lxc_demo
|
sudo ifdown --force lxc_demo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Suppression des lock."
|
|
||||||
sudo rm /var/lib/lxc/$LXC_NAME1/lock_file
|
|
||||||
sudo rm /var/lib/lxc/$LXC_NAME2/lock_file
|
|
||||||
|
|
||||||
sudo lxc-ls -f
|
sudo lxc-ls -f
|
||||||
|
|
|
@ -4,12 +4,20 @@
|
||||||
# Ce script n'a vocation qu'a être dans un cron
|
# Ce script n'a vocation qu'a être dans un cron
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
||||||
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
||||||
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
||||||
MAIL_ADDR=$(cat "$script_dir/demo_lxc_build.sh" | grep MAIL_ADDR= | cut -d '=' -f2)
|
MAIL_ADDR=$(cat "$script_dir/demo_lxc_build.sh" | grep MAIL_ADDR= | cut -d '=' -f2)
|
||||||
|
DOMAIN=$(cat "$script_dir/domain.ini")
|
||||||
|
|
||||||
|
log_line=$(wc -l "$script_dir/demo_switch.log" | cut -d ' ' -f 1) # Repère la fin du log actuel. Pour récupérer les lignes ajoutées sur cette exécution.
|
||||||
|
log_line=$(( $log_line + 1 )) # Ignore la première ligne, reprise de l'ancien log.
|
||||||
|
|
||||||
|
while test -e /var/lib/lxc/$LXC_NAME1.lock_file* || test -e /var/lib/lxc/$LXC_NAME2.lock_file*; do
|
||||||
|
sleep 5 # Attend que le conteneur soit libéré par les script upgrade ou switch, le cas échéant.
|
||||||
|
done
|
||||||
|
|
||||||
# Vérifie l'état des machines.
|
# Vérifie l'état des machines.
|
||||||
if [ "$(sudo lxc-info --name $LXC_NAME1 | grep -c "RUNNING")" -eq "1" ]
|
if [ "$(sudo lxc-info --name $LXC_NAME1 | grep -c "RUNNING")" -eq "1" ]
|
||||||
|
@ -22,25 +30,21 @@ else # Sinon, on suppose que c'est la machine 2 qui est en cours.
|
||||||
# Si aucune machine ne tourne, la première démarrera.
|
# Si aucune machine ne tourne, la première démarrera.
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while sudo test -e /var/lib/lxc/$LXC_B/lock_file; do
|
|
||||||
sleep 5 # Attend que le conteneur soit libéré par le script upgrade, le cas échéant.
|
|
||||||
done
|
|
||||||
|
|
||||||
# Démarre le conteneur B et arrête le conteneur A.
|
# Démarre le conteneur B et arrête le conteneur A.
|
||||||
sudo lxc-start -n $LXC_B -o "$script_dir/demo_switch.log" -d > /dev/null # Démarre l'autre machine
|
sudo lxc-start -n $LXC_B -o "$script_dir/demo_switch.log" -d > /dev/null # Démarre l'autre machine
|
||||||
sleep 10 # Attend 10 seconde pour s'assurer du démarrage de la machine.
|
sleep 10 # Attend 10 seconde pour s'assurer du démarrage de la machine.
|
||||||
if [ "$(sudo lxc-info --name $LXC_B | grep -c "STOPPED")" -eq "1" ]
|
if [ "$(sudo lxc-info --name $LXC_B | grep -c "STOPPED")" -eq "1" ]
|
||||||
then
|
then
|
||||||
# Le conteneur n'a pas réussi à démarrer. On averti un responsable par mail...
|
# Le conteneur n'a pas réussi à démarrer. On averti un responsable par mail...
|
||||||
mail -a "Content-Type: text/plain; charset=UTF-8" -s "Demo Yunohost" $MAIL_ADDR <<< "Échec du démarrage du conteneur $LXC_B sur le serveur de demo!"
|
echo -e "Échec du démarrage du conteneur $LXC_B sur le serveur de demo $DOMAIN! \n\nExtrait du log:\n$(tail -n +$log_line "$script_dir/demo_switch.log")" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "Demo Yunohost" $MAIL_ADDR
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# Bascule sur le conteneur B avec le load balancing de nginx...
|
# Bascule sur le conteneur B avec le load balancing de nginx...
|
||||||
# Automatique par nginx lorsque la machine A sera éteinte.
|
# Automatique par nginx lorsque la machine A sera éteinte.
|
||||||
# Arrêt du conteneur A. Il est remplacé par le B
|
# Arrêt du conteneur A. Il est remplacé par le B
|
||||||
sudo touch /var/lib/lxc/$LXC_A/lock_file # Met en place un fichier pour indiquer que la machine n'est pas encore dispo.
|
sudo touch /var/lib/lxc/$LXC_A.lock_fileS # Met en place un fichier pour indiquer que la machine n'est pas encore dispo.
|
||||||
sudo lxc-stop -n $LXC_A
|
sudo lxc-stop -n $LXC_A
|
||||||
# Restaure le snapshot de la machine A avant sa prochaine exécution
|
# Restaure le snapshot de la machine A avant sa prochaine exécution
|
||||||
sudo lxc-snapshot -r snap0 -n $LXC_A
|
sudo lxc-snapshot -r snap0 -n $LXC_A
|
||||||
sudo rm /var/lib/lxc/$LXC_A/lock_file # Libère le lock
|
sudo rm /var/lib/lxc/$LXC_A.lock_fileS # Libère le lock
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
# Ce script n'a vocation qu'a être dans un cron
|
# Ce script n'a vocation qu'a être dans un cron
|
||||||
|
|
||||||
# Récupère le dossier du script
|
# 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
|
if [ "${0:0:1}" == "/" ]; then script_dir="$(dirname "$0")"; else script_dir="$(echo $PWD/$(dirname "$0" | cut -d '.' -f2) | sed 's@/$@@')"; fi
|
||||||
|
|
||||||
|
echo "$(date) U. boot upgrade" >> "$script_dir/debug.log"
|
||||||
|
|
||||||
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
LXC_NAME1=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME1= | cut -d '=' -f2)
|
||||||
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
LXC_NAME2=$(cat "$script_dir/demo_lxc_build.sh" | grep LXC_NAME2= | cut -d '=' -f2)
|
||||||
|
@ -13,10 +15,14 @@ IP_LXC2=$(cat "$script_dir/demo_lxc_build.sh" | grep IP_LXC2= | cut -d '=' -f2)
|
||||||
PLAGE_IP=$(cat "$script_dir/demo_lxc_build.sh" | grep PLAGE_IP= | cut -d '=' -f2)
|
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)
|
||||||
MAIL_ADDR=$(cat "$script_dir/demo_lxc_build.sh" | grep MAIL_ADDR= | cut -d '=' -f2)
|
MAIL_ADDR=$(cat "$script_dir/demo_lxc_build.sh" | grep MAIL_ADDR= | cut -d '=' -f2)
|
||||||
|
DOMAIN=$(cat "$script_dir/domain.ini")
|
||||||
|
|
||||||
IP_UPGRADE=$PLAGE_IP.150
|
IP_UPGRADE=$PLAGE_IP.150
|
||||||
LOOP=0
|
LOOP=0
|
||||||
|
|
||||||
|
log_line=$(wc -l "$script_dir/demo_upgrade.log" | cut -d ' ' -f 1) # Repère la fin du log actuel. Pour récupérer les lignes ajoutées sur cette exécution.
|
||||||
|
log_line=$(( $log_line + 1 )) # Ignore la première ligne, reprise de l'ancien log.
|
||||||
|
|
||||||
UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
MACHINE=$1
|
MACHINE=$1
|
||||||
IP_MACHINE=$2
|
IP_MACHINE=$2
|
||||||
|
@ -25,11 +31,11 @@ UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
TIME_OUT=$(($TIME_TO_SWITCH * 60 + 300))
|
TIME_OUT=$(($TIME_TO_SWITCH * 60 + 300))
|
||||||
sudo lxc-wait -n $MACHINE -s 'STOPPED' -t $TIME_OUT
|
sudo lxc-wait -n $MACHINE -s 'STOPPED' -t $TIME_OUT
|
||||||
|
|
||||||
while sudo test -e /var/lib/lxc/$MACHINE/lock_file; do
|
while test -e /var/lib/lxc/$MACHINE.lock_fileS; do
|
||||||
sleep 5 # Attend que le conteneur soit libéré par le script switch.
|
sleep 5 # Attend que le conteneur soit libéré par le script switch.
|
||||||
done
|
done
|
||||||
|
|
||||||
sudo touch /var/lib/lxc/$MACHINE/lock_file # Met en place un fichier pour indiquer que la machine est indisponible pendant l'upgrade
|
sudo touch /var/lib/lxc/$MACHINE.lock_fileU # Met en place un fichier pour indiquer que la machine est indisponible pendant l'upgrade
|
||||||
|
|
||||||
# Restaure le snapshot
|
# Restaure le snapshot
|
||||||
sudo lxc-snapshot -r snap0 -n $MACHINE
|
sudo lxc-snapshot -r snap0 -n $MACHINE
|
||||||
|
@ -38,7 +44,7 @@ UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
sudo sed -i "s@address $IP_MACHINE@address $IP_UPGRADE@" /var/lib/lxc/$MACHINE/rootfs/etc/network/interfaces
|
sudo sed -i "s@address $IP_MACHINE@address $IP_UPGRADE@" /var/lib/lxc/$MACHINE/rootfs/etc/network/interfaces
|
||||||
|
|
||||||
# Démarre le conteneur
|
# Démarre le conteneur
|
||||||
sudo lxc-start -n $MACHINE -d > /dev/null
|
sudo lxc-start -n $MACHINE -o "$script_dir/demo_boot.log" -d > /dev/null
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
# Update
|
# Update
|
||||||
|
@ -49,9 +55,9 @@ UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
update_apt=1
|
update_apt=1
|
||||||
fi
|
fi
|
||||||
# Upgrade
|
# Upgrade
|
||||||
sudo lxc-attach -n $MACHINE -- apt-get dist-upgrade
|
sudo lxc-attach -n $MACHINE -- apt-get dist-upgrade -y
|
||||||
# Clean
|
# Clean
|
||||||
sudo lxc-attach -n $MACHINE -- apt-get autoremove
|
sudo lxc-attach -n $MACHINE -- apt-get autoremove -y
|
||||||
sudo lxc-attach -n $MACHINE -- apt-get autoclean
|
sudo lxc-attach -n $MACHINE -- apt-get autoclean
|
||||||
|
|
||||||
# Exécution des scripts de upgrade.d
|
# Exécution des scripts de upgrade.d
|
||||||
|
@ -65,8 +71,9 @@ UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
if [ "$?" -ne 0 ]; then # Si le script a échoué, le snapshot est annulé.
|
if [ "$?" -ne 0 ]; then # Si le script a échoué, le snapshot est annulé.
|
||||||
echo "Échec du script $LIGNE"
|
echo "Échec du script $LIGNE"
|
||||||
mv -f "$script_dir/upgrade.d/$LIGNE" "$script_dir/upgrade.d/$LIGNE.fail"
|
mv -f "$script_dir/upgrade.d/$LIGNE" "$script_dir/upgrade.d/$LIGNE.fail"
|
||||||
mail -a "Content-Type: text/plain; charset=UTF-8" -s "Demo Yunohost" $MAIL_ADDR <<< "Échec d'exécution du script d'upgrade $LIGNE sur le conteneur $MACHINE sur le serveur de demo!\nLe script a été renommé en .fail, il ne sera plus exécuté tant que le préfixe ne sera pas retiré."
|
echo -e "Échec d'exécution du script d'upgrade $LIGNE sur le conteneur $MACHINE sur le serveur de demo $DOMAIN!\nLe script a été renommé en .fail, il ne sera plus exécuté tant que le préfixe ne sera pas retiré.\n\nExtrait du log:\n$(tail -n +$log_line "$script_dir/demo_upgrade.log")" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "Demo Yunohost" $MAIL_ADDR
|
||||||
update_apt=0
|
update_apt=0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -95,7 +102,7 @@ UPGRADE_DEMO_CONTAINER () { # Démarrage, upgrade et snapshot
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
sudo rm /var/lib/lxc/$MACHINE/lock_file # Libère le lock, la machine est à nouveau disponible
|
sudo rm /var/lib/lxc/$MACHINE.lock_fileU # Libère le lock, la machine est à nouveau disponible
|
||||||
}
|
}
|
||||||
|
|
||||||
UPGRADE_DEMO_CONTAINER $LXC_NAME1 $IP_LXC1
|
UPGRADE_DEMO_CONTAINER $LXC_NAME1 $IP_LXC1
|
||||||
|
|
0
upgrade.d/exemple
Normal file → Executable file
0
upgrade.d/exemple
Normal file → Executable file
Loading…
Reference in a new issue