![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Notas sobre virtualización SIV (y rpms de comms)Tuesday, 18 May 2010, 5:27:20 pm Actualizar el hosts de los rpms Se ha realizado con el siguiente procedimiento, que dista bastante de ser automático, pero al menos es sólo cortar y pegar: main1$ CA commsArganda 1% cd /tmp commsArganda 2% mkdir t commsArganda 3% cd t commsArganda 4% bash bash-2.03$ for i in 01 02 03 04 05 06 07 08 09 10 11 12 ; do mkdir -p commsl$i/../rcommsl$i ; scp siv@commsl$i:/etc/hosts commsl$i/ ; scp siv@rcommsl$i:/etc/hosts rcommsl$i/ ; done bash-2.03$ tar -cvf hosts-comms.tar comms* rcomms* bash-2.03$ ftp 16.0.62.18 Name (16.0.62.18:siv): metro Password: ftp> cd /incoming ftp> bin ftp> put hosts-comms.tar ftp> quit bash-2.03$ cd .. bash-2.03$ rm -rf t bash-2.03$ exit commsArganda 5% logout rlogin: connection closed. --- metro@seraphim:~$ cd /mirrors/reposiv/Rpms/ metro@seraphim:/mirrors/reposiv/Rpms$ mkdir t metro@seraphim:/mirrors/reposiv/Rpms$ cd t metro@seraphim:/mirrors/reposiv/Rpms/t$ scp metro@172.16.0.2:/incoming/hosts-comms.tar . metro@seraphim:/mirrors/reposiv/Rpms/t$ tar -xvf hosts-comms.tar metro@seraphim:/mirrors/reposiv/Rpms/t$ for i in */hosts ; do cat $i | sed "0,/SIV Comms host Configuration/d;/End SIV Comms host Configuration/,\$d" > ${i}.siv ; done metro@seraphim:/mirrors/reposiv/Rpms/t$ for i in comms*/hosts.siv ; do echo [$i] ; diff $i r$i ; done metro@seraphim:/mirrors/reposiv/Rpms/t$ cd .. metro@seraphim:/mirrors/reposiv/Rpms$ for i in 01 02 03 04 05 06 07 08 09 10 11 12 ; do cp t/commsl$i/hosts.siv commsl$i/hosts ; cp t/commsl$i/hosts.siv rcommsl$i/hosts ; done metro@seraphim:/mirrors/reposiv/Rpms$ rm -rf t metro@seraphim:/mirrors/reposiv/Rpms$ su dario dario@seraphim:/mirrors/reposiv/Rpms$ cd /backups/migracionsiv-vm/rpms/comms-comun-rpm dario@seraphim:/backups/migracionsiv-vm/rpms/comms-comun-rpm$ ./gen-plantillacomms2comms.sh Friday, 14 May 2010, 5:31:18 pm Se actualiza el CfgConfig.CFG de los rcomms en /mirrors/reposiv/Rpms, los CfgConfig.CFG de los rcomms no tenían las líneas de centralsiv1 y centralsiv2. Se corrige. Monday, 5 October 2009, 5:39:41 pm Añado a comms-common...rpm xEventos.Central y cía Se ha modificado el comms-common.spec para que incluya xEventosCentral y cía: ==CUT===@/usr/local/sico/siv/sistema/V/Lineas/LinFis* dirlog $self Trenes Mensajes + fichlog $self xEventos.Central xOrdenes.Central xTrazas.Central @/tmp/LinFis* dirlog TmpLinFis Trenes===CUT=== También se ha regenerado el RPM, aunque no se ha dado a metro todavía. Wednesday, 17 June 2009, 7:34:27 pm Para ver la lista de IPs de una línea Con la siguiente script: siv@commsl09:/etc$ grep siv hosts | grep -v "router_\|UR_\|UIS_\|serv_siv\|serv2siv" | expand | sed "s/ */ /g" | cut -d " " -f 1,2 | sed "s/\([^ ]*\) \(.*\)/\2 \1/g" | sort Wednesday, 17 June 2009, 7:26:17 pm Cambiado en los hosts las IPs de los comms por los de sus virtuales Se ha hehco de la siguiente manera: metro@seraphim:/mirrors/reposiv/Rpms$ j=19 ; for i in 165 169 166 170 167 158 162 163 159 160 164 12 ; do j=$(( $j + 1 )) ; sed -i "s/150.100.123.$i/16.0.59.$j/g" commsl*/hosts rcommsl*/hosts commsarganda/hosts ; done metro@seraphim:/mirrors/reposiv/Rpms$ j=19 ; for i in 165 169 166 170 167 158 162 163 159 160 164 12 ; do j=$(( $j + 1 )) ; sed -i "s/150.200.123.$i/16.0.60.$j/g" commsl*/hosts rcommsl*/hosts commsarganda/hosts ; done Tuesday, 9 June 2009, 5:02:16 pm Obtengo el directorio Repositorio/Distrib corregido y las scripts con uso de ssh de los comms virtualizados Lo he hecho en salchicha:/imgiso/comms con lo siguiente: for i in 01 02 03 04 05 06 07 11 ; do fgo "<c`echo $i| tr -d 0` ; exit" ">commsL" "cd /usr/local/sico/siv/Repositorio ; tar -cvzf /tmp/d$i.tgz Distrib/ CapturaFicheros.sh EnviaFicheros.sh; exit" ; fgo "<scp siv@commsl$i:/tmp/d$i.tgz /incoming/ ; exit" ; fget d$i.tgz ; done for i in 01 02 03 07 ; do fgo "<c`echo $i| tr -d 0` ; exit" ">commsL" "<cd /usr/local/sico/siv/scripts.local ; tar -cvzf /tmp/s$i.tgz .sh; exit" ; fgo "<scp siv@commsl$i:/tmp/s$i.tgz /incoming/ ; exit" ; fget s$i.tgz ; done for i in 04 05 06 11 ; do fgo "<c`echo $i| tr -d 0` ; exit" ">commsL" "<cd /usr/local/sico/siv/scripts ; tar -cvzf /tmp/s$i.tgz .sh; exit" ; fgo "<scp siv@commsl$i:/tmp/s$i.tgz /incoming/ ; exit" ; fget s$i.tgz ; done Y después los he instalado en metro@seraphim:/mirrors/reposiv/Rpms con lo siguiente: for i in 01 02 03 04 05 06 07 11 ; do ( cd ./commsl$i/files/Repositorio.local && rm -rf Distrib && tar -xvzf /imgiso/comms/d$i.tgz ) ; ( cd ./rcommsl$i/files/Repositorio.local && rm -rf Distrib && tar -xvzf /imgiso/comms/d$i.tgz ) ; done for i in 01 02 03 04 05 06 07 11 ; do ( cd ./commsl$i/files/checkscripts.local & tar -xvzf /imgiso/comms/s$i.tgz ) ; ( cd ./rcommsl$i/files/checkscripts.local & tar -xvzf /imgiso/comms/s$i.tgz ) ; done Friday, 22 May 2009, 6:24:48 pm FALTA: poner en sannas el directorio logs Me he dado cuenta que no he modificado el script $HOME/bin/logs para que ponga los logs en la sannas. Habrá que hacerlo para la siguiente vez que entreguemos los rpms. Update: Hecho. Tuesday, 19 May 2009, 6:59:03 pm Hago la parte de sannas y además arreglo la script de rotado de logs, y lo de llamar a distsh2 (ahora hace un "sh -c") Pues eso :). Wednesday, 6 May 2009, 7:32:13 pm Se han producido cambios de hostnames, falta rehacer los rpms entrar como metro en seraphim:/mirrors/reposiv/Rpms y hacer ./sivconfig-getchanges.sh. La lista que sale es esta: [commsl02] sivmbecerra sivmbecerra2 sivpvergara sivpvergara2 sivcanal sivcanal2 [commsl05] sivpueblonuevo sivpueblonuevo5 sivoporto sivoporto5 [commsl09] sivavdaamerica sivavdaamerica9 sivsainzbaranda sivsainzbaranda9 [commsl11] siveliptica siveliptica11 Una vez con eso, los cambios los he hecho uno a uno con una línea similar a (eran tan pocos que no lo he convertido en script): $ l=11 ; sed -i "s siveliptica siveliptica11 g" commsl$l/hosts commsl$l/files/sistema/V/CfgConfig.CFG rcommsl$l/hosts rcommsl$l/files/sistema/V/CfgConfig.CFG NOTA: Para generar el sivconfig.txt, se ha hecho en commsarganda lo siguiente: ( for i in 01 02 03 04 05 06 07 08 09 10 11 12 ; do echo [commsl$i] ; rsh commsl$i "cat /home/siv/sistema/V/CfgConfig.CFG" ; done ) > /tmp/sivconfig.txt Thursday, 16 April 2009, 6:44:04 pm Falta en los rpms quitar el distsh2 Habría que hacer que al generar los rpms de configuración de cada mauina, hiciera una pasada por Repositorio y cambiase todas los "distsh2" por "sh -c". Friday, 27 March 2009, 6:06:28 pm Para regenerar un fichero de backup de la configuración de un comms/rcomms Se regenera de la siguiente manera; ejemplo par el rcommsl01: % cd /home/siv/Repositorio % su # ./RepuestoCOMMS_Lnx.sh # chown siv *commsL*.tar.gz # ftp 152.200.169.3 user:siv bin cd /var/RepoSIV/L01 prompt put rcommsL01.tar.gz quit # exit % exit Después, para refrescar la copia que hay en seraphim (puede tardar mucho porque si está desactualizada se baja todo): seraphim# /usr/bin/rsync -avz 172.16.1.2::reposiv/ /mirrors/reposiv/ Friday, 20 March 2009, 6:38:28 pm Convertir una imagen raw a una vmdk Según este post, para convertir una imagen raw ("flat" según los de HP) a vmdk del vmplayer, basta con lo siguiente: # apt-get install qemu # qemu-img convert -O vmdk imagen-disco.raw imagen-disco.vmdk ¡UPDATE! Con el vmware player 2.5 no hace alta hacerlo, ya que soporta la imagen SCSI raw sin problemas :). Thursday, 12 March 2009, 9:55:18 am Cosas a tener en cuanta al hacer los RPMs
Tuesday, 10 March 2009, 10:29:18 am Instalar el VMWare 2.0 en Lenny El único tutorial actualizado que he visto es este, para la versión Server: Howto install VMware 2.0 Server on Debian Lenny Friday, 6 March 2009, 11:36:01 am Los ficheros para rcommsl01 están en seraphim:/backups/migracionsiv-vm/rpms/ Dentro de un subdirectorio. Friday, 6 March 2009, 8:59:52 am Generación de los ficheros de análisis de ficheros usados Se ha seguido el siguiente procedimiento en rcommsl01: # apt-get install strace # locate / >/tmp/locate.files # cd /home/siv/sun # mv control control.real # mv router router.real # mv LineaCTC.Full LineaCTC.Full.real # echo '#!/bin/sh' > control # echo 'exec strace /home/siv/sun/control.real "$@" \ 2>/tmp/control.strace' >> control # cat control | sed s/control/router/g > router # cat control | sed s/control/LineaCTC.Full/g > LineaCTC.Full # chmod 755 control LineaCTC.Full router # chown siv:siv * # strings control.real > /tmp/control.strings # strings router.real > /tmp/router.strings # strings LineaCTC.Full.real > /tmp/LineaCTC.Full.strings Se ha puesto a ejecutar % RN % pkill control Después se ha dejado ejecutar durante un par de horas, y luego se ha vuelto a la normalidad: % cd /home/siv/sun % mv control.real control % mv router.real router % mv LineaCTC.Full.real LineaCTC.Full % RN % pkill control Para traer las cosas a SICO se ha hecho un tar: % cd /tmp % tar -cvzf datarc1.tgz *.strace *.strings *.files % ftp 150.100.122.31 bin prompt cd /incoming put datarc1.tgz quit NOTA: Antes de rearrancar control hay que hacer un RN para ver que el rcomms está en EVITANDO_CONN Descripción del proyectoEl proyecto trata de la migración de los comms de SIV en las máquinas redhat virtualizadas que metro va a instalar en su lugar. Aquí se detalla el sistema usado para generar los rpm, entre otras cosas. Ficheros que se usan para generar las configuraciones Están en: seraphim:/mirrors/reposiv/Rpms/ Hay uno para cada máquina, así como scripts para henerarlos si es necesario. Para regenerarlos de la última copia que hay en FrontPCI02, se ejecuta: Pasos previos: actualizar el repocomms el frontpci02: metro@FrontPCI02:/var/Repo/RepoComms$ ./do_all.sh Actualizar las scripts en reposiv: metro@seraphim:/mirrors/reposiv/Rpms$ ./haz_backup.sh metro@seraphim:/mirrors/reposiv/Rpms$ ./get_repocomms.sh metro@seraphim:/mirrors/reposiv/Rpms$ ./aplica_repocomms.sh metro@seraphim:/mirrors/reposiv/Rpms$ ./get_commshosts.sh metro@seraphim:/mirrors/reposiv/Rpms$ ./aplica_commshosts.sh Después, hay que actualizar los .spec. Para eso, en seraphim, entrando como usuario dario, en el directorio: seraphim:/backups/migracionsiv-vm/rpms/comms-comun-rpm/ Se hace: dario@seraphim:/backups/migracionsiv-vm/rpms/comms-comun-rpm$ ./gen-plantillacomms2comms.sh Generación de los rpms En seraphim, entrando como usuario dario, en el directorio: seraphim:/backups/migracionsiv-vm/rpms/comms-comun-rpm/ Para generarlos, basta hacer un ./build-all.sh, o bien hacer un "rpmbuild -ba nombrespec". Si se modifica alguna de las plantillas (de comms o de central/commsarganda), antes de haver el build hay que ejecutar gen-plantillacomms2comms.sh o gen-plantillacentralsiv2centralsiv.sh según proceda. Para generar desde el comms-common.spec, hay un script que se ha de ejecutar antes, que es el "./comms-common-update-bin.sh", para obtener los últimos ejecutables desde campo (de c9, para ser precisos). Es decir, que para generar el comms-common: $ ./comms-common-update-bin.sh $ rpmbuild -ba comms-common.specComo alternativa, si sólo se quiere actualizar uno de los ejecutables y es de forma local (p.ej. el LineaCTC.Full que está en el /tmp de seraphim), se hace de la siguiente manera: $ ./comms-common-update-bin.sh /tmp/LineaCTC.Full $ rpmbuild -ba comms-common.spec Los rpms quedan en el subdirectorio rpms, que es un enlace simbólico a /home/dario/rpmbuildarea/RPMS/i386/ Cómo se ha hecho lo de los rpms Hay un fichero común con los binarios y la configuración básica, que es el comms-common.spec Después hay un fichero plantilla de las configuraciones específicas para los comms (comms-plantillacomms.spec) y otro para los central/commsarganda (comms-plantillacentralsiv.spec) Hay unas scripts que generan los ficheros spec de cada máquina a partir de las plantillas, uno para los comms (gen-plantillacomms2comms.sh) y otro para los central/commsarganda (gen-plantillacentralsiv2centralsiv.sh). Estos hay que ejecutarlos cada vez que se cambie algo en las plantillas. Por último están los ficheros .spec generados por las scripts anteriores. Hay un .spec autogenerado para cada comms, rcomms, central/commsArganda, rcentral/rcommsArganda. Estos no se deben de editar a mano, sino corregir la plantilla y/o los scripts de generación. Para facilitar el generado de los rpms, hay scripts que regeneran los rpms (build-all.sh). Guardar las configuracionesEntrando en frontpci02 como usuario metro, se hace: metro@FrontPCI02:~$ cd /var/Repo/RepoComms metro@FrontPCI02:/var/Repo/RepoComms$ ./do_all.sh metro@FrontPCI02:/var/Repo/RepoComms$ ./check_log_today.sh |