manuales:servidor_systemimager
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaPróxima revisiónAmbos lados, revisión siguiente | ||
manuales:servidor_systemimager [2011/03/14 15:03] – cayu | manuales:servidor_systemimager [2011/03/18 19:00] – cayu | ||
---|---|---|---|
Línea 408: | Línea 408: | ||
?> | ?> | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Procedimiento de recuperación ==== | ||
+ | |||
+ | Para recuperar la imagen almacenada en el servidor, para RH lo ideal es ejecutar el procedimiento kickstart, en este caso lo que hacemos es recuperar un script que ejecuta todos los comandos necesarios para generar una maquina virtual. | ||
+ | |||
+ | Dicho script obtiene el archivo / | ||
+ | |||
+ | |||
+ | ^^Disco^Sistema de archivos^Tamaño^Punto de montaje^^ | ||
+ | |hda4|swap|1000|swap| | ||
+ | |hda1|ext3|15119|/ | ||
+ | |hda2|ext3|3024|/ | ||
+ | |hda3|ext3|10080|/ | ||
+ | |||
+ | |||
+ | El Kickstart para esa maquina | ||
+ | |||
+ | < | ||
+ | install | ||
+ | url --url http:// | ||
+ | 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/ | ||
+ | firewall --disabled | ||
+ | authconfig --enableshadow --enablemd5 | ||
+ | selinux --disabled | ||
+ | timezone --utc America/ | ||
+ | bootloader --location=mbr --driveorder=cciss/ | ||
+ | |||
+ | 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=/ | ||
+ | |||
+ | echo " | ||
+ | </ | ||
+ | |||
+ | Y el archivo / | ||
+ | |||
+ | < | ||
+ | name = " | ||
+ | memory = " | ||
+ | disk = [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ] | ||
+ | |||
+ | vif = [ ' | ||
+ | |||
+ | uuid = " | ||
+ | bootloader="/ | ||
+ | vcpus=2 | ||
+ | on_reboot | ||
+ | on_crash | ||
+ | </ | ||
+ | |||
+ | |||
+ | **/ | ||
+ | |||
+ | En este archivo se especifican las opciones de booteo de la maquina física que contiene la maquina virtual, | ||
+ | |||
+ | En la linea | ||
+ | |||
+ | < | ||
+ | kernel / | ||
+ | </ | ||
+ | |||
+ | se especifica el kernel de Xen (dom0) y las opciones de booteo.\\ | ||
+ | Una vez que esta instalada la maquina virtual podemos aplicar la configuración de esta manera para que solo asigne 96M de RAM a la maquina fisica (dom0), | ||
+ | |||
+ | < | ||
+ | kernel / | ||
+ | </ | ||
+ | |||
+ | luego en la configuración de la maquina virtual de Xen le asignamos la memoria RAM sobrante, ya que esta depende cuanta memoria tenga la maquina que consigamos para esta tarea. | ||
+ | |||
+ | |||
+ | < | ||
+ | # | ||
+ | default=0 | ||
+ | timeout=5 | ||
+ | splashimage=(hd0, | ||
+ | hiddenmenu | ||
+ | title Red Hat Enterprise Linux Server (2.6.18-164.6.1.el5xen) | ||
+ | root (hd0,0) | ||
+ | kernel / | ||
+ | module / | ||
+ | module / | ||
+ | </ | ||
+ | |||
+ | 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 ' | ||
+ | else | ||
+ | echo ' | ||
+ | exit 1 | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | if [ $# != 1 ]; then | ||
+ | echo "Uso: $0 nombredelaimagen" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | |||
+ | if [ -e / | ||
+ | echo / | ||
+ | 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 " | ||
+ | |||
+ | 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 {' | ||
+ | echo " | ||
+ | ;; | ||
+ | # *) | ||
+ | # while [ -z $vg ]; do | ||
+ | # echo $(vgdisplay |grep "VG Name" | ||
+ | # read -p " | ||
+ | # grep $REPLY /tmp/vgs && vg=$REPLY | ||
+ | # done | ||
+ | # ;; | ||
+ | esac | ||
+ | |||
+ | echo -n " | ||
+ | rsync $imageserver:: | ||
+ | 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 " | ||
+ | |||
+ | for DISK in $( cat / | ||
+ | SIZE=$(echo $DISK | cut -d, -f3) | ||
+ | TSIZE=$(($TSIZE +SIZE)) | ||
+ | TSIZE=`echo " | ||
+ | done | ||
+ | |||
+ | echo "En total voy a necesitar $TSIZE Mb " | ||
+ | |||
+ | if [ $vgfree -lt $TSIZE | ||
+ | echo "No hay espacio suficiente en el VG seleccionado, | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | for DISK in $(cat / | ||
+ | |||
+ | 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 | ||
+ | ;; | ||
+ | ' | ||
+ | lvname=$domU-swap | ||
+ | ;; | ||
+ | *) | ||
+ | lvname=$domU-$( echo $MNT | sed s%/%-%g | / | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | echo -n " | ||
+ | if [ -e / | ||
+ | echo " | ||
+ | exit 1 | ||
+ | else | ||
+ | lvcreate -L$SIZE -n $lvname $vg > /dev/null | ||
+ | error $? | ||
+ | if [ $FSTYPE = " | ||
+ | mkswap / | ||
+ | else | ||
+ | echo -n " | ||
+ | mkfs.$FSTYPE -q / | ||
+ | error $? | ||
+ | mkdir -p / | ||
+ | echo -n " | ||
+ | mount / | ||
+ | error $? | ||
+ | fi | ||
+ | |||
+ | fi | ||
+ | |||
+ | done | ||
+ | echo -n " | ||
+ | rsync -vaSH --quiet | ||
+ | error $? | ||
+ | for DISK in $(cat / | ||
+ | FSTYPE=$(echo $DISK | cut -d, -f2) | ||
+ | MNT=$(echo $DISK | cut -d, -f4) | ||
+ | if [ $FSTYPE != ' | ||
+ | echo -n " | ||
+ | umount / | ||
+ | error $? | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | echo -n " | ||
+ | rsync $imageserver:: | ||
+ | error $? | ||
+ | if [ $xm == ' | ||
+ | echo -n " | ||
+ | xm create -c / | ||
+ | fi | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | {{ : |
manuales/servidor_systemimager.txt · Última modificación: 2015/01/09 19:01 por cayu