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 previaÚltima revisiónAmbos lados, revisión siguiente | ||
manuales:servidor_systemimager [2011/03/18 18:49] – cayu | manuales:servidor_systemimager [2011/04/08 15:18] – 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 424: | Línea 426: | ||
+ | El Kickstart para esa maquina | ||
- | Y el archivo /var/lib/systemimager/scripts/ | + | < |
+ | 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 /var/www/html/ks/ | ||
< | < | ||
Línea 479: | Línea 520: | ||
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 | /bin/cut -c1 --complement) | ||
+ | ;; | ||
+ | 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 / | ||
+ | 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 / | ||
+ | |||
+ | # Ajustando parametros de booteo del sistema | ||
+ | sed -e ' | ||
+ | </ | ||
+ | |||
+ | 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/servidor_systemimager.txt · Última modificación: 2015/01/09 19:01 por cayu