Herramientas de usuario

Herramientas del sitio


manuales:servidor_systemimager

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
manuales:servidor_systemimager [2011/03/18 18:49] cayumanuales:servidor_systemimager [2015/01/09 19:01] (actual) – [Procedimiento de recuperación] cayu
Línea 10: Línea 10:
   * Actualización periódica de las Imágenes de los servidores   * Actualización periódica de las Imágenes de los servidores
   * Recuperación de un equipo a partir de una Imagen, minimizando la intervención manual dentro del procedimiento   * Recuperación de un equipo a partir de una Imagen, minimizando la intervención manual dentro del procedimiento
 +  * Que se pueda utilizar cualquier hardware disponible sin tener que perder tiempo generando configuraciones especiales
 +  * Proceso lo mas desatendido posible
  
 ===== Esquema de implementación ===== ===== Esquema de implementación =====
Línea 417: Línea 419:
  
  
-^^Disco^Sistema de archivos^Tamaño^Punto de montaje^^+^Disco^Sistema de archivos^Tamaño^Punto de montaje^
 |hda4|swap|1000|swap| |hda4|swap|1000|swap|
 |hda1|ext3|15119|/| |hda1|ext3|15119|/|
Línea 424: Línea 426:
  
  
 +El Kickstart para esa maquina
  
-Y el archivo /var/lib/systemimager/scripts/xen/{maquina} tiene informacion de la configuracion de Xen para esa maquina virtual+<code> 
 +install 
 +url --url http://10.1.2.24/redhat/ 
 +key 6c2e0645686a4a06 
 + 
 +lang es_ES.UTF-8 
 +keyboard es 
 + 
 +#network --device eth0 --bootproto static --ip 10.1.2.142 --netmask 255.255.255.0 --gateway 10.1.2.1 --nameserver 10.1.1.3 --hostname proxy1-dom0 
 +network --bootproto=dhcp 
 + 
 +rootpw --iscrypted $1$56iPwDr8$C59yfOfHe/LZNdmEaGYh4/ 
 +firewall --disabled 
 +authconfig --enableshadow --enablemd5 
 +selinux --disabled 
 +timezone --utc America/Argentina/Buenos_Aires 
 +bootloader --location=mbr --driveorder=cciss/c0d0 
 + 
 +clearpart --all --drives=sda 
 +part /boot --fstype ext3 --size=100 --ondisk=sda 
 +part pv.100000 --size=0 --grow --ondisk=sda 
 +volgroup VolGroup00 --pesize=32768 pv.100000 
 +logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=15184 
 +logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=596 --grow --maxsize=992 
 + 
 +%packages 
 +@spanish-support 
 +@virtualization 
 +wget 
 +rsync 
 +kernel-xen 
 +xen-libs 
 + 
 +%post  --interpreter=/bin/bash 
 + 
 +echo "$(date) post install" >> /root/post-install.log && wget http://10.1.2.24/ks/recuperar  -O /usr/local/bin/recuperar && /bin/bash /mnt/sysimage/usr/local/bin/recuperar proxydmz1-new >>  /root/post-install.log 2>&
 +</code> 
 + 
 +Y el archivo /var/www/html/ks/xen/{maquina} tiene informacion de la configuracion de Xen para esa maquina virtual
  
 <code> <code>
Línea 479: Línea 520:
         module /initrd-2.6.18-164.6.1.el5xen.img         module /initrd-2.6.18-164.6.1.el5xen.img
 </code> </code>
 +
 +Script de recuperacion de la VM
 +
 +<code bash>
 +#!/bin/bash
 +#Script para automatizar el deploy de una vm 
 +domU=$1
 +imageserver=10.1.202.224
 +
 +function error() {
 + if [ $1 == 0 ]; then
 + echo 'OK'
 + else
 + echo 'ERROR'
 + exit 1
 + fi
 +}
 +
 +if [ $# != 1 ]; then
 + echo "Uso: $0 nombredelaimagen"
 + exit 1
 +fi
 +
 +
 +if [ -e /etc/xen/$domU ];then
 + echo /etc/xen/$domU existe, saliendo...
 + exit 1
 +fi
 +
 +if [ $(which xm) != 0 ]; then
 + xm=1
 +else
 + echo "No encuentro xm, no voy a poder arrancar la VM."
 + xm=0
 +fi
 +
 +vgs=$(vgdisplay | grep "VG Name"| uniq | wc -l )
 +vgs=`echo $vgs | sed "s/\s//"`
 +
 +case $vgs in
 + 0)
 + echo "No encontre ningun Volume Group, crear VG antes de correr este script"
 + exit 1
 + ;;
 + 1)
 + vg=$(vgdisplay | grep "VG Name"| awk {'print $3'})
 + echo "Selecciono el unico VG que encontre, $vg"
 + ;;
 +# *)
 +# while [ -z $vg ]; do
 +# echo $(vgdisplay |grep "VG Name"|awk {'print $3'}) >> /tmp/vgs
 +# read -p "Encontre mas de un VG, cual tengo que usar? $(vgdisplay) : " 
 +# grep $REPLY /tmp/vgs && vg=$REPLY
 +# done
 +# ;;
 +esac
 +
 +echo -n "Obteiniendo informacion sobre las particiones para $domU desde $imageserver..."
 +rsync  $imageserver::kickstart/xen/$domU.diskinfo /tmp/diskinfo-file
 +error $?
 +mkdir -p /mnt/$domU
 +
 +#Calculo de espacio libre en el VG
 +vgfree=$(vgs VolGroup00 --noheadings --units M -o vg_free|cut -dM -f1|tr -d " "| cut -d, -f1)
 +vgfree=`echo "tmp=$vgfree; tmp /= 1;tmp" | /usr/bin/bc`
 +
 +for DISK  in $( cat /tmp/diskinfo-file ); do
 + SIZE=$(echo $DISK | cut -d, -f3)
 + TSIZE=$(($TSIZE +SIZE))
 + TSIZE=`echo "tmp=$TSIZE; tmp /= 1; tmp" | /usr/bin/bc`
 +done
 +
 +echo "En total voy a necesitar $TSIZE Mb "
 +
 +if [ $vgfree -lt  $TSIZE   ]; then
 + echo "No hay espacio suficiente en el VG seleccionado, tengo $vgfree Mb, necesito $TSIZE Mb"
 + exit 1
 +fi
 +
 +for DISK  in $(cat /tmp/diskinfo-file | sort -k4 -t ,); do
 +
 +DEV=$(echo $DISK | cut -d, -f1)
 +FSTYPE=$(echo $DISK | cut -d, -f2)
 +SIZE=$(echo $DISK | cut -d, -f3)
 +MNT=$(echo $DISK | cut -d, -f4)
 +
 +    case $MNT in
 + '/')
 + lvname=$domU-root
 + ;;
 + 'swap')
 + lvname=$domU-swap
 + ;;
 + *)
 + lvname=$domU-$( echo $MNT | sed s%/%-%g | /bin/cut -c1 --complement)
 + ;;
 +    esac
 +
 +echo -n  "Creando LV $lvname... "
 +if [ -e /dev/$vg/$lvname ]; then
 + echo "$lvname YA existe, error"
 + exit 1
 +else
 +    lvcreate -L$SIZE -n $lvname $vg > /dev/null
 +    error $?
 +    if [ $FSTYPE = "swap" ]; then
 + mkswap /dev/$vg/$lvname
 +    else
 + echo -n "Formateando /dev/$vg/$lvname..."
 + mkfs.$FSTYPE -q  /dev/$vg/$lvname
 + error $?
 + mkdir -p /mnt/${domU}${MNT}
 + echo -n "Montando ${MNT}..."
 + mount /dev/$vg/$lvname /mnt/${domU}${MNT}
 + error $?
 +    fi
 +fi
 +
 +done
 +
 +echo -n "Corriendo Rsync..."
 +rsync  -vaSH --quiet  --numeric-ids --exclude=/dev/* --exclude=/tmp/ $imageserver::$domU/* /mnt/$domU/ > /dev/null
 +error $?
 +
 +#for DISK in $(cat /tmp/diskinfo-file | sort -k4 -t ,); do
 +for DISK in $(cat /tmp/diskinfo-file ); do
 +    FSTYPE=$(echo $DISK | cut -d, -f2)
 +    MNT=$(echo $DISK | cut -d, -f4)
 +    if [ $FSTYPE != 'swap' ]; then 
 + echo -n "Desmontando ${MNT}..."
 + umount /mnt/${domU}${MNT}
 + error $?
 +    fi
 +done
 +
 +echo -n "Buscando configuracion de Xen..."
 +rsync  $imageserver::kickstart/xen/$domU.cfg /etc/xen/$domU.cfg > /dev/null
 +error $?
 +
 +#if  [ $xm == '1' ]; then
 +#    echo -n "Arrancando vm..."
 +#    xm create -c /etc/xen/$domU.cfg
 +#fi
 +
 +ln -s /etc/xen/$domU.cfg /etc/xen/auto/
 +
 +# Ajustando parametros de booteo del sistema
 +sed -e 's/kernel.*/& dom0_mem=96/g' /boot/grub/grub.conf > /tmp/grub.conf
 +</code>
 +
 +Lo único que tendremos que editar es el archivo de configuración de la maquina virtual de Xen, ajustandole el parametro memory acorde a los recursos prensentes en el hardware nuevo.
 +
  
  
 +{{ :manuales:procedimiento_imageserver.png }}
manuales/servidor_systemimager.1300474186.txt.gz · Última modificación: 2011/03/18 18:49 por cayu