Disposava d’un servidor en una màquina virtual d’VMWare que esta en producció i per tant, no era bona idea apagar-lo. La idea era montar una altre màquina física igual per posar-la en producció per quan la primera falli. Doncs bé, havia de montar una màquina igual que la de producció amb la mateixa configuració del servidor en producció. La cosa se m’ha allargat una mica malgrat els passos són simples. Bàsicament m’he trobat amb problemes tontos que per no estar habituat a usar Ubuntu m’han portat més temps del previst.
Per començar del host en producció aconseguim un llistat del paquets instal·lats, llencem la següent comanda des del directori i l’usari root:
dpkg --get-selections | grep -v deinstall > llista_paquets
A continuació ja podem fer tots els processos des de la màquina que anem a instal·lar. En la segona màquina he instal·lat una Ubuntu Server 6.06.1 LTS (Long Time Support) igual que en la primera, he fet una configuració de servidor normal (no LAMP) configurant el hardware adequat perquè tot funcioni. Un cop acabada la instal·lació:
# Copiem configuració del APT de producció al nou servidor
rsync -cavz root@ip_produccio:/etc/apt/ /etc/apt/
# Actualitzem repositori
apt-get update
# Actualizem paquets bàsics de la distribució
apt-get dist-upgrade
# Copiem llistat de fitxers de producció
rsync -cvz root@ip_produccio:/root/llista_paquets /root/
# Marquem paquets a instal·lar en local
dpkg --set-selections < llista_paquets
# Entrem al gestor de paquets dselect
dselect
# Ara premem la tecla 'I' i després 'intro' perquè comenci la
# descarrega i instal·lació de paquets
# Finalment premem la tecla 'Q' i 'intro'
En aquest punt ja tenim els mateixos paquets instal·lats en producció que en la nova màquina. Ara s’ha de copiar les configuracions de les aplicacions que tenim en marxa. La idea és copiar tot /etc i tot /var. Tot i que això s’ha de fer molt en compte i s’ha de depurar molt, per poder saber sempre si l’hem liat en algún moment. Ja que per exemple, no cal copiar tots els directoris de logs tot i que si estem en una LAN i no són molts megues tampoc passa res si ho copiem. El més crític, és no sobre-escriure fitxers com /etc/fstab que poden variar segons la arquitectura de les màquines. En el meu cas no calia tenir en compte gran cosa més, però penseu que hi ha aplicacions que tenen fitxers de configuració en llocs poc habituals i això també s’hauria de copiar. A més és vital que no oblideu que no només s’han de copiar els fitxers, sinó també els seus atributs, o sigui, permisos i propietaris.
Una bona idea per copiar el directori /etc és crear un fitxer amb la llista de fitxers i/o directoris que no volem copiar, en el meu cas: (exclude_list.txt)
/etc/fstab
/etc/modprobe.d
/etc/modutils
Després amb la següent comanda sincronitzem els fitxers i els seus permisos del servidor de producció al nou servidor:
rsync -cavz --delete --exclude-from=exclude_list.txt root@ip_publica:/etc/ /etc/
La resta de configuracions es poden copiar amb el mateix procés.
0 thoughts on “Clonant una Ubuntu”
Antes de llegar al final del articulo te iba a proponer el uso de rsync, pero veo que ya lo has hecho.
Un saludo
[1] Rsync como unison no siempre es una buena solucion , sobre todo si los cambios de un fichero X estan haciendose al mismo tiempo q se sincronizan y los tamaños son muy bestias.
Provadlo con un acces.log de mas de 20 megas (no vale decir tira dentro del rotatelog una truncada de menos megas …)
Y que tal un tar/star de todos ficheros a copiar ?
Igualmente , dependiendo de los entornos a veces acabas tirando hacia un init 1 o una knoppix para hacer la copia 🙁
Slds y espero no haberos rallado 😉
VMWare de per si ja suporta clonar maquines sense apagar l'ordenador. Aixi que no calia fer comandes de debian… 😛
Mira el manual del vmware….
[3]
El que comentes és bona idea, però no soluciona el meu problema del tot. Ja que llavors el que hauria de clonar és el pròpi clon. Ja que obviament l'arquitectura de la màquina real no tenia res a veure amb la virtual. Per començar tenia un RAID amb 6 discos i dues CPUs.
Però com tu apuntes solucionaria el problema de tenir fitxers que es van omplint mentre els sincronitzo problema que realment no vaig tenir perquè vaig excloure de la sincronització.
Com a nota cmentar que avui he posat en producció la màquina clonada i només he tingut un petit problema de permisos en un directori que se'm va oblidar de canviar.
Nomes comentar que ara fa poc vaig fer uns instalacio en un debian basade en un get-selections, pero en aquest cas, les fonts dels paquets eren d'un fitxer sources.list bastant gros. El resultat va ser que hi havien els mateixos pauquets a les 2 bandes, pero no les mateixes versions. Sembla que el get-selections no te en compte les versions. Sabeu alguna manera de conservar les versions?
[5]
Però el source.list dels dos paquets eren iguals????
Si això és així i fas un apt-get update i després el apt-get dist-upgrade de la màquina de producció tindràs la última versió dels paquets. Així quan facis el mateix en la màquina nova tindràs la mateixa versió també, o sigui, la útlima.
Si el que vols és aconseguir la mateixa versió, però no la última la cosa ja es complica una mica més. Perquè no has de fer el update ni el dist-upgrade a la nova màquina a més d'assegurar-te que els paquetes marcats al dselect usin les mateixes fonts que la màquina de producció, cosa que ja requereix una mica més d'elavoració en el procés.
Sincerament, la meva opinió seria actualitzar tot a la nova versió en la màquina nova, després de comprobar que tot va, la posaria en producció i l'antiga màquina de producció també l'actualitzaria.