Vai al contenuto

Capitolo 10: Automatizzare

Durante tutto questo capitolo dovrai essere radice o in grado di sudo per diventare root.

L'automazione del processo di snapshot rende le cose molto più facili.

Automatizzazione del Processo di Copia di Istantanee

Questo processo viene eseguito su lxd-primario. La prima cosa da fare è creare uno script che verrà eseguito da cron in /usr/local/sbin chiamato "refresh-containers" :

sudo vi /usr/local/sbin/refreshcontainers.sh

Lo script è piuttosto semplice:

#!/bin/bash
# This script is for doing an lxc copy --refresh against each container, copying
# and updating them to the snapshot server.

for x in $(/var/lib/snapd/snap/bin/lxc ls -c n --format csv)
        do echo "Refreshing $x"
        /var/lib/snapd/snap/bin/lxc copy --refresh $x lxd-snapshot:$x
        done

Rendetelo eseguibile:

sudo chmod +x /usr/local/sbin/refreshcontainers.sh

Cambiare la proprietà di questo script all'utente e al gruppo lxdadmin:

sudo chown lxdadmin.lxdadmin /usr/local/sbin/refreshcontainers.sh

Impostare il crontab per l'utente lxdadmin per l'esecuzione di questo script, in questo caso alle 10 di sera:

crontab -e

La voce avrà il seguente aspetto:

00 22 * * * /usr/local/sbin/refreshcontainers.sh > /home/lxdadmin/refreshlog 2>&1

Salvare le modifiche e uscire.

In questo modo si creerà un registro nella home directory di lxdadmin chiamato "refreshlog" che permetterà di sapere se il processo ha funzionato o meno. Molto importante!

La procedura automatica a volte fallisce. Questo accade generalmente quando un particolare container non riesce ad aggiornarsi. È possibile eseguire manualmente l'aggiornamento con il seguente comando (assumendo rockylinux-test-9 qui, come nostro contenitore):

lxc copy --refresh rockylinux-test-9 lxd-snapshot:rockylinux-test-9

Author: Steven Spencer, Franco Colussi

Contributors: Ezequiel Bruni, Ganna Zhyrnova