miércoles, 30 de abril de 2014

Eliminando Entradas inválidas en ficheros mayhave y musthave

Tomando como punto de partida el articulo de Esteban Navas

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

Por último ya solo nos queda sustituir estos archivos por los que tenemos en puppet, en este caso 
/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

#! /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

lunes, 7 de abril de 2014

Montaje de carpetas compartidas en el Centro

Como es una cosa que tiene varias puntos y es un poco lioso, escribo esto ya que es un tema recurrente.
En el servidor nfs del centro tenemos varias carpetas compartidas y que se montan por nfs en el resto de los equipos del centro:

- Carpeta personal del usuario que se monta en los servidores de aula, en los workstation y que podemos acceder desde los portátiles a ella si necesitamos algún documento.
- Instituto que es compartida para todo el centro y equipos.
- Aulas, un directorio Aula con una carpeta para cada curso.
- Dpto. Directorio con carpeta para cada departamento.

El fichero que indica que equipos pueden montar y qué elementos es /etc/exports del servidor nfs.
Es tal que así

 /home    @ltsp-server-hosts(rw,async,no_subtree_check) @workstation-hosts(rw,async,no_subtree_check) @laptop-hosts(rw,asyn...
# Si se quiere que todos los equipos del centro monten las carpetas de compartida instituto y aulas /home/instituto 172.1X.X.X/255.255.255.0(rw,async)
/home/aulas 172.X.X.X/255.255.255.0(rw,async)

como vemos /home solo deja que los monten los equipos que pertenecen a los grupos ltsp-server-host, workstation-host..... etc.. estos grupos los gesiona ldap.
/home/instituto y /home/aulas podemos decir que monten por grupos como antes o yo lo  tengo para que pueda montarlo cualquier equipo que tenga ip del rango de mi centro.

Si queremos controlar el montaje por grupos de máquinas, las que queremos dejar que monten deben estar de alta en ldap y además estar añadida en el grupo correspondiente en la rama Netgroup donde hay un elemento para cada grupo.
Por otra parte tenemos que poner por cada carpeta que queramos montar, un elemento en la rama Automount de ldap.
En nuestro caso tenemos un elemento auto.home del de cuelgan tres elementos: /, aulas e instituto
y otro auto.master del que cuelga /home.
Estos elementos tiene la configuración de modo y punto de montaje, etc....por ejemplo el de aulas contiene:
-fstype=nfs,rw,hard,intr,nodev,nosuid,nolock,rsize=8192 servidor:/home/aulas

Hasta aquí toda la configuración de la red, ahora en cada equipo:

En LTSP y Workstation se montan las carpetas automáticamente en el arranque gracias a los paquetes de automount y automount-ldap.
En portátiles no se monta automáticamente sino sólo cuando hace falta.
Para montar y acceder a las carpetas en los escritorios tanto de portatiles como ltsp, etc... tenemos unos enlaces dinámicos en el escritorio cuya configuración está en el archivo /etc/aplicaciones.cfg pego un fragmento de un portátil:

[categorias]
carpetas = aulas,instituto
educacion = constructor,descartes,exe,geogebra,gpaint,jclic,pyromaths,qcad,scratch,squeak,step,tuxmath
internet = conferencia,correo,educarex,googleearth,grulla,linexedu,mensajeria,miro,piar,rayuela,recursos,wikipedia
imagenysonido = audacious,camaraweb,canto,capturavideo,editoraudio,editorvideo,escaner,fotos,gimp,imagination,visorimagene$
herramientas = anotaciones,autoedicion,buscar,calculadora,compresor,diccionario,editorweb,hojadecalculo,impresion,editorte$
juegos = dreamchess,glest,neverball,secretmaryo,tangram,trofeo,tuxracer,wesnoth,wormux,armagetron

[parametros]
vertical = false

[aulas]
iconsii = /usr/share/pixmaps/linex/griesaulass1.png
exec = aulasinst
terminal = false
name[es_es] = \s\s
type = Application
icon = /usr/share/pixmaps/linex/bngriesaulass1.png

Como vemos en categoría carpeta en este caso un portátil nada más tiene lanzador para carpetas aulas e instituto, que viene desarrollada más abajo.
Vemos que en carpeta aulas en exec indica que cuando se pulse llamará al script aulasinst.  para montar la carpeta.

Esos scripts: aulasinst, institutoinst, dptoinst y homeinst y están en el directorio /usr/bin/.

Vemos el contenido de la de aulas:
#!/bin/sh

esta=`ping servidor -c 1 -w 2 2>/dev/null |grep  "1 received"`
if [ "$esta" ]; then
cd /homeInst/aulas
nautilus /homeInst/aulas
else
 zenity --info \
--text "No está conectado a la red de su IES, por tanto su
directorio personal no se encuentra disponible"
fi

que como podemos observar mira si es accesible el servidor del centro con ping y si es así abre el navegador, y automount se encargará de montarlo en este momento.

En los ltsp y workstation el contenido en aplicaciones.cfg es un poco diferente, ya que al estar montadas las carpetas sólo tiene que abrirlas con el navegador como vemos:

[aulas]
iconsii = /usr/share/pixmaps/linex/bngriesaulass1.png
exec = nautilus /home/aulas
terminal = false
name[es_es] = \s\s
type = Application
icon = /usr/share/pixmaps/linex/griesaulass1.png

Un poquito engorroso pero es todo.







sábado, 5 de abril de 2014

Arreglar teclado de portátil APD que se le ha roto membrana de tecla



Me ha llegado un portátil APD que se le había saltado una tecla y a la vez viene sin la membrana que facilita el retroceso de la tecla.
Como tengo un teclado al que le faltaban varias teclas, lo he destinado para repuestos y con éste voy a arreglar el otro.
Estos son los materiales que necesitamos para la reparación: membrana, tecla, mecanismos de tecla, destornillador plano pequeño, Loctite y alicates o pinzas.
Lo Primero es retirar la tecla del teclado viejo.
Para ello hacemos palanca con mucho cuidado con un destornillador en la parte de abajo de la tecla hasta que salte la tecla
Aparte tenemos que sacar el mecanismo que mantiene la tecla unida al teclado, que son dos piezas de plástico que permite el juego de tecla en reposo y pulsada. 
Están sujetas al teclado por dos pestañas metálicas en la parte de abajo y otra mayor en la parte superior.
La liberamos primero de la parte de abajo haciendo también palanca.
Hay que tener cuidado ya que al ser plástico puede romperse.
Una vez suelto de abajo lo sacamos del enganche de la parte superior.
La pieza es tal y como se muestra, son dos piezas de plástico encajadas, que le permite un movimiento como si fuera unas tijeras tal y como se puede ver.
La membrana viene pegada al tecla. pero si no está, como es nuestro caso, también la podemos desprender de otro, sólo es necesario con un cuter o destornillador finito darle en la base y se despega sin problema.
 Para pega nuevamente la membrana podemos poner un poquito de loctite en los bordes de la pestaña y volver a colocarlo en su sitio con mucho cuidado de no pasar el loctite en el contacto de la tecla..

 
Después de esperar a que se seque el pegamento ya sólo queda montar de nuevo el mecanismo y la
tecla.
Enganchamos el mecanismo de la parte de arriba, y na vez colocado en su sitio, presionamos los enganches de la parte inferior con el dedo para la las pestañitas de plástico entren en los enganches metálicos del teclado.

Y ya casi está, para finalizar ponemos la tecla encima del mecanismo metiéndola desde arriba hacia abajo, y una vez en su sitio, presionamos con el dedo. Oiremos como encaja con el mecanismo en la parte de abajo de la tecla.

Redimensionar imágenes con gThumb

Hasta ahora cuando tenía que redimensionar alguna imagen, para por ejemplo que ocupara menos espacio y poder subirla sin problemas a la web, portal Joomla, etc... utilizaba el programa de manipulación de imágenes GIMP.
GIMP es un programa de manipulación de imágenes muy potente, pero a veces un poco engorroso.
He encontrado que en desde un visor de imágenes que viene por defecto en Linux Mint, el visor de imágenes gThumb se puede redimensionar imágenes de manera muy sencilla y un periquete.
Sólo es necesario lanzar el visor de imágenes y se nos abrirá, elegimos carpeta donde tenemos la imagen o imágenes.
Seleccionamos asimismo la imagen que queremos redimensionar. Podemos redimensionar varias a la vez, sólo es necesario seleccionarlas con ctrl + click.
Le damos al menú Herramientas y Redimensionar y se nos abrirá una ventana dónde podemos entre otras cosas poner el % al que queremos redimiensionar.
También podemos elegir si queremos que quede el archivo con el mismo nombre en cuyo caso se sobreescribirá el archivo, o ponerle nombre nuevo.