jueves, 1 de diciembre de 2016

INSTALAR UBUNTU EN HP255G3


No sé porque, o bueno sí lo sé, pero instalar ubuntu en portátiles nuevo, sobre todo HP se está conviertiendo en un pequeño rompedero de cabezas, y es que no sé puede iniciar desde un usb arrancable o dvd para poder hacer una nueva instalación, es más en alguna ocasión como en los hp250g3 no se puede entrar ni en la bios, te dice que tienes que actualizarla.
1º Descargar actualización de bios.:
      - entrar en una navegador y buscar drivers y modelo del portátil.
      - Elegimos la página del fabricante, en mi caso me manda a http://support.hp.com/pe-es/product/hp-255-g3-notebook-pc/6709396/drivers
      - Elegimos el sistema operativo que tenga instalado de fábrica y nos aparecerán todos los drivers agrupados en categorías.
      - Elegimos la categoría de BIOS y descargamos la Actualización que queramos, si es que hay varias.

2º Instalar actualización: sencillo, la ejecutamos asegurándonos de estar conectados al cargador por que si se apaga sin finalizar la actualización tenemos un problema.
       - El proceso consiste en la actualización en windows, reinicio y luego se actualiza la bios. Al finalizar arrancará nuevamente.

3º Instalación de ubuntu.
       - En este momento ya podremos entrar en la bios para decirle que nos permita arrancar desde dvd o usb o bien con las teclas F cambiar el dispositivo de arranque (F9) en mi caso.
       - Realizar instalación de Ubuntu

4º Cambio de prioridad de arranque en la bios.
       - Después de realizar la instalación seguirá arrancando desde windows, debido a que el gestor de arranque UEFI del SO sigue siendo el de windows. Para cambiarlo entramos en bios nos vamos a la sección de boot o arranque y en la prioridad como primer dispositivo tendrá arranque de SO o parecido. Al seleccionarlo vemos que tenemos dos gestores aparecerá el gestor de Windows en primer lugar y el de ubuntu en el segundo. Lo cambiamos con F5 o F6 y una vez que esté el de ubuntu en primer lugar ya arrancará correctamente.




jueves, 14 de julio de 2016

Script para añadir paquetes a pkgsync

Usamos la utilidad pkgsync para mantener estables y automatizados los paquetes de todos los equipos. Puedes verlo mejor en el siguiente artículo de Esteban Navas:
https://enavas.blogspot.com.es/2013/12/compartir-la-gestion-de-paquetes.html
Pkgsync utiliza tres archivos en /etc/pkgsync, musthave que contine los paquetes de deben estar instalados( los instalaría), mayhave para los que pueden estar instalados (no los desinstalaría) y maynothave para los que no deben estar instalados (los desinstala).
Tenemos un sistema de automatización de tareas puppet que se encarga de mantenernos sincronizados esos paquetes en los diferentes equipos, pero lógicamente hay que meter los nombres de los paquetes en el servidor.
Como en mi centro tengo varios tipos de equipos diferentes, más de diez, he creado un script para ayudarme a introducir esos paquetes en los diferentes archivos.
Se ejecuta de la siguiente manera:

anadeAPkgsyncXubuntu.sh [-y (para mayhave.ies)|-n (para maynothave.ies)|-t (para musthave.ies)] -[a(para todos)|w(para workstations)|-l(para ltsps)|m (para miniportátiles)|s (para siatic)|i (para infolab) nombre_de_paquete


Puedes descargarlo desde aquí:


Lógicamente está adaptado para mi centro pero es fácilmente adaptable para cualquiera.
Lo único un poco especial es que como tengo varios tipos de workstation y varios de miniportátiles he creado dos array con nombres que le doy a los diferentes tipos y el número diferente de estos, así cuando tiene que añadir un paquete a los miniportátiles lo hace con un bucle a los diferentes archivos de cada tipo.


miércoles, 9 de marzo de 2016

Preparar una imagen para clonar

Como estamos renovando todos los equipos al nuevo sistema operativo LinEx/ubuntu, voy a poner los pasos que doy para una vez instalado, preparar una imagen para pasarlo al resto de equipos mediante clonezilla.

Hizo un compañero una documentación bastante bueno, pero como quiera que no la encuentro....

Después de tener el sistema operativo instalado correctamente y actualizado hay que quitar la información del equipo que pueda entrar en conflicto con otros equipos cuando se restaure.

 - Cambiar la contraseña de root para que si la utilizan otros compañeros no haya problema. Una buena puede ser linex.

 - Borramos el nombre del equipo de los ficheros /etc/hosts /etc/hostname luego al restaurar el equipo en otro nuevo pasaremos el script de inicio PrimerArranque y él se encargará de poner el nuevo nombre correctamente.

 - Borramos el archivo /etc/udev/rules.d/70-persistent-net.rules que es el que contiene la información de las tarjetas de red. Si no lo borraramos el nuevo equipo pensaría que tiene la tarjeta de red del de la imagen y habría que cambiarlo.

 - Cambiar /etc/fstab. Como en el fstab normalmente suelen estar indicadas las particiones por sus uuid, después de clonar la imagen algunas veces hay problemas de que no reconoce la partición. Por ello yo sustituyo el uuid por su ubicación, normalmente sólo será /dev/sda1 para la raíz / y /dev/sda5 para swap. Aunque si tenemos más particiones que utilizamos y aparecen ahí deberíamos de cambiarlo.

 - Borrar cache de paquetes de apt para que la imagen sea lo más pequeña posible, luego se regenerarán cuando actualicemos el nuevo equipo, eso se hace con apt-get clean yo también hago, maniático de mi, apt-get autoclean.

 - Borrar el directorio /var/lib/puppet/ssl es el que contiene los certificados puppet.

También quito las cosas que he ido metiendo en puppet para mis equipos, por la misma razón que la contraseña de root, entre otros:

 - Borrar hosts del instituto( direcciones de servidor nfs, servidorweb) de /etc/hosts.

 - Borrar las authorized keys de mi centro de /root/.ssh/authorized_keys sólo dejo las de la sección de AdministracionSI.

 - Borrar las impresoras que haya colocado de /etc/cups/printers.conf

 - Borrar los archivos en /root que haya podido utilizar para alguna tarea.

 - Borrar las carpetas de los usuarios /home/profesor/* y /home/alumnos/*

 - Borrar las ejecuciones que hayamos podido meter en el crontab con crontab -e.

 - Borrar carpetas y archivos creados por instalaciones de puppet: /var/cache/paquetes/* y /var/actualizado*.

 Bueno, creo que eso es todo.

 Preparar imagen para Güin2 

Tenemos portátiles en el centro que vienen con güin2.

Como quiera que sea que quiero que todo el mundo utilice LinEx y esta gente no podía utilizarlo, me he planteado pasar todos los portátiles estos a un SO dual para curarme en salud por si en el futuro necesitan alguna aplicación win.
Así por defecto arrancarán en linEx y tendrán la opción ( o no) de arrancar windows si lo necesitan.
Como es inabordable ir uno por uno me he planteado hacer una imagen y luego restaurarla al resto.

Creo que muchos de ellos ya cogen la clave de activación por el número de serie del equipo, y los que no se lo meteré a mano.

Parto del güin2 que tenía cada uno instalado, luego:

 - Elimino archivos existentes de usuario e impresoras. - Me voy a desinstalar programas y desinsatalo todo lo que no me cuadra: búsqueda de navegadores, skype, etc....

 - Hago lo propio con las extensiones de los navegadores: barra bing, etc....

 - Actualizo con todas las actualizaciones disponibles.....

 - Espero 3 meses a que se instalen todas las actualizaciones....

 - Instalo las últimas versiones de LibreOffice, navegadores y Adobe Reader.

 - Pongo contraseña de administrador y creo cuenta de Profesor con privilegios de administrador y de alumno sin contraseña. Así si necesitan instalar algún programa nuevo el profesor podrá instalarlo y yo me aseguro que siempre podré entrar (por que ya ha pasado que usaban el usuario administrador y lo han cambiado...vaya lucernas).

 - Entro en propiedades de la red y deshabilito protocolo ipv6 y compartición de archivos e impresoras microsoft, ya que al parecer meten mucho tráfico en la red.

 - Desactivo Actualizaciones automáticas.

 - Cambio nombre de equipo en Administración del Sistema.

 - Ejecuto Liberar espacio en disco dándole primero a limpiar los archivos del sistema, que es lo que más ocupa y después seleccionando todos los archivos a eliminar.

 - Ejecuto desfragmentar disco ya que voy a redimensionar la particion.

- Elimino la licencia de activación de windows para que cuando se restaure coja la suya. Viene bien explicado en  https://siliseed.com/2012/11/desinstalar-serial-de-windows-original-usarla-pc.html, pero básicamente abrir consola como administrador ejecutar slmgr /dlv   nos mostrará datos de activación y tomamos nota del id de activación.
Ejecutamos slmgr /upk con el id de activación que hemos tomado y nos da confirmacion de activación eliminada.
- Es aconsejable también hacer un chequeo de archivos de todas  las particiones windows ya que si estuvieran pendientes de chequeo al hacer la imagen con clonezilla podría darnos fallo.

- Ejecuto crear punto de restauración, ya que se habían eliminado todos con la limpieza anterior. Y ya todo preparado para redimensionar particiones con gparted y clonar.

martes, 29 de septiembre de 2015

A servidor NFS muerto, servidor NFS puesto.

Gran problema la otra mañana, y es que el Servidor NFS quería dejar de estar con nosotros....
No es que estuviera muerto, sino más bien como en el chiste:

- ¡¡¡ Mamá, mamá¡¡ Papá se ha muerto encima de la criada.
- Pero, ¿está muerto ' del to'?
- No, .... Todavía 'colea un poquino'

 Pues eso, al parecer la fuente de alimentación no quería trabajar de forma continua y se apagaba el servidor de vez en cuando.
Como mientras no esté levantado el servidor lo se pueden logear los usuarios en los ordenadores de aulas y departamentos, ni obtener direcciones ip por dhcp, se paraliza el centro.
El proceso lógico según las instrucciones que tenemos sería, creo recordar restaurar imágen del servidor squeeze y pasarle un script para la migración a wheezy, pero me dió por probar el cambiar directamente los discos duros del servidor a otro equipo (cosa que sí me había funcionado en otro tipo de equipos). Quizá no estaría del todo optimizado, pero hacer el mínimo perjuicio sería lo más rápido.
Lógicamente guardamos copias de seguridad, pero al igual que con los discos duros, son archivos de instalación en otro equipo, por lo que la restauración desde las copias de seguridad plantearían los mismos problemas.

Si yo fuera una persona más capaz, como la mayoría de mis compañeros, montaría un servidor debian y añadiría los servicios y configuraciones, pero bastante que me da la cabeza para intercambiar discos....


Bueno proceso:


- Cojo el servidor de aula de la biblioteca que es el que menos perjuicio causará.
- Desconecto el disco duro del servidor nuevo, para cuando me llegue el repuesto del servidor NFS volver a dejar todo como estaba.
- Pincho los discos duros del antiguo servidor NFS al nuevo. En mi caso son dos, ya que al disco donde estaba todo(disco IDE), le añadí otro exclusivo para los home de los usuarios, ya así aumentaba espacio almacenamiento y velocidad ( es un WD rápido y SATA).
- Entro en bios del equipo y modifico la secuencia de arranque, Tengo que arrancar desde el disco IDE, pero éste no me aparece en la lista de dispositivos. marco el SATA y luego en el apartado de la bios de Discos Duros ya si que me aparece que está como primera opción el SATA, lo cambio por el IDE y de esta forma ya me aparece en el listado de secuencia de arranque.
- Arranco. En principio todo bien funciona todo perfecto.
- Problema: después de unas horas funcionando me empieza a escupir mensajes el syslog y termina bloqueándose con mensajes de problemas de kernel.
- Pruebo a iniciarlos desde otra entrada del grub con otro kernel diferente. La que está por defecto era con kernel 3.14. Pruebo con un kernel inferior, con el 3.2.
- Para que si hay un corte de corriente vuelva a arrancarme con este kernel, cambio la entrada por defecto en el grub, en /boot/grub.d/grub.cfg cambio "set default="0"" por "set default="2""

- De momento probando, pero con buena pinta......



lunes, 29 de junio de 2015

Backup completo de los servidores

Tal y como comentaba en la entrada de tareas de inicio de curso:

http://iesomatiasrmtnez.blogspot.com/2014/08/tareas-de-inicio-de-curso.html

a parte de las copias de seguridad incrementales que se hacen de manera automática en el servidorweb, suelo hacer una copia de seguridad completa de los siguientes servidores:

- Servidor LDAP
- Servidor NFS
- ServidorWeb

Para ello utilizo un script similar al que utilizo para las copias incrementales con el siguiente contenido:

#cat backupCompleto.sh 
DESTINO=/media/CopiaSeguridad/JUNIO2015 
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin 
install -d $DESTINO
install -d $DESTINO/servidor 
install -d $DESTINO/servidorweb 
install -d $DESTINO/ldap 
rsync --force --ignore-errors --delete --delete-excluded --excludefrom=/usr/local/bin/backup/servidor.excluded.completo 
                                --log-file=$DESTINO/completo.log -av root@servidor:/ $DESTINO/servidor/ $DESTINO/Error.log 
rsync --force --ignore-errors --delete --delete-excluded --excludefrom=/usr/local/bin/backup/servidorweb.excluded.completo                                 --log-file=$DESTINO/completo.log -av /  $DESTINO/servidorweb/ 2>$DESTINO/Error.log 
rsync --force --ignore-errors --delete --delete-excluded --exclude-from=/usr/local/bin/backup/ldap.excluded.completo 
                              --log-file=$DESTINO/completo.log -av root@ldap:/ $DESTINO/ldap/ 2>$DESTINO/Error.log

Lo que hace es lo siguiente:
- Establece el destino de la copia de seguridad en /media/CopiaSeguridad que es donde estará montado el disco duro donde realizo las copias.
- 4 órdenes install para crear el directorio raiz donde se guardarán las copias de seguridad del año y los tres directorios donde se almacenarán las copias, uno para servidor nfs, otro para ldap y otro para servidorweb
-3 órdenes rsync para cada una de las copias de seguridad.
Obsérvese que hay dos archivos de log para que quede constancia.
El primero completo.log donde se van a guardar la salida de ejecución de rsync y el otro Error.log donde se redireccionan los errores.

miércoles, 15 de abril de 2015

Cambiar sesión de inicio de gdm. Update-alternatives en Debian

En el artículo de Esteban Navas sobre update-alternatives en Debian, nos enseñaba las principales opciones de update-alternatives.
En este caso yo me quiero asegurar que por defecto todos los usuarios comiencen su sesión en gnome, a menos que ellos de forma intencionada elijan iniciar en otra sesión.
Si queremos ver qué alternativa está configurada por defecto lo podemos hacer con la opción --display :

root@servidorweb:/# update-alternatives --display x-session-manager
x-session-manager - modo manual
 el enlace apunta actualmente a /usr/bin/gnome-session
/usr/bin/gnome-session - prioridad 50
 esclavo x-session-manager.1.gz: /usr/share/man/man1/gnome-session.1.gz
/usr/bin/gnome-session-fallback - prioridad 100
 esclavo x-session-manager.1.gz: /usr/share/man/man1/gnome-session.1.gz
/usr/bin/startxfce4 - prioridad 50
 esclavo x-session-manager.1.gz: /usr/share/man/man1/startxfce4.1.gz
/usr/bin/xfce4-session - prioridad 40
 esclavo x-session-manager.1.gz: /usr/share/man/man1/xfce4-session.1.gz
Actualmente la «mejor» versión es `/usr/bin/gnome-session-fallback'.



Esto se hace con el siguiente comando: update-alternatives --config x-session-manager , que nos da como salida las diferentes opciones que hay y con un asterisco muestra cual es la predeterminada.
root@servidorweb:/# update-alternatives --config x-session-manager
Existen 4 opcioens para la alternativa x-session-manager (que provee /usr/bin/x-session-manager).

  Selección   Ruta                             Prioridad  Estado
------------------------------------------------------------
  0            /usr/bin/gnome-session-fallback   100       modo automático
  1            /usr/bin/gnome-session            50        modo manual
  2            /usr/bin/gnome-session-fallback   100       modo manual
  3            /usr/bin/startxfce4               50        modo manual
* 4            /usr/bin/xfce4-session            40        modo manual

Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección:

Por defecto está el entorno XFCE, si queremos pasarla a gnome pulsaríamos 1 y le damos a enter.

El problema es que esta forma es interactiva, y por ello no podríamos meterlo en ningún script o en tarea puppet.
Esto lo podemos solucionar con la opción --set, que nos pone un valor determinado.
Así si ejecutamos:
update-alternatives --set x-session-manager /usr/bin/gnome-session
update-alternatives: utilizando /usr/bin/gnome-session para proveer /usr/bin/x-session-manager (x-session-manager) en modo manual
nos cambiaría la opción por defecto.









miércoles, 18 de marzo de 2015

Montaje de disco USB por nfs

Van a venir a hacer unas pruebas con esta idea:
Tienen una aplicación que funciona en linux para esta prueba. Los niños tendrían que utilizar esa aplicación para responder los que se les plantea.
Quieren que montemos un usb en una máquina de tal forma que la aplicación pueda escribir los resultados en dicho pendrive.
Tienen mucho interés en que no podamos copiar los archivos, por lo que quieren que se monte pero no que copiemos el contenido para compartirlo.

Por ello he utilizado el sistema de compartición por nfs que tenemos para montarlo, aunque en vez de montarlo en el servidor nfs voy a hacerlo en el servidorweb, un ltsp-server que tengo. Para ello la única operación previa es instalar nfs-kernel-server.

       1 . Enganchar el usb e identificar cual es el dispositivo:
root@servidorweb:~# ls /dev/sd*
/dev/sda   /dev/sda2  /dev/sdb   /dev/sdc   /dev/sdd   /dev/sde
/dev/sda1  /dev/sda3  /dev/sdb1  /dev/sdc1  /dev/sdd1  /dev/sde1
en mi caso es el último, /dev/sde1.

     2. Crear un directorio donde vamos a montar el usb:

root@servidorweb:~# mkdir /mnt/clone

     3. Montar el usb con opciones escribible.

root@servidorweb:~# mount -o rw,defaults,umask=0000 /dev/sde1 /mnt/clone/

     4. Para compartir el directorio por nfs especificamos en /etc/exports con qué máquinas y qué directorios:
root@servidorweb:~# cat /etc/exports 
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/mnt/clone 172.XX.XX.X/255.255.255.0(rw,async)
en este caso digo que quiero compartir a todos los equipos del rango 172.XX.XX.X en modo escribible y asincrono. Con esto ya está finalizada la configuración del servidor. 
Ahora queda configuración en los clientes.
     5. En archivo /etc/master dice los ficheros en que tiene que mirar para montar directorios por nfs en arranque con autofs.
root@cliente:~# cat /etc/auto.master
#
# Sample auto.master file
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# For details of the format look at autofs(5).
#
#/misc /etc/auto.misc
#
# NOTE: mounts done from a hosts map will be mounted with the
# "nosuid" and "nodev" options unless the "suid" and "dev"
# options are explicitly given.
#
#/net -hosts
#
# Include /etc/auto.master.d/*.autofs
#
+dir:/etc/auto.master.d
#
# Include central master map if it can be found using
# nsswitch sources.
#
# Note that if there are entries for /net or /misc (as
# above) in the included master map any keys that are the
# same will not be seen as the first read key seen takes
# precedence.
#
+auto.master
/homeInst /etc/auto.instituto

en nuestro caso dice que monte en /homeInst lo que le indica el archivo /etc/auto.instituto
     6. /etc/auto.instituto
root@cliente:~# cat /etc/auto.instituto
aulas -fstype=nfs,rw,hard,intr,nodev,nosuid,nolock,rsize=8192 servidor:/home/aulas
personal -fstype=nfs,vers=3,rw,hard,intr,nodev,nosuid,nolock,nobrowse,rsize=8192 servidor:/home/profesor/$USER
instituto -fstype=nfs,vers=3,rw,hard,intr,nodev,nosuid,nolock,nobrowse,rsize=8192 servidor:/home/instituto
departamento  -fstype=nfs,vers=3,rw,hard,intr,nodev,nosuid,nolock,nobrowse,rsize=8192 servidor:/home/profesor/dpto
prueba -fstype=nfs,vers=3,rw,hard,intr,nodev,nosuid,nolock,nobrowse,rsize=8192 servidorweb:/mnt/clone
en nuestro caso ya tenía 4 carpetas para que se montaran: aulas, personal, instituto y departamento, yo añado la de prueba que le indica que la tiene que montar del servidorweb carpeta /mnt/clone.
Es decir la carpeta se montará en /homeInst/prueba
     7. La carpeta sólo se montará cuando intentemos acceder a ella, y lo podemos hacer de dos formas:
           a) Desde un terminal el usuario escribe :
                              usuario@cliente:~# nautilus /homeInst/prueba

           b) Creamos un script  y un lanzador que lo ejecute cuando pulsemos sobre el. En este caso añado el script /usr/bin/pruebaInst con el siguiente contenido:
root@jmmedinac03-hptablet:~# cat /usr/bin/pruebainst 
#!/bin/sh

esta=`ping servidorweb -c 1 -w 2 2>/dev/null |grep  "1 received"`
if [ "$esta" ]; then
cd /homeInst/prueba
nautilus /homeInst/prueba
else
 zenity --info \
--text "No está conectado a la red de su IES, por tanto los
directorios del instituto no se encuentran disponibles"
fi
Comprueba si está accesible el servidor web y abre la carpeta con nautilus. Si no está accesible muestra ventana con error.
     8. Crear el lanzador llamando al script.