Deployment di massa con UDPCast

UDPCast_schema_smallUno dei problemi che affliggono il sysadmin è il deployment dei client all’interno della propria rete. In questo post, che vuole essere più una user experience che un’howto, vedremo cos’è e come funziona UDPCast, applicativo rilasciato con licenza GPL, che permette di traferire dati da un sender a più receiver all’interno della nostra LAN contemporaneamente, inoltre è in grado di comprimere i dati trasmessi per rendere il tutto ancora più veloce.

UPDCast utilizza il multicast all’interno della LAN per i trasferimento dati, ciò vuol dire che se avete una rete aziendale in cui molti client sono uguali o con hardware molto simile potrete effettuare il deploy di tutte le machine contemporaneamente con una seria riduzione del tempo richiesto per il deploy visto che utilizzando il multicast il tempo totale è indipendente dal numero di macchine.

E’ possibile utilizzare UDPCast sia in locale che da un insieme di periferiche di boot tra cui cdrom e boot via rete tramite PXE utilizzando la busybox fornita.

E’ possibile utilizzare un apposito file di configurazione (udpcfg.txt) per preconfigurarlo, in questo modo dovrete soltanto più premere un tasto qualsiasi per avviare la trasmissione. Nel caso in cui non utilizziate il DHCP all’interno della vostra rete potrete utilizzare un file di configurazione per la configurazione automatica quando si avvia la busybox, il file in questione basta che abbia le corrispondenze MAC address – indirizzo IP una per riga.

Il sito del progetto è http://udpcast.linux.lu/bootdoc.html, il resto del post oltre il read more

Basandomi sulla mia esperienza mi sento di dire che l’unico vero requisito che i client devono soddisfare è la dimensione del disco, ovviamente se il disco è più grande il problema diventa lo spreco di spazio (questo potremmo definirlo quasi un problema marginale) ma se il disco è di dimensione minori difficilmente otterrete una copia consistente e funzionante dell’immagine disco di partenza.

Eventuali altri problemi riconducibili ad una leggera differenza dell’hardware della macchina sono secondo me facilmente risolvibili dal sistema di riconoscimento automatico dell’hardware presente sul vostro sistema, ovviamente se la differenza inizia ad essere sostanziale, ad esempio motherboard con chipset di produttori diversi, i problemi veri iniziano a esserci.

Ovviamente poi la configurazione dei sistemi operativi (nome host, indirizzo IP, join ai domini, etc…) sono da eseguire manualmente o tramite appositi script.

Requisito più stringente è quello che devono avere gli switch della vostra rete: è decisamente utile che supportino IGMP snooping (quasi indispensabile se volete che gli altri host presenti sulla rete possano continuare a lavorare) e che il broadcast storm control sia disabilitato.

Finita questa breve introduzione su feature e requisiti passiamo alle cose più concrete. Se intendete utilizzare udpcast per la clonazione di massa dei client le strade percorribili sono due: compilarvi e costruirvi autonomamente la vostra immagine (ISO o PXE) oppure utilizzare il tool automatico disponibile a questo indirizzo.

Il tool automatico è molto pratico da utilizzare quindi su questo non mi soffermerò a meno che qualcuno di voi non chieda delucidazioni, commenteremo brevemente invece il file di configurazione risultante che utilizzo in produzione ormai da 3 anni.

Di seguito quella del sender:

auto=yes
lang=US
kbmap=US
netmodule=AUTO
netmodparm=
dhcp=no
netmask=255.255.255.0
enableDiskmodule=yes
diskmodule=AUTO
diskmodparm=
port=9000
disk=/dev/sda
umode=snd
compr=lzop
udpcparam=--rexmit-hello-interval 10000

Con questa configurazione viene avviato un sender che si sceglie automaticamente il modulo della rete e del disco e li carica nel kernel senza passarci alcun parametro. Utilizza la tastiera col layout inglese, la porta di rete  di default, utilizza come disco di output /dev/sda e che la trasmissione sia compressa con lzop. La maschera di rete è una /24 e gli indirizzi IP vengono assegnati utilizzando un file con le corrispondenze MAC – IP, nel caso in cui utilizziate il DHCP ovviamente al posto di “no” dovete mettere “yes” nell’attributo preposto. L’attributo udpcparam è configurato a –rexmit-hello-interval 10000 affinchè il sender annunci la sua presenza sulla rete ogni 10 secondi.

Di seguito quella del receiver:

auto=yes
lang=US
kbmap=US
netmodule=AUTO
netmodparm=
dhcp=no
netmask=255.255.255.0
enableDiskmodule=yes
diskmodule=AUTO
diskmodparm=
port=9000
disk=/dev/sda
umode=rcv
compr=lzop
udpcparam=

La configurazione del receiver direi che non merita ulteriori commenti visto che l’unica differenza è che l’attributo umode è impostato a rcv e che non è configurato nessun ulteriore parametro da passare ad udpcast.

A questo punto abbiamo le iso di udpcast già preconfigurate pronte per l’utilizzo, ora non resta che masterizzarle.

Visto che sono pigro e che non ho voglia di andare in giro per la mia rete con un cd in mano a far bootare tutte le machine con udpcast, ho aggiunto al menù di grub un’apposita voce per avviare udpcast direttamente dal disco del pc, basta estrarre dall’iso l’immagine del kernel e dell’initrd contenente tutto quanto ci serve, copiarlo su disco e modificare il file menu.lst in modo che sia avviabile dal menù che viene mostrato all’utente in fase di avvio, al limite per impedire ad utenti non autorizzati di avviare udpcast potete proteggere l’entry che lo rigurada con password.

Related post:

Comments are closed.