http://enavas.blogspot.com.es/2014/04/detectar-entradas-no-validas-en-los.html
en la cual nos enseñaba como conocer las entradas de los ficheros pkgsync/musthave y mayhave que no se encuentran en los repositorios. Voy a darle un pequeño giro de tuerca para actualizar los dichos archivos en el servidor puppet, ya que contienen varias de estas entradas y al ejecutar pkgsync se realentiza mucho por esto.
Lo primero de todo es asegurarnos que el equipo con el que vamos a hacer el proceso tenga añadidos en /etc/apts/sources.list y sources.d
Tal y como indica Esteban cogemos un equipo, en mi caso un portátil y ejecuto:
# pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v "^$"|sort -u > entradasNoValidas.txt
y nos creará el fichero entradasNoValidas.txt con los archivos que no se encuentran en los repositorios.
que vemos como contienen varios paquetes:
01:~# cat entradasNoValidas.txt
acroreader-es
activaid
activdriver
activhwr-es
activhwr-fr
activhwr-pt
activinspire
activinspire-help-es
activinspire-licence
activ-meta-es
activresources-core-es
activtools
aulalinex-alumno
broadcom-sta-modules-2.6.32-5-686
debian-multimedia-keyring
fglrx-kernel-2.6.32-4-686
geogebra-installer-linex
linux-image-2.6.30-1-686
linux-image-2.6.30-2-686
linux-image-2.6.32-4-686
linux-image-2.6.36-rc5
smart-installer-linex
smart-linex
ahora veamos como podemos eliminar esas líneas de los archivos /etc/pkgsync/musthave y mayhave que le indican a pkgsync los archivos que deben estar instalados y pueden estar instalados, respectivamente.
Con la el comando:
#egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/musthave > musthave.nuevo
egrep hace busquedas en el fichero musthave.nuevo. Busca las ocurrencias de lineas que le indicamos con la opción -f y el nombre de fichero, en este caso entradasNoValidas.txt, es decir que buscaría las lineas de entradas no válidas en el musthave. Como lo que queremos es precisamente lo contrario, ponemos la opción -v que nos da como salida las lineas que no cumplan la ocurrencia o no se encuentre. Por último tenemos la opción -x que le indica que las ocurrencias tienen que ser literales, así evitamos por ejemplo que si tenemos una entrada no válida el paquete smart no nos elimine también el paquete libatasmart4 que sí debe estar.
Hacemos lo propio con el archivo mayhave guardándolo en un archivo temporal:
#egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/mayhave > mayhave.auxiliar
para rizar el rizo comprobamos que no haya paquetes coincidentes en ambos archivos, para lo cual hacemos lo propio entre el musthave nuevo y el mayhave y ya obtenemos el mayhave definitivo.
#egrep -v -x -f musthave.nuevo mayhave.auxiliar > mayhave.nuevo
/etc/puppet/files/mayhave.portatil
y
/etc/puppet/files/mayhave.portatil
Si queremos lo podemos poner todo en un script genérico que quedaría tal que así:
#! /bin/bash
EQUIPO=portatil
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v "^$"|sort -u > entradasNoValidas.txt
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/musthave|sort > musthave.nuevo
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/mayhave|sort > mayhave.auxiliar
egrep -v -x -f musthave.nuevo mayhave.auxiliar|sort > mayhave.nuevo
scp -f musthave.nuevo root@servidor:/etc/puppet/files/musthave.$EQUIPO
scp -f mayhave.nuevo root@servidor:/etc/puppet/files/mayhave.$EQUIPO
rm -f mayhave.auxiliar
rm -f mayhave.$EQUIPO
rm -f musthave.$EQUIPO
rm -f entradasNoValidas.txt
en concreto para los portátiles un poco más afinado sería:
#! /bin/bash
EQUIPO=portatil
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v "^$"|sort -u > entradasNoValidas.txt
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/musthave|sort > musthave.nuevo
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/mayhave|sort > mayhave.auxiliar
egrep -v -x -f musthave.nuevo mayhave.auxiliar|sort > mayhave.nuevo
scp musthave.nuevo root@servidor:/etc/puppet/files/musthave-miniportatil-apd
scp mayhave.nuevo root@servidor:/etc/puppet/files/mayhave.$EQUIPO
rm -f mayhave.auxiliar
rm -f mayhave.nuevo
rm -f musthave.nuevo
rm -f entradasNoValidas.txt
en concreto para los portátiles un poco más afinado sería:
#! /bin/bash
EQUIPO=portatil
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v "^$"|sort -u > entradasNoValidas.txt
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/musthave|sort > musthave.nuevo
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/mayhave|sort > mayhave.auxiliar
egrep -v -x -f musthave.nuevo mayhave.auxiliar|sort > mayhave.nuevo
scp musthave.nuevo root@servidor:/etc/puppet/files/musthave-miniportatil-apd
scp mayhave.nuevo root@servidor:/etc/puppet/files/mayhave.$EQUIPO
rm -f mayhave.auxiliar
rm -f mayhave.nuevo
rm -f musthave.nuevo
rm -f entradasNoValidas.txt
#! /bin/bash
EQUIPO=workstation
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v "^$"|sort -u > entradasNoValidas.txt
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/musthave|sort > musthave.nuevo
egrep -v -x -f entradasNoValidas.txt /etc/pkgsync/mayhave|sort > mayhave.auxiliar
egrep -v -x -f musthave.nuevo mayhave.auxiliar|sort > mayhave.nuevo
scp musthave.nuevo root@servidor:/etc/puppet/modules/workstation-pkgsync/files/musthave-$EQUIPO
scp mayhave.nuevo root@servidor:/etc/puppet/modules/workstation-pkgsync/files/mayhave-$EQUIPO
rm -f mayhave.auxiliar
rm -f mayhave.nuevo
rm -f musthave.nuevo
rm -f entradasNoValidas.txt
para workstations.
# pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v "^$"|sort -u - See more at: http://enavas.blogspot.com.es/2014/04/detectar-entradas-no-validas-en-los.html#sthash.nYB6Ci6P.dpuf
#
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v
"^$"|sort -u - See more at:
http://enavas.blogspot.com.es/2014/04/detectar-entradas-no-validas-en-los.html#sthash.nYB6Ci6P.dpuf
#
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v
"^$"|sort -u - See more at:
http://enavas.blogspot.com.es/2014/04/detectar-entradas-no-validas-en-los.html#sthash.nYB6Ci6P.dpuf
#
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v
"^$"|sort -u - See more at:
http://enavas.blogspot.com.es/2014/04/detectar-entradas-no-validas-en-los.html#sthash.nYB6Ci6P.dpuf
#
pkgsync -s|grep "No se puede encontrar"|cut -f2 -d"\""|grep -v
"^$"|sort -u - See more at:
http://enavas.blogspot.com.es/2014/04/detectar-entradas-no-validas-en-los.html#sthash.nYB6Ci6P.dpuf