
Rsync aggiornamento Web
Supponiamo che ci tocchi gestire in produzione un numero X di frontend Web dietro un bilanciatore e che quindi, ad ogni nuova release, si renda necessario caricare i contenuti su ciascuno di essi (rendendo la vita difficile agli sviluppatori).
Certo il mercato e’ ricco di software di Configuration Manager, ma in questo caso ho deciso di usare come esempio l’automazione mediante l’uso di rsync, del resto non serve una Ferrari per fare la spesa. In pratica, i contenuti Web verranno caricati manualmente su un’unico frontend (che servirà da server) mentre le altre macchine fungeranno da client (ovvero aggiorneranno i loro contenuti ogni X minuti consultando direttamente la macchina server).
Configurazione della macchina server
Tale attività si articola in due fasi: la prima consiste nell’installazione e nella corretta configurazione del demone xinetd (evoluzione del celebre inetd), mentre la seconda riguarda solo ed esclusivamente rsync.
Procediamo dunque con l’installazione di xinetd:
[root@server ~]# yum install xinetd
ed impostiamo l’avvio automatico del demone in questione per i diversi runlevel:
[root@server ~]# chkconfig --levels 2345 xinetd on
Posizioniamoci nella dir /etc/xinetd.d ed apriamo in scrittura il file rsync, sostituendo la direttiva:
disable = yes
con
disable = no
In definitiva, il suddetto file, dovrà avere il seguente contenuto:
service rsync { disable = no flags = IPv6 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
Passiamo ora al secondo step relativo alla configurazione della macchina server, ovvero la creazione del file rsyncd.conf nella directory /etc:
[root@server ~]# touch /etc/rsyncd.conf
All’interno del suddetto file creeremo dei moduli ad-hoc contenenti tutte le direttive necessarie per la sincronizzazione dei contenuti tra server e client, ad esempio:
log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock [images] path = /var/www/html/images uid = root gid = root read only = no list = yes host allow = 10.11.12.0/24
Salviamo il file ed avviamo xinetd:
[root@server ~]# service xinetd start
Configurazione delle macchine client
Tale configurazione consiste esclusivamente nella creazione di una entry crontab del tipo:
*/1 * * * * root rsync -agruv root@10.11.12.1::images /var/www/html/images/
ovvero ogni minuto viene contattato il server (10.11.12.1, modulo images che punta a/var/www/html/images/) e viene sincronizzato il contenuto della Dir del client /var/www/html/images/.
Bene, l’aggiornamento e’ servito!
#RsyncSincronizzazione#AmbientiWeb