Gestió d'equips, estratègies de clonació, còpies de seguretat


Probablement una de les tasques més habituals a la "vida" d'un coordinador TIC sigui contemplar com els usuaris aconsegueixen amb una facilitat pasmosa desmanegar els equips i el programari que utilitzen, amb la qual cosa, una tasca força comuna és la restauració de l'equipament a un estadi previ quan el conjunt era usable. Així doncs, cada cop és més habitual emprar solucions de clonació d'equips que fan un ús molt eficient de les xarxes i que ens permeten restaurar un munt d'equips d'una sola tacada. Estem parlant de solucions com Clonezilla o d'altres propietàries com la edició corporativa de Norton GHost.

Nosaltres optarem per l'ús del projecte udpcast per la seva simplicitat d'implementació i l'ampli ventall de possibilitats que ens ofereix. L'objectiu final serà disposar d'un mecanisme que puguin aprofitar, tant els equips que suportin l'arrencada per xarxa, com els que disposin tan sols d'un lector de CD o d'un floppy.

Ens descarregarem la imatge iso i la assignarem com a imatge de CD a alguna de les màquines virtuals que estem traginant, ara quan la iniciem clicarem a F12 i escollirem arrencar des de la unitat de CD.



Normalment i a dia d'avui, tots els equips disposen d'un lector de CD, per als casos que no sigui així i es disposi d'un floppy podeu recórrer al servei cast-o-matic i preparar-vos una imatge a mida del vostre maquinari.

En qualsevol cas, el menú que se us ofereix és idèntic independentment del medi emprat per arrencar, floppy, CD o xarxa. A continuació aniríem acceptant les opcions per defecte fins arribar a les decisions importants, llegeixis triar el disc o la partició a clonar i decidir l'ús o no d'algun tipus de compressió, gzip o lzop.

Preparació del client model abans del clonat


Abans d'iniciar el procés de clonat pròpiament dit, prepararem el que s'anomena “golden client” i que no és altra cosa que la màquina client que ara volem clonar, abans de fer-ho però hem de dur a terme unes quantes modificacions amb l'objectiu que el nostre model sigui el més genèric possible.

Fitxer /etc/fstab


Substituirem les entrades següents o similars en el vostre cas.

 
/dev/disk/by-id/ata-VBOX_HARDDISK_VB248a9232-085cf323-part1 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-VBOX_HARDDISK_VB248a9232-085cf323-part2 /                    ext3       acl,user_xattr        1 1


Per la seva alternativa clàssica.

Aprofitem per comentar que a dia d'avui, la gran majoria de distribucions GNU/Linux ha unificat la nomenclatura dels discs i tant si són IDE PATA com SATA s'hi accedeix a través del mateix dispositiu scsi, així doncs el que fins fa uns anys era /dev/hda ara és /dev/sda

 /dev/sda1       swap          swap       defaults              0 0
 /dev/sda2       /             ext3       acl,user_xattr        1 1


Fitxer /boot/grub/menu.lst

Farem la operació equivalent substituint les referències a.

 root=/dev/disk/by-id/ata-VBOX_HARDDISK_VB8f16db5e-ea7b53b9-part2


Per.

 root=/dev/sda2



Finalment ens assegurarem que el fitxer /etc/sysconfig/network/ifcfg-eth0 no incorpori cap sufix amb la adreça MAC de la targeta de xarxa com era el cas en versions prèvies de la Linkat i eliminarem els fitxers

 /etc/udev/rules.d/70-persistent-cd.rules

 /etc/udev/rules.d/70-persistent-net.rules


Normalment els sistemes GNU/Linux són el suficientment flexibles com per sobreviure a un canvi de maquinari sense queixar-se massa, desafortunadament i, de moment amb la nostra Linkat-3 encara no passa el mateix amb els dispositius com les targetes gràfiques, així que per curar-nos en salut us proposem una modificació alternativa. En el cas que els equips que participaran en el procés de clonat incorporin targetes gràfiques diferents, consistirà en substituir la referència al manegador específic del nostre client pel driver vesa, es a dir, a la secció pertinent del fitxer /etc/X11/xorg.conf hi posarem quelcom semblant al següent:

Section "Device"
  BoardName    "VirtualBox Graphics"
#  Driver       "vboxvideo"
  Driver       "vesa"
  Identifier   "Device[0]"
  VendorName   "Sun Microsystems Inc"
EndSection


Podeu aprofitar per fer d'altres modificacions, de caire estètic com incorporar els escriptoris específics de primària, infantil o secundària, canvis en l'aspecte funcional o en la imatge corporativa, optimitzar el consum de recursos eliminant serveis innecessaris, editant el fitxer /etc/inittab per comentar les entrades

1:2345:respawn:/sbin/mingetty --noclear tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6


i així evitar dedicar memòria física als terminals virtuals normalment accessibles amb la combinació de tecles Ctrl+Alt+F1+F2, … +F3 etc. Altres intervencions per optimitzar els recursos es poden fer accedint al menú Sistema | Sistema | Sessions i desactivar algun dels serveis que sabem del cert que no necessitem, finalment una darrera intervenció que podem fer rau a nivell de disc i radica en el fet que l'udpcast accedeix a les dades a baix nivell, obviant el sistema de fitxers existent, de tal manera que pot clonar qualsevol tipus de partició però a l'hora de fer-ho i sobre tot si tenim previst emprar algun tipus de compressió, l'operació serà molt més eficient si prèviament posem a zero tots els bits que conformin l'espai desocupat de la nostra partició, podem fer-ho fàcilment seguint com a root el protocol següent:

servidor:~ # cat /dev/zero > /fitxer.buit
cat: write error: No space left on device


el procés durarà una bona estona i finalment ens informarà amb un missatge d'error que ja no queda espai lliure al dispositiu, serà llavors quan eliminarem el fitxer /fitxer.buit

servidor:~ # rm -rf /fitxer.buit


a banda no està de més verificar que un cop efectuats els canvis proposats, el client d'aula continua essent operatiu, reinicieu-lo i accediu-hi per certificar-ho. Si ho feu haureu de tornar a eliminar els fitxer /etc/udev/rules.d/70-persistent-* ja que els genera el programari udev de forma dinàmica durant l'arrencada.

Per a entorns compostos d'equips amb dificultats per arrencar per xarxa, una bona alternativa és incorporar un entrada al fitxer /boot/grub/menu.lst del GRUB que ens permeti emprar el gPXE i així després d'una primera clonació estalviar-nos tot l'enrenou amb els CD.


Hem d'afegir que en certs entorns pot resultar interessant assignar als clients un nom significatiu que en faciliti la localització en cas de problemes; per fer-ho podem emprar el yast, secció Network settings | Nom de l'ordinador central/DNS per canviar el comportament establert durant la instal·lació inicial i dir-li al client que canvii el seu nom en base a la informació proporcionada pel servei de dhcp.



Ara restaria afegir als fitxers /etc/hosts i /etc/hosts.YaST2save del servidor tot un seguit d'entrades de l'estil següent:

192.168.0.139   client139.intracentre client139


Aquesta operació, aparentment un xic tediosa, es pot solventar amb l'execució com a usuari root de la següent "línia" d'instruccions combinades, per a cada fitxer.

servidor:~ # for i in `seq 50 150`; do echo "192.168.0.$i client$i.intracentre client$i" >> /etc/hosts ; done

servidor:~ # for i in `seq 50 150`; do echo "192.168.0.$i client$i.intracentre client$i" >> /etc/hosts.YaST2save ; done


Sense més dilacions i amb el servidor virtual linkat en funcionament procedirem al clonat arrencant inicialment el nostre client d'aula “modificat” clicant a F12 si s'escau i arrencant des de la unitat de CD on hi ha muntada la imatge ISO que hem descarregat del projecte udpcast. Anirem acceptant tots els valors per defecte fins el punt on ens demana quin dispositiu volem clonar, triarem /dev/sda és a dir tot el disc dur perquè el clon de destí, hores d'ara, no té el disc dur ni inicialitzat ni particionat, la següent qüestió important fa referència a l'ús, o no, de compressió per transmetre la informació.





En general la pràctica us donarà la solució òptima però, per apuntar alguna directriu us recomanem que no utilitzeu cap mena de compressió quan els discs durs o particions implicats siguin petitons ( ⇐ 20 GB ) o les CPU poc potents, també en el cas que algun dels equips participants del clonat es pengi ( probablement per problemes amb la memòria RAM ), en la resta de casos l'opció amb compressió lzop serà habitualment la més eficient. A continuació indicarem que el paper que farà el nostre golden client serà de sender, repetirem el mateix camí amb el client o clients a clonar seleccionant les mateixes alternatives exceptuant el paper que en aquest darrer cas serà el de receiver.



Uns quants minuts més tard finalitzarà el clonat, desmuntarem els CD del udpcast i reiniciarem els dos clients ara ja totalment operatius.

Clonat multicast per xarxa


Com ja haviem apuntat prèviament la potència real del programari udpcast es posa de manifest quan l'emprem simultàniament en un conjunt nombrós d'equips que tinguin la capacitat d'arrencar per xarxa o bé que estiguin habil·litats per fer-ho amb l'ús d'alternatives com Etherboot / gPXE.

Ara ens caldrà activar el component tftp del programari dnsmasq, per aconseguir-ho editarem el seu fitxer de configuració /etc/dnsmasq.conf i descomentarem les entrades següents:

dhcp-boot=pxelinux.0 

enable-tftp 

tftp-root=/var/ftpd


El directori escollit, /var/ftpd, com arrel del servei tftp s'haurà de crear; de pas també hi crearem un subdirectori pxelinux.cfg que ens farà falta per guardar-hi les opcions d'arrencada per defecte dels clients. Ho fem obrint un terminal i executant la comanda següent:

servidor:~ # mkdir -p /var/ftpd/pxelinux.cfg

Ara ens atansarem fins a la secció d'imatge PXE de l'udpcast i ens descarregarem els quatre fitxers disponibles dipositant-los tal i com s'indica a continuació.

servidor:~ # tree /var/ftpd
/var/ftpd
|-- initrd
|-- linux
|-- pxelinux.0
`-- pxelinux.cfg
    `-- default

1 directory, 4 files


El contingut del fitxer default per defecte és el següent:

default linux
label linux
  kernel linux
  append load_ramdisk=1 initrd=initrd root=01:00
  ipappend 3


label linux-preconf
  kernel linux
  append load_ramdisk=1 initrd=initrd root=01:00 auto=yes lang=US kbdmap=US
  ipappend 3

Si les seves directrius resulten massa "interactives", el podem automatitzar bastant seguint les indicacions dels paràmetres del fitxer de configuració que podem trobar a la mateixa pàgina de descàrrega. Per exemple, amb el següent fitxer default aconseguiríem estalviar-nos alguna interacció i, de pas indicar que volem clonar tot el disc PATA i emprar el tipus de compressió lzop per fer-ho.

default linux
label linux
  kernel linux
  append load_ramdisk=1 initrd=initrd root=01:00 auto=yes lang=US kbmap=US dhcp=yes port=9000 enableDiskmodule=yes netmodparm= diskmodparm= udpcparam= disk=/dev/sda compr=lzop
  ipappend 3


i amb aquest indicaríem que volem clonar la partició /dev/sda2 del disc SATA i volem fer-ho sense compressió.

default linux
label linux
  kernel linux
  append load_ramdisk=1 initrd=initrd root=01:00 auto=yes lang=US kbmap=US dhcp=yes port=9000 enableDiskmodule=yes netmodparm= diskmodparm= udpcparam= disk=/dev/sda2 compr=none
  ipappend 3


Aclarit una mica el funcionament anem a provar-ho, reiniciem el servei dnsmasq

servidor:~ # rcdnsmasq restart
Shutting name service masq caching server                            done
Starting name service masq caching server                            done


Si engeguem el nostre equip o la nostra màquina virtual clicant la tecla que ens doni entrada a les opcions d'arrencada de la BIOS, al VirtualBox i a alguns equips reals és la tecla de funció F12, escollirem l'arrencada per xarxa i ben aviat recuperarem el mateix menú que ens oferien els clients que arrencaven emprant el CD.



Ara en un cas real aniríem engegant tots els clients que participarien del clonat i quan tots s'haguessin presentat i estesin esperant al sender, clicaríem a qualsevol d'ells per iniciar el procés, tots a la vegada. Apuntar que l'efectivitat del procediment depèn molt de la qualitat de la xarxa i de les característiques tècniques del switch emprat.