View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

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
  • El fichero /home/siv/sistema/V/Calendario/DiasFestivos está en el maestro. Debería actualizarse anualmente pero en la práctica no se hace.
  • Los directorios Trenes y Mensajes han de existir (debajo de LinFis##); poniendo un fichero llamado "vacio" en él.
  • EL router más moderno es el de sivchamartin(L1), que es el que habrá que meter en los RPMs.
  • Se va arenombrar CommsArganda a CentralSIV01 y se va a poner un CentralSIV02. Para tener varios CentralSIV, hay que poner NO_CAMPO en todos los CentralSIV menos en el 01, que es el que subirá los datos a las BBDD. Ver el CfgRouter.CFG y el Router.Now de CentralTCE (sin NO_CAMPO), CentralTCII01 (con NO_CAMPO) y CentralCommit (con NO_CAMPO) para un ejemplo.

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 proyecto


El 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.spec
Como 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 configuraciones


Entrando 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