Algo de Linux: 2016

martes, 27 de diciembre de 2016

Error de GPG: http://download.opensuse.org/repositories/home:/kozec/xUbuntu_16.04 Release: Las siguientes firmas no fueron válidas: KEYEXPIRED 1480161281

Si en vuestro equipo tenéis configurado el repositorio de sc-controller
/etc/apt/sources.list.d/sc-controller.list
deb http://download.opensuse.org/repositories/home:/kozec/xUbuntu_16.04/ /
Y habéis comenzado a ver el error de clave expirada:

Error de GPG: http://download.opensuse.org/repositories/home:/kozec/xUbuntu_16.04 Release: Las siguientes firmas no fueron válidas: KEYEXPIRED 1480161281

Podéis borrar la clave de este repositorio del anillo de claves:
# apt-key remove 1480161281
Y descargar e instalar la clave renovada desde la siguiente URL: http://download.opensuse.org/repositories/home:/kozec/xUbuntu_16.04/Release.key
# curl 'http://download.opensuse.org/repositories/home:/kozec/xUbuntu_16.04/Release.key' | sudo apt-key add -
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1093  100  1093    0     0   1655      0 --:--:-- --:--:-- --:--:--  1656
OK
Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 26 de diciembre de 2016

add-apt-key: Añadir claves de repositorios al anillo de claves de APT

add-apt-key es una herramienta de línea de comandos diseñada para añadir claves de repositorios al anillo de claves de APT que se instala fácilmente porque se encuentra en los repositorios:
# apt-get install add-apt-key
Su sintaxis es muy sencilla:
# add-apt-key --help
usage: add-apt-key [-h|--help] [-v|--verbose] [-k|--keyserver name] key-id
Tan sólo tiene un parámetro obligatorio: el identificador de clave.

Si no especificamos un servidor de claves, lo tomará desde el archivo de configuración:
/etc/default/add-apt-key
# Select the default keyserver to retrieve GPG keys
# KEYSERVER=pgp.mit.edu
KEYSERVER=subkeys.pgp.net
Si el puerto hkp (11371/tcp) se encuentra filtrado por un firewall, como sucede en nuestra intranet, podemos modificar el fichero de configuración para hacer que la descarga de claves se realice utilizando el puerto 80:
# This is a configuration file for /usr/sbin/add-apt-key

# Select the default keyserver to retrieve GPG keys
# KEYSERVER=pgp.mit.edu
KEYSERVER=hkp://keyserver.ubuntu.com:80
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 23 de diciembre de 2016

Servidores y servicios que tengo implantados en el centro

Muchas veces me preguntan cómo tengo implantados determinados servicios. Aquí va un resumen acerca de los servidores y servicios he ido montando con el tiempo.

Actualmente tengo mis servicios repartidos entre 5 servidores físicos que prestan servicio en una o varias redes VLAN y un servidor virtual (pdc):


SERVIDOR
servidor (Debian Jessie)
ldap (Debian Jessie)
firewall (pfSense)
nas (openMediaVault)
recursos (Debian Wheezy)
pdc (Zentyal)
VLAN
Intranet
Wifi
Infolab






Personalmente virtualizaría la mayoría de los servidores y servicios, excepto los siguientes: 
  • nas.
  • firewall.
  • recursos.
En particular, nas y firewall prestan servicio en las tres redes VLAN: Intranet, Wifi e Infolab.


  • SERVIDOR es una máquina en la que monté un servidor de virtualización Proxmox, basado en Debian que se adapta perfectamente a nuestro sistema y me permite disponer de unas características que considero fundamentales:
    • Un sistema de 64 bits.
    • Un sistema de almacenamiento basado en LVM.
    • Un sistema de virtualización en el que podemos virtualizar usando máquinas virtuales completas o contenedores LXC. Además, nos ofrece la posibilidad de mover máquinas virtuales a otro servidor, si los configuramos como cluster.
    • Implementa en máquina real los siguientes servicios:
      • dhpc con isc-dhcp-server en modo failover con el servidor LDAP utilizando como backend ldap.
      • dns con powerdns y power-dns-recursor usando ldap como backend.
      • ldap con openldap para almacenar información de usuarios y grupos, usuarios radius, información de dhcp y dns.
      • proxy-cache con squid3. Este servicio está configurado por defecto y requeriría unos cuantos ajustes, sobre todo en el tema de cacheado.
      • freeradius para proporcionar soporte radius al servidor pfSense.
      • mirror de paquetes Ubuntu con apt-mirror. Es mucho más óptimo mantener un mirror de paquetes que utilizar otro tipo de soluciones para el cacheo de paquetes.
      • servidor puppet implementado mediante puppet+apache2+passenger.
      • Es puerta de enlace para los equipos de la intranet del centro.
    • Aloja en máquina virtual el servidor pdc (primary domain controller), un controlador de dominio Windows basado en Zentyal. 
  • LDAP es también un servidor de virtualización Proxmox que dispone de casi todos los servicios reales que SERVIDOR. De hecho, primero monté el servidor SERVIDOR y creé una imagen que restauré en LDAP.
    • Implementa en máquina real los siguientes servicios:
      • dhpc con isc-dhcp-server en modo failover con el servidor SERVIDOR utilizando como backend ldap.
      • dns con powerdns y power-dns-recursor usando ldap como backend.
      • ldap con openldap para almacenar información de usuarios y grupos, usuarios radius, información de dhcp y dns.
      • proxy-cache con squid3. Este servicio está configurado por defecto y requeriría unos cuantos ajustes, sobre todo en el tema de cacheado.
      • mirror de paquetes Debian con debmirror. Eliminaré este servicio porque las únicas máquinas Debian de que dispongo son servidores.
      • servidor puppet secundario implementado mediante puppet+apache2+passenger.
      • Es puerta de enlace para los equipos de la intranet del centro.
  • FIREWALL es un servidor basado en pfSense con tres interfaces de red que presta servicio en las VLAN Wifi, en la VLAN Infolab y hace de puerta de enlace para ambas.
    • Implementa los siguientes servicios: 
      • Firewall para las VLAN Wifi e Infolab.
      • Un DHCP para la VLAN Wifi.
      • Un DHCP para la VLAN Infolab.
      • DNS para ambas VLAN.
      • Control de consumo de ancho de banda.
      • Portal cautivo para la VLAN Wifi.
  • NAS es un servidor basado en openMediaVault que me permite implementar fácilmente un servicio de almacenamiento compartido ya sea por FTP, SAMBA o NFS
    • Aloja, entre otras cosas WsusOfflineUpdate, que descarga las actualizaciones de Windows Update en este servidor para actualizar la parte Windows de los equipos de Infolab. Para mantener actualizado el software de Windows como Libreoffice, Google, Chrome, Firefox, 7-zip, etc... utilizo Chocolatey.
  • PDC es un servidor Zentyal alojado como máquina virtual en el servidor SERVIDOR que me permite disponer de un controlador de dominio Windows para garantizar el acceso de usuarios a la parte Windows de los equipos del centro y que, además, permite realizar una administración automatizada mediante políticas de grupo.  
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 22 de diciembre de 2016

Imagen Siatic Xubuntu_amd64-windows_10 (29 Agosto 2016)

Ésta es la información que hay en el wiki de administradores acerca de la imagen Siatic con Xubunty amd64 y Windows 10:

Imagen Siatic Xubuntu_amd64-windows_10 (29 Agosto 2016)

Imagen actualizada de máquina Siatic con arquitectura de 64bits. Lleva un particionado más óptimo.
  • SDA
    • sda1 -- NTFS 450MB Windows Recuperación.
    • sda2 -- FAT32 100MB Boot efi.
    • sda4 -- NTFS 70GB Windows SO.
    • sda5 -- EXT4 50GB Xubuntu.
  • SDB
    • sdb1 -- EXT4 100GB Backup.
    • sdb2 -- EXT4 260GB Home local.
    • sdb3 -- NTFS 100GB Partición compartida windows-linex.
    • sdb4 -- SWAP 5.76GB Linux Swap.
Estos equipos llevan instalados dos discos duros:
  • Un disco SSD de 128Gb
  • Un segundo disco duro de 500Gb
Es interesante montar ya esta imagen en los SIATIC, básicamente por los siguientes motivos:
  • El sistema Ubuntu es de 64 bits (Venían con Ubuntu 32 bits).
  • Windows se encuentra actualizado a la versión 10 (Venían con Windows 8).
  • El sistema de particiones es más óptimo, como se indica en el wiki.
Como en el wiki no se indica por qué es óptimo el particionado os cuento lo que sé por lo que he preguntado a los compañeros de administracionsi y por lo que se puede deducir:
  • La partición sda1 es la partición de recuperación de Windows.
  • La partición sda2 es la partición EFI.
  • La partición sda4 es la partición de Windows 10.
  • La partición sda5 es la partición de Xubuntu 64 bits.
  • La partición sdb1 está pensada para realizar backup, y por lo que me han comentado desde admnistracionsi, tan sólo se está usando en centros de primaria. Como en los IES aún no se está usando, en principio, le montaré clonezilla y unas opciones para crear una imagen del disco duro y opciones de restauración de windows/ubuntu.
  • La partición sdb2 contiene el home local de Xubuntu.
  • La partición sdb3 contiene una partición NTFS para usar de forma compartida con Xubuntu y Windows.
  • La partición sdb4 es la SWAP de Linux.
Como es una imagen de SIATIC, en principio, no se utilizará Windows, salvo en situaciones concretas; En mi caso, en los INFOLAB, donde se ha instalado un SIATIC. En ese caso, he añadido el Windows de estos dos equipos al dominio de Windows para poder iniciar sesión con diferentes usuarios. 

No sé si Windows ha sido configurado para montar el home de los usuarios en la partición sdb3, pero sería conveniente hacerlo, más que nada porque en Windows tan sólo quedan 8Gb libres.

Publicado por primera vez en http://enavas.blogspot.com.es

Paquete pkgsync 1.36

He introducido una nueva mejora muy interesante y útil en la versión 1.36 de pkgsync que consiste en añadir una nueva opción a  /etc/default/pkgsync: AUTOMATIC_SHUTDOWN_BETWEEN. Esta opción nos permite especificar un intervalo horario en el que se realizará un apagado automático del equipo al terminar de ejecutar pkgsync:
  • AUTOMATIC_SHUTDOWN_BETWEEN="": No apaga el equipo al terminar pkgsync (Es la opción por defecto).
  • AUTOMATIC_SHUTDOWN_BETWEEN="22:00-07:00": Apaga el equipo automáticamente al terminar pkgsync si se encuentra en el intervalo especificado.
La idea es automatizar la actualización desatendida de equipos.

Si por ejemplo, establezco un horario de apagado automático entre las 22:00 y las 07:00, tan sólo tengo que programar un encendido de los equipos dentro de dicho horario para garantizar que se actualicen y apaguen al terminar.

Aquí podéis ver el fichero de configuración de pkgsync: /etc/default/pkgsync
# Defaults for pkgsync
#
# See /usr/share/doc/pkgsync/README.Debian for information about options
# of managing pkgsync.

# Ignorar ficheros de configuración musthave, mayhave o maynothave
IGNORE_MUSTHAVE="no"
IGNORE_MAYHAVE="no"
IGNORE_MAYNOTHAVE="no"

# Activar o desactivar pkgsync:
#  ENABLE="yes": activa pkgsync (opción por defecto)
#  ENABLE="no" : desactiva pkgsync
#  Si no existe la variable ENABLE o no tiene valor, es equivalente al valor 'yes'.
ENABLE="yes"

# Eliminar kernels antiguos (por defecto deja los dos últimos)
# PURGE_OLD_KERNELS="no": no elimina kernels antiguos (opción por defecto)
# PURGE_OLD_KERNELS="yes": elimina kernels antiguos
PURGE_OLD_KERNELS="no"

# Eliminar dependencias de paquetes desinstalados, purgar paquetes desinstalados y limpiar la cache
# CLEAN="no": no hacer limpieza (opción por defecto)
# CLEAN="yes": hacer limpieza
CLEAN="no"

# Eliminar librerías huérfanas
# REMOVE_ORPHAN_LIBS="no": no eliminar librerías huérfanas (opción por defecto)
# REMOVE_ORPHAN_LIBS="yes": eliminar librerías huérfanas
REMOVE_ORPHAN_LIBS="no"

# Iniciar sinc_puppet antes de lanzar pkgsync para garantizar que los ficheros de pkgsync 
# se encuentren actualizados
# LAUNCH_SINC_PUPPET="no": no iniciar sinc_puppet antes de hacer pkgsync
# LAUNCH_SINC_PUPPET="yes": iniciar sinc_puppet antes de hacer pkgsync (opción por defecto)
LAUNCH_SINC_PUPPET="yes"

# Apagar automáticamente el equipo después de ejecutar pkgsync en el intervalo especificado
# AUTOMATIC_SHUTDOWN_BETWEEN="22:00-07:00"
AUTOMATIC_SHUTDOWN_BETWEEN=""

Aquí podéis ver el código completo de pkgsync:

Publicado por primera vez en http://enavas.blogspot.com.es

Paquete linex-ubuntu-puppet 2.15

Esta nueva versión del paquete linex-ubuntu-puppet incorpora una modificación en el fichero de configuración /usr/share/linex-ubuntu-puppet/sincpuppet.default y el script /usr/share/linex-ubuntu-puppet/sinc_puppet para permitir establecer los locales con que se ejecuta el script.

El valor establecido por defecto es:
LOCALES="es_ES.UTF-8"
Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 21 de diciembre de 2016

Cambios en la configuración de correo Gobex a Juntaex

Con el cambio de nombre de dominio en el correo corporativo de la Junta de Extremadura de Gobex a Juntaex, si utilizáis un cliente de correo electrónico como Evolution,Thunderbird, etc... debéis configurar los siguientes datos:
  • Correo entrante: Podéis utilizar POP o IMAP.
  • Correo saliente: SMTP.
  • El usuario y la contraseña no han cambiado.
Para aquellos usuarios que usan correo entrante POP:
  • Servidor POP: correo.juntaex.es
  • Puerto: 110 
  • Seguridad: STARTTLS 
  • Método de identificación: Contraseña
Para aquellos usuarios que usan correo entrante IMAP: 
  • Servidor IMAP: correo.juntaex.es 
  • Puerto: 143 
  • Seguridad: STARTTLS 
  • Método de identifcación: Contraseña
Para configurar el correo saliente:
  • Servidor SMTP: correo.juntaex.es 
  • Puerto: 25 
  • Seguridad: STARTTLS 
  • Método de identificación: Contraseña

Como casi todos utilizamos Evolution, adjunto tres pantallazos en los que se muestra la configuración del correo corporativo en este cliente:

Identidad:

Correo entrante configurado mediante POP:


Correo saliente:


Para más información os recomiendo consultar Educarex: http://www.educarex.es/edutecnologias/correogobexcentros.html
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 20 de diciembre de 2016

Cómo utilizar el recurso package de Puppet para reemplazar los ficheros de configuración al instalar paquetes

Puppet utiliza misma política que apt-get a la hora de instalar paquetes mediante un recurso package: Mantener los ficheros de configuración del usuario a menos que el usuario elija reemplazarlos por los del paquete.

Si queremos cambiar esta política, no tenemos más que cambiar el atributo configfiles, asignándole el valor replace:
   package { "linex-ubuntu-puppet":
      ensure => latest,
      configfiles => replace
   }
Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 19 de diciembre de 2016

Paquete pkgsync 1.35-2

He introducido un par de cambios en la versión 1.35-2 de pkgsync:
  • He resuelto un bug en la opción remove-orphan-libs. No se eliminaban librerías huérfanas porque deborphan devuelve la arquitectura de los paquetes junto al nombre y en el fichero musthave.orphan sólo estaba almacenando el nombre del paquete sin especificar la arquitectura.
  • He añadido el script musthave-build al paquete para que se encuentre disponible en cualquier cliente con pkgsync.
Aquí podéis ver el fichero de configuración de pkgsync: /etc/default/pkgsync
# Defaults for pkgsync
#
# See /usr/share/doc/pkgsync/README.Debian for information about options
# of managing pkgsync.

# Ignorar ficheros de configuración musthave, mayhave o maynothave
IGNORE_MUSTHAVE="no"
IGNORE_MAYHAVE="no"
IGNORE_MAYNOTHAVE="no"

# Activar o desactivar pkgsync:
#  ENABLE="yes": activa pkgsync (opción por defecto)
#  ENABLE="no" : desactiva pkgsync
#  Si no existe la variable ENABLE o no tiene valor, es equivalente al valor 'yes'.
ENABLE="yes"

# Eliminar kernels antiguos (por defecto deja los dos últimos)
# PURGE_OLD_KERNELS="no": no elimina kernels antiguos (opción por defecto)
# PURGE_OLD_KERNELS="yes": elimina kernels antiguos
PURGE_OLD_KERNELS="no"

# Eliminar dependencias de paquetes desinstalados, purgar paquetes desinstalados y limpiar la cache
# CLEAN="no": no hacer limpieza (opción por defecto)
# CLEAN="yes": hacer limpieza
CLEAN="no"

# Eliminar librerías huérfanas
# REMOVE_ORPHAN_LIBS="no": no eliminar librerías huérfanas (opción por defecto)
# REMOVE_ORPHAN_LIBS="yes": eliminar librerías huérfanas
REMOVE_ORPHAN_LIBS="no"

# Iniciar sinc_puppet antes de lanzar pkgsync para garantizar que los ficheros de pkgsync
# se encuentren actualizados
# LAUNCH_SINC_PUPPET="no": no iniciar sinc_puppet antes de hacer pkgsync
# LAUNCH_SINC_PUPPET="yes": iniciar sinc_puppet antes de hacer pkgsync (opción por defecto)
LAUNCH_SINC_PUPPET="yes"

Aquí podéis ver el código completo de pkgsync:

Publicado por primera vez en http://enavas.blogspot.com.es

Modificado el script musthave-build para Ubuntu Trusty

He modificado el script musthave-build para generar la lista de paquetes instalados en el sistema en Ubuntu Trusty de una manera más eficiente. 

Aquí podéis ver el código:
Publicado por primera vez en http://enavas.blogspot.com.es

tmux-cssh: Ejecutar comandos de forma simultánea en varias máquinas a la vez

Revisando la lista de correo de administradores he visto un mensaje de nuestro compañero Nando Sosa en el que nos recomienda utilizar una herramienta verdaderamente útil para administradores: cluster-ssh.

Me gusta cluster-ssh, pero tiene un inconveniente importante: Requiere un terminal gráfico. Lo que quiere decir que no vamos a poder utilizarla en servidores remotos si no hemos establecido una conexión gráfica. En mi centro, lo que uso habitualmente para establecer conexiones multiplexadas desde una máquina pasarela donde no se inicia un servidor gráfico es tmux-cssh.

tmux es un multiplexor de terminal con el que podemos utilizar múltiples sesiones virtuales de terminal dentro de una sesión real.

tmux-cssh (tmux cluster ssh) nos proporciona la funcionalidad de establecer sesiones de clustering sobre tmux. La ventaja es que no necesitamos hacer x-forwarding porque tmux-cssh trabaja sobre tmux en un terminal.

Un ejemplo: Supongamos que me quiero conectar desde una máquina a mis dos servidores principales:


Una vez establecida la conexión, cada comando que escriba se ejecutará en ambas máquinas a la vez:


Si queréis, podéis descargar el paquete desde aquí:

Publicado por primera vez en http://enavas.blogspot.com.es

sábado, 17 de diciembre de 2016

GIMP: Modificar una imagen para que el fondo sea transparente

Para convertir el fondo de una imagen en transparente, abrimos la imagen en GIMP.

Una vez abierta, le añadimos un canal alfa desde el menú:
"Capa" -> "Transparencia" -> "Añadir canal Alfa"

A continuación, utilizando las herramientas de selección, seleccionamos todas aquellas zonas de la imagen que queremos convertir en transparentes.

Cuando hayamos terminado de seleccionar zonas, hacemos clic, en el menú "Editar" y seleccionamos "Cortar" para eliminarlas. Podéis observar que las zonas eliminadas se muestran con unos cuadrados, lo que significa que se han eliminado y lo que se ve es el canal alfa.

Por último, guardamos la imagen en un formato que soporte transparencias como por ejemplo PNG.
Publicado por primera vez en http://enavas.blogspot.com.es

Arranque trial Windows+RemixOS+Ubuntu en Vexia Core M (DEP-Profe)

Teniendo en cuenta que lo que nos proporcionaron en lugar de un portátil es un tablet, y android está muy bien pensado para dispositivos táctiles, nos viene muy bien instalarle Android RemixOS.

Para gestionar el arranque, uso exactamente el mismo cargador que en los equipos de Infolab: rEFInd y oculto grub2:
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 16 de diciembre de 2016

localectl: Consultar y modificar los ajustes de locales y distribución de teclado del sistema

localectl es una herramienta que podemos utilizar para consultar y modificar los ajustes de idioma y distribución de teclado del sistema. Por lo que he podido comprobar, en Debian se encuentra disponible a partir de Jessie y en Ubuntu, existe en trusty.

Esta herramienta es muy importante porque nos permite controlar la configuración de idioma de los servicios del sistema y de la interfaz de usuario antes de que el usuario inicie sesión.

Por ejemplo: A nosotros nos interesa establecer el idioma del sistema en español UTF-8:
# localectl set-locale LANG=es_ES.UTF-8
Si queremos, es posible definir más variables:
# localectl set-locale LANG=es_ES.UTF-8 LANGUAGE=es:en
Del mismo modo, nos permite controlar los ajustes de distribución de teclado utilizados en la consola de texto y de la interfaz gráfica de antes de que el usuario inicie sesión.
# localectl set-keymap es
Una vez establecidos los ajustes, no tenemos más que ejecutar localectl sin parámetros para comprobar que se encuentran bien establecidos:
# localectl
   System Locale: LANG=es_ES.UTF-8
       VC Keymap: es
      X11 Layout: es
       X11 Model: pc105
Si hubiéramos definido más variables, se mostrarían:
# localectl
   System Locale: LANG=es_ES.UTF-8
                  LANGUAGE=es:en 
       VC Keymap: es
      X11 Layout: es
       X11 Model: pc105
Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 14 de diciembre de 2016

Paquete linex-ubuntu-puppet 2.14

El paquete linex-ubuntu-puppet establece la variable "tipo" en el archivo /etc/escuela2.0, algo que utilizamos para aplicar módulos facter a diferentes tipos de máquinas.

Los tipos de máquinas se definen en función del productname devuelto por facter y se asignan de acuerdo con los tipos creados por el compañero José Miguel Medina en la tarea puppet xubuntu-tipo más alguno específico de mi centro, con la idea de establecer una serie de tipos estándar:

productname  tipo
"HP ProDesk 600 G2 SFF" infolab
"HP ProDesk 600 G1 SFF" siatic
"HP x360 310 G2 PC" x360
"HP ProBook 4510s" HP-Probook
"P5Q DELUXE" Telefonica
"8317KLG"|"8317KHG" ibm
"8317KLG"|"TravelMate 5735Z"   Travelmate
"G41MT-S2" workstation
"A0532h" notebookACER
"N148P" notebookXTREM
(en cualquier otro caso) otros


La cuestión es que, en versiones anteriores, el paquete establecía el tipo en el fichero /etc/escuela2.0 y si la máquina ya tenía un tipo definido, lo cambiaba; como ya he dicho, para estandarizar. Como algunas máquinas que no tienen un "productname" válido porque el fabricante no ha rellenado este valor, se les asignará el tipo "otros".

A petición de nuestro compañero Manuel Gómez, he modificado el paquete para que no se modifique el tipo de máquina definido en el fichero /etc/escuela2.0, si ya se encontraba definido. De este modo, evitamos el forzado de tipos para que no se reemplacen los tipos definidos por el administrador.
Publicado por primera vez en http://enavas.blogspot.com.es

testdisk: Reparar sector de arranque en FAT32

Mi disco duro de herramientas tiene dos particiones: Una FAT32 con Clonezilla, DRBL, Rescatux, etc... Y otra EXT4 que uso como almacén.

En ocasiones se rompe el sector de arranque de nuestra partición FAT, y hace, no ya que que el dispositivo no sea booteable, sino que además nos monta la partición en sólo lectura.

Ya por experiencia, he visto que la mejor opción para reparar el sector de arranque y la tabla de particiones es utilizar testdisk.

Para reconstruir el sector de arranque, abrimos un terminal y ejecutamos el comando testdisk sobre el dispositivo que contiene la partición a reparar:
# testdisk /dev/sdb
Con ésto, iniciaremos la herramienta:


Seleccionamos la opción "Proceed", tal y como se muestra en la imagen anterior. Y se nos mostrará la siguiente ventana, donde seleccionamos la opción "Advanced".


Nos aparecerá la lista de particiones. Puesto que es la que queremos reparar, seleccionamos la FAT32 y elegimos la opción "Boot":


Al seleccionar la opción "Boot" nos mostrará el estado del sector de arranque y la copia de seguridad del mismo. Elegimos la opción "Rebuild BS":


Y comenzará a escanear la partición en busca de una tabla FAT32:


Cuando termine, nos mostrará el resultado. Seleccionamos la opción "Write" para guardar los cambios:


Nos pedirá confirmación. Confirmamos que deseamos guardar los cambios y salimos.
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 13 de diciembre de 2016

Paquete linex-ubuntu-puppet 2.13-2

En ocasiones, cuando vuelve a ejecutarse puppet, la sincronización con el servidor no se realiza porque el fichero de bloqueo /var/lib/puppet/state/agent_catalog_run.lock  ya existe en el sistema, probablemente porque se realizó un apagado cuando el cliente puppet estaba actualizando el equipo.

Para solucionar el problema, he realizado una nueva modificación en el script sinc_puppet del paquete linex-ubuntu-puppet (la 2.13-2) que consiste en comprobar si este fichero tiene una antiguedad mayor que el tiempo establecido entre sincronizaciones, y, si la tiene, lo borra.
Publicado por primera vez en http://enavas.blogspot.com.es

refind: Elegir qué herramientas mostrar y en qué orden

En la parte inferior de la pantalla de rEFInd se muestra una línea de herramientas que podemos personalizar mostrando, ocultando o cambiando el orden de los elementos. Para ello no tenemos más que modificar el parámetro showtools en el fichero de configuración /boot/efi/EFI/refind/refind.conf

A continuación podéis ver la parte del fichero en la que se explican las opciones de showtools:
# Which non-bootloader tools to show on the tools line, and in what
# order to display them:
#  shell            - the EFI shell (requires external program; see rEFInd
#                     documentation for details)
#  memtest          - the memtest86 program, in EFI/tools, EFI/memtest86,
#                     EFI/memtest, EFI/tools/memtest86, or EFI/tools/memtest
#  gptsync          - the (dangerous) gptsync.efi utility (requires external
#                     program; see rEFInd documentation for details)
#  gdisk            - the gdisk partitioning program
#  apple_recovery   - boots the Apple Recovery HD partition, if present
#  windows_recovery - boots an OEM Windows recovery tool, if present
#                     (see also the windows_recovery_files option)
#  mok_tool         - makes available the Machine Owner Key (MOK) maintenance
#                     tool, MokManager.efi, used on Secure Boot systems
#  csr_rotate       - adjusts Apple System Integrity Protection (SIP)
#                     policy. Requires "csr_values" to be set.
#  about            - an "about this program" option
#  exit             - a tag to exit from rEFInd
#  shutdown         - shuts down the computer (a bug causes this to reboot
#                     many UEFI systems)
#  reboot           - a tag to reboot the computer
#  firmware         - a tag to reboot the computer into the firmware's
#                     user interface (ignored on older computers)
#  fwupdate         - a tag to update the firmware; launches the fwupx64.efi
#                     (or similar) program
#  netboot          - launch the ipxe.efi tool for network (PXE) booting
# Default is shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,shutdown,reboot,firmware,fwupdate
#
#showtools shell, gdisk, memtest, mok_tool, apple_recovery, windows_recovery, about, reboot, exit, firmware, fwupdate
Como podéis ver, las opciones por defecto son:
shell, memtest, gdisk, apple_recovery, windows_recovery, mok_tool, about, shutdown, reboot, firmware, fwupdate

En los equipos de infolab he reducido la lista de herramientas a la mínima expresión:
showtools about, shutdown, reboot
Las herramientas se mostrarán en el orden en que se encuentren en la lista.
Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 12 de diciembre de 2016

Proxmox: Plantillas y contenedores

En Proxmox podemos crear básicamente dos cosas:
  • Máquinas virtuales KVM.
  • Contenedores:
    • Hasta la versión 3.x de Proxmox VE se usaban contenedores OpenVZ.
    • A partir de la versión 4.x de Proxmox VE se utilizan contenedores LXC.
Mientras que una máquina virtual se instala a partir de una ISO, los contenedores sólo pueden crearse a partir de plantillas de contenedores. Estas plantillas pueden ser descargadas directamente desde los repositorios de plantillas de Proxmox o Turnkey.

Proxmox nos proporciona una herramienta: pveam (Proxmox VE Appliance Manager) con la que podemos gestionar plantillas.

Por ejemplo, para actualizar la lista de plantillas disponibles en los servidores, podemos ejecutar el siguiente comando en un terminal del servidor Proxmox:
# pveam update
Una vez actualizada, podemos consultar las plantillas disponibles en los repositorios de la siguiente manera:
# pveam available
system          alpine-3.3-default_20160427_amd64.tar.xz
system          alpine-3.4-default_20161206_amd64.tar.xz
system          archlinux-base_20161207-1_amd64.tar.gz
system          centos-6-default_20161207_amd64.tar.xz
system          centos-7-default_20161207_amd64.tar.xz
system          debian-6.0-standard_6.0-7_amd64.tar.gz
system          debian-7.0-standard_7.11-1_amd64.tar.gz
system          debian-8.0-standard_8.6-1_amd64.tar.gz
system          fedora-24-default_20161207_amd64.tar.xz
system          gentoo-current-default_20161206_amd64.tar.xz
system          ubuntu-12.04-standard_12.04-1_amd64.tar.gz
system          ubuntu-14.04-standard_14.04-1_amd64.tar.gz
system          ubuntu-16.04-standard_16.04-1_amd64.tar.gz
system          ubuntu-16.10-standard_16.10-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-ansible_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-asp-net-apache_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-b2evolution_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-bugzilla_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-cakephp_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-canvas_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-codeigniter_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-collabtive_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-concrete5_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-core_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-couchdb_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-django_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-dokuwiki_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-domain-controller_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-drupal7_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-drupal8_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-e107_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-elgg_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-espocrm_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-etherpad_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-ezpublish_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-fileserver_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-foodsoft_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-gallery_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-ghost_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-gitlab_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-gnusocial_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-icescrum_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-jenkins_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-joomla3_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-lamp_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-lapp_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-laravel_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-lighttpd-php-fastcgi_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-limesurvey_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-magento_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mahara_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mambo_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mantis_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mattermost_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mediaserver_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mediawiki_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mibew_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-moinmoin_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mongodb_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-moodle_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-mysql_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-nginx-php-fastcgi_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-nodejs_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-observium_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-odoo_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-omeka_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-openldap_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-openvpn_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-orangehrm_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-oscommerce_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-otrs_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-owncloud_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-phpbb_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-phplist_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-phreebooks_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-piwik_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-pligg_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-plone_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-postgresql_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-prestashop_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-processmaker_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-projectpier_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-punbb_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-rails_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-redmine_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-revision-control_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-roundup_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-sahana-eden_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-silverstripe_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-simpleinvoices_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-simplemachines_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-sitracker_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-sugarcrm_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-suitecrm_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-symfony_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-tkldev_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-tomatocart_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-tomcat-apache_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-tomcat_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-torrentserver_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-trac_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-tracks_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-twiki_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-typo3_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-ushahidi_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-vanilla_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-vtiger_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-web2py_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-wordpress_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-xoops_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-yiiframework_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-zencart_14.1-1_amd64.tar.gz
turnkeylinux    debian-8-turnkey-zurmo_14.1-1_amd64.tar.gz
Si solamente quisiéramos obtener un listado de imágenes de sistema, podríamos filtrar la salida de la siguiente manera:
# pveam available --section system
system          alpine-3.3-default_20160427_amd64.tar.xz
system          alpine-3.4-default_20161206_amd64.tar.xz
system          archlinux-base_20161207-1_amd64.tar.gz
system          centos-6-default_20161207_amd64.tar.xz
system          centos-7-default_20161207_amd64.tar.xz
system          debian-6.0-standard_6.0-7_amd64.tar.gz
system          debian-7.0-standard_7.11-1_amd64.tar.gz
system          debian-8.0-standard_8.6-1_amd64.tar.gz
system          fedora-24-default_20161207_amd64.tar.xz
system          gentoo-current-default_20161206_amd64.tar.xz
system          ubuntu-12.04-standard_12.04-1_amd64.tar.gz
system          ubuntu-14.04-standard_14.04-1_amd64.tar.gz
system          ubuntu-16.04-standard_16.04-1_amd64.tar.gz
system          ubuntu-16.10-standard_16.10-1_amd64.tar.gz
Naturalmente, antes de poder usar una plantilla, primero tenemos que descargarla. Ésto podemos hacerlo desde el gui o desde la línea de comandos. Por ejemplo, supongamos que quiero descargar la plantilla de ubuntu-14.04 al almacenamiento local:
# pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Una vez descargada, ya podría usarla para crear contenedores.
Publicado por primera vez en http://enavas.blogspot.com.es

domingo, 11 de diciembre de 2016

Refind: Eliminar una opción de arranque de RemixOS

Como ya vimos en un post anterior, es fácil eliminar opciones de arranque usando refind.
He observado que al instalar RemixOS, refind muestra dos entradas de arranque. Ésto es porque en el directorio /boot/efi/EFI/RemixOS/ hay dos ficheros efi que permiten arrancarlo:
  • grubx64.efi
  • bootx64.efi
Para hacer que sólo se muestre una opción, podríamos añadir a la blacklist  uno de los dos ficheros, por ejemplo: bootx64.efi.
En el fichero /boot/efi/EFI/refind/refind.conf:
dont_scan_files + /EFI/RemixOS/bootx64.efi
Publicado por primera vez en http://enavas.blogspot.com.es

Refind: Eliminar opciones de arranque de Ubuntu

Como ya vimos en un post anterior, es fácil eliminar opciones de arranque usando refind. Si ahora quisiéramos evitar que refind muestre las opciones de Ubuntu, podríamos añadir el directorio /EFI/ubuntu a la blacklist en el fichero /boot/efi/EFI/refind/refind.conf:
dont_scan_dirs + /EFI/ubuntu
Publicado por primera vez en http://enavas.blogspot.com.es

efibootmgr: Habilitar/deshabilitar opciones de arranque

Podemos habilitar/deshabilitar opciones de arranque EFI para que no se muestren al usuario o incluso eliminarlas. Tan sólo es cuestión de utilizar las opciones que nos ofrece la herramienta efibootmgr.
Veamos, por ejemplo, cómo deshabilitar la entrada que permite arrancar Windows:

Ejecutamos efibootmgr sin parámetros para ver qué opciones de arranque EFI tiene el equipo:
# efibootmgr
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0002,0003,0000,0004,0001,2001,2002,2003
Boot0000* Windows Boot Manager
Boot0001* Internal EFI Shell
Boot0002* ubuntu
Boot0003* ubuntu
Boot0004* rEFInd Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
Observamos que hay una entrada "Windows Boot Manager" con el número 0000. Para desactivarla ejecutamos el siguiente comando:
# efibootmgr -b 0000 -A
La opción -b xxxx nos permite indicar sobre qué entrada queremos actuar. En cuanto a la opción -A, es la que permite desactivar la entrada.
Si os dais cuenta, la opción Boot0000 ya no muestra un asterisco, lo que significa que está deshabilitada:
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0002,0003,0000,0004,0001,2001,2002,2003
Boot0000  Windows Boot Manager
Boot0001* Internal EFI Shell
Boot0002* ubuntu
Boot0003* ubuntu
Boot0004* rEFInd Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
Si ahora quisiéramos volver a activarla tan sólo tenemos que usar el parámetro -a:
# efibootmgr -b 0000 -a
Al igual que en el caso anterior, la opción -b xxxx nos permite indicar sobre qué entrada queremos actuar. En cuanto a la opción -a, es la que permite activar la entrada.
Ahora la opción Boot0000 vuelve a mostrar un asterisco, lo que significa que está habilitada:
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0002,0003,0000,0004,0001,2001,2002,2003
Boot0000* Windows Boot Manager
Boot0001* Internal EFI Shell
Boot0002* ubuntu
Boot0003* ubuntu
Boot0004* rEFInd Boot Manager
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
Publicado por primera vez en http://enavas.blogspot.com.es

Refind: Eliminar opciones de arranque de Windows

Refind escanea todos los dispositivos de almacenamiento en busca de entradas EFI para mostrarlas en el menú de arranque. 

Para filtrar las entradas que se muestran en el menú y lograr que se muestren tan sólo las que nosotros queramos, podemos utilizar tres opciones en el fichero /boot/efi/EFI/refind/refind.conf:
  • dont_scan_volumes: Para evitar que refind escanee determinadas particiones.
  • dont_scan_dirs: Para evitar que refind escanee determinados directorios.
  • dont_scan_files: Para evitar quee refind escanee determinados ficheros.
Por defecto, refind ya tiene en sus blacklists particiones, directorios y ficheros. Si añadimos una entrada dont_scan_volumes, dont_scan_dirs o dont_scan_files al fichero de configuración /boot/efi/EFI/refind/refind.conf, reemplazaremos los elementos añadidos a dichas listas por defecto. Por tanto, si lo que queremos es añadir opciones a incluir en lista negra, utilizaremos el símbolo + al comienzo de las opciones.

Una vez dicho ésto, veamos cómo hacer que Refind no muestre las opciones de arranque de Windows para ocultárselo al usuario:

Para ocultar el arranque de Windows, añadimos la siguiente opción al fichero de configuración:
dont_scan_files + bootmgfw.efi
Si queréis filtrar más ficheros, tan sólo tenéis que separarlos por comas.
Al añadir esta opción ya no aparecía la opción de arranque de Windows en el menú. Sin embargo, se mostraba la entrada fallback de Windows.
Sabemos que, por defecto, refind no escanea el directorio /EFI/boot. Entonces, ¿por qué aparece esta entrada?
Echando un vistado al directorio /boot/efi/EFI, observo que no hay un directorio boot, y, sin embargo, sí hay un directorio Boot.
# ls /boot/efi/EFI/
Boot  Microsoft  refind  RemixOS  tools  ubuntu
Así que, para evitar que refind escanee el directorio /EFI/Boot, tendré que añadirlo:
dont_scan_dirs + /EFI/Boot
Y listo.

Es importante decir que de este modo estamos controlando las opciones de arranque de refind. Ahora bien, cualquier usuario podría acceder al menú de arranque EFI y arrancar Windows desde allí. Por lo tanto, si queremos desactivar el arranque de Windows completamente, también deberíamos desactivar o eliminar la entrada EFI utilizando por ejemplo efibootmgr.
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 9 de diciembre de 2016

Gestionar un único menú de herramientas en nuestro dispositivo USB con Clonezilla/DRBL/Rescatux

Tal y como está montado el sistema, nuestro dispositivo USB con Clonezilla/DRBL/Rescatux nos obliga a mantener dos menús diferentes:
  • El menú de syslinux, para equipos sin EFI.
  • El menú de grub, para equipos con EFI.
Esto significa que, si personalizamos el menú para añadir entradas de restauración, por ejemplo, tendremos que realizar la modificación por partida doble en los ficheros de syslinux y en los ficheros de grub. Como eso no es nada cómodo y tan sólo nos genera más trabajo, pensé: ¿Por qué no instalamos GRUB2 en nuestro dispositivo USB desde un equipo sin EFI? De este modo, tan sólo tendríamos que mantener un único menú para máquinas con/o sin EFI.

Podéis echar un vistazo a un post de mayo de 2016, donde explicaba cómo hacerlo.

¿Y qué fichero tenemos que modificar para añadir/modificar o borrar entradas? Muy sencillo: Tan sólo tenéis que modificar el fichero /EFI/boot/grub.cfg de vuestro dispositivo USB.

Si observáis el contenido del dispositivo, veréis que, en la raiz del mismo, hay un directorio /boot donde instalamos GRUB. Este directorio /boot contiene un subdirectorio boot con los archivos de GRUB y un fichero de configuración grub.cfg (/boot/grub/grub.cfg). Este fichero de configuración contiene una línea que indica a grub que cargue el fichero de configuración /EFI/boot/grub.cfg:
configfile /EFI/boot/grub.cfg

/boot/grub/grub.cfg -> /EFI/boot/grub.cfg
Por tanto, cuando queramos añadir, modificar o borrar entradas de menú, tan sólo tendremos que modificar el fichero /EFI/boot/grub.cfg.
Publicado por primera vez en http://enavas.blogspot.com.es

Paquete linex-ubuntu-puppet 2.13-1

Aquí tenéis una nueva versión del paquete linex-ubuntu-puppet (la 2.13-1) en la que tan sólo he realizado un cambio que coloca el fichero de configuración sincpuppet en /usr/share/linex-ubuntu-puppet/sincpuppet.default.

Personalmente preferiría colocar este fichero en /etc/default/sincpuppet, pero como la versión que hay instalada actualmente en los centros (la 1.3) lo sitúa en /usr/share/linex-ubuntu-puppet/sincpuppet.default y crea un enlace al fichero en /etc/default/sincpuppet, lo he rectificado para mantener la compatibilidad y evitar problemas a la hora de instalar el paquete.

Si no tenéis un repositorio propio e instaláis el paquete con dpkg, recordad que tenéis que hacer un apt-get -f install después para que se instale deborphan como dependencia.
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 8 de diciembre de 2016

Reparar arranque del dispositivo USB con Clonezilla/DRBL/Rescatux

Clonezilla, DRBL y Rescatux son compatibles con los sistemas EFI. Ésto significa que vamos a poder arrancar nuestro dispositivo USB de rescate en máquinas que dispongan tanto de sistema EFI como Legacy.

Es posible que en alguna ocasión se nos rompa el arranque Legacy de nuestro dispositivo USB, probablemente por algún mal desmontaje en el que se han corrompido algunos archivos de la partición FAT32. Si ésto sucede, no tenéis más que recurrir a la carpeta utils de vuestro dispositivo:


Esta carpeta contiene syslinux y unos scripts para reparar el sistema arranque tanto en Linux como en Windows:

Si entráis, por ejemplo, en la carpeta linux, veréis que hay un script makeboot.sh que os servirá para reparar el arranque desde linux:

Publicado por primera vez en http://enavas.blogspot.com.es

domingo, 4 de diciembre de 2016

Paquete pkgsync 1.35-1

La última versión de pkgsync a día de hoy es la 1.35-1. No he llegado a publicar la 1.35 porque antes de terminar de hacer las modificaciones, pensé que sería interesante añadir una nueva mejora más.

Los cambios que he realizado en el paquete pkgsync son los siguientes:
  • pkgsync 1.35
    • Añado un parámetro más (-r, --remove-orphan-libs) que permite eliminar librerías huérfanas haciendo uso de la herramienta deborphan. Al ejcutar deborphan con el parámetro -r, pkgsync eliminará dichas librerías y almacenará la lista en /var/log/pkgsync/removefrommusthave.log y /etc/pkgsync/musthave.orphan.
    • Por otro lado, he modifcado el código para que se informe al usuario cuando pkgsync esté esperando a que termine apt, dpkg o sinc_puppet. Ésto es importante cuando se ejecuta pkgsync de modo manual.
  • pkgsync 1.35-1
    • Añado una nueva opción a /etc/default/pkgsync que permite al usuario elegir si quiere iniciar sinc_puppet antes de realizar la actualización de paquetes. Es importante iniciar sinc_puppet antes de actualizar paquetes para garantizar que los ficheros de pkgsync se encuentran actualizados previamente, pero también es interesante que el usuario pueda decidir si en un momento determinado le conviene no hacerlo:
      • # LAUNCH_SINC_PUPPET="no": Don't boot sinc_puppet before do pkgsync
      • # LAUNCH_SINC_PUPPET="yes": Launch sinc_puppet before do pkgsync (default option)
      • LAUNCH_SINC_PUPPET="yes"
Aquí podéis ver el fichero de configuración de pkgsync: /etc/default/pkgsync
# Defaults for pkgsync
#
# See /usr/share/doc/pkgsync/README.Debian for information about options
# of managing pkgsync.

# Ignorar ficheros de configuración musthave, mayhave o maynothave
IGNORE_MUSTHAVE="no"
IGNORE_MAYHAVE="no"
IGNORE_MAYNOTHAVE="no"

# Activar o desactivar pkgsync:
#  ENABLE="yes": activa pkgsync (opción por defecto)
#  ENABLE="no" : desactiva pkgsync
#  Si no existe la variable ENABLE o no tiene valor, es equivalente al valor 'yes'.
ENABLE="yes"

# Eliminar kernels antiguos (por defecto deja los dos últimos)
# PURGE_OLD_KERNELS="no": no elimina kernels antiguos (opción por defecto)
# PURGE_OLD_KERNELS="yes": elimina kernels antiguos
PURGE_OLD_KERNELS="no"

# Eliminar dependencias de paquetes desinstalados, purgar paquetes desinstalados y limpiar la cache
# CLEAN="no": no hacer limpieza (opción por defecto)
# CLEAN="yes": hacer limpieza
CLEAN="no"

# Eliminar librerías huérfanas
# REMOVE_ORPHAN_LIBS="no": no eliminar librerías huérfanas (opción por defecto)
# REMOVE_ORPHAN_LIBS="yes": eliminar librerías huérfanas
REMOVE_ORPHAN_LIBS="no"

# Iniciar sinc_puppet antes de lanzar pkgsync para garantizar que los ficheros de pkgsync
# se encuentren actualizados
# LAUNCH_SINC_PUPPET="no": no iniciar sinc_puppet antes de hacer pkgsync
# LAUNCH_SINC_PUPPET="yes": iniciar sinc_puppet antes de hacer pkgsync (opción por defecto)
LAUNCH_SINC_PUPPET="yes"

Aquí podéis ver el código completo de pkgsync:

Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 30 de noviembre de 2016

Paquete linex-ubuntu-puppet 2.13

Acabo de empaquetar una nueva versión de linex-ubuntu-puppet, concretamente la 2.13 a la que he realizado las siguientes modificaciones:
  • He añadido un parámetro -r que permite regenerar el uiid y como consecuencia el certificado del cliente.
  • He añadido una opción -v para mostrar versión del script sinc_puppet.
  • He añadido una opción -h para mostrar la ayuda del script sinc_puppet.

# sinc_puppet -h
sinc_puppet 2.13
Automated sinc puppet client

Usage: /usr/sbin/sinc_puppet [OPTIONS]
Recognized options:
  -h              display this help and exit
  -v              display sinc_puppet version and exit
  -f              force sinc_puppet on SPLAYLIMIT
  -f now          force sinc_puppet now
  -r              renew cert client

Comentar tan sólo dos cosas:
  • now es una opción del parámetro -f. Por lo tanto, si lo utilizamos, debe ir a continuación de -f.
  • Es posible combinar las opciones -f y -r. Ejemplos:
# sinc_puppet -f now -r
# sinc_puppet -r -f now


Publicado por primera vez en http://enavas.blogspot.com.es

martes, 29 de noviembre de 2016

Paquete linex-ubuntu-puppet 2.12-3

He modificado el paquete linex-ubuntu-puppet forzar el reemplazo del fichero /etc/puppet/puppet.conf por un link que apunta a /usr/share/linex-ubuntu-puppet/puppet.conf. Parece que algunas máquinas tenían el fichero en lugar del enlace.

Publicado por primera vez en http://enavas.blogspot.com.es

Configuración BIOS portátiles HP x360

Como estoy volviendo a clonar los portátiles HP x360, y tengo que tocar algún ajuste en la BIOS, aprovecho para realizarles las siguientes configuraciones:
  • Establecer contraseña de acceso a la configuración.
  • Activar tecnología de virtualización.
  • En "Opciones de arranque" activo la "Compatiblidad heredada" para disponer de opciones de arranque "NO UEFI".
Como en todos los equipos HP:
  • El acceso a la configuración BIOS se realiza con F10.
  • El acceso a las opciones de arranque, con F9.

Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 28 de noviembre de 2016

Última versión del script sinc_puppet

Aquí tenéis el código de la última versión del script sinc_puppet, por si queréis echarle un vistazo. Como ya comenté en un post anterior, en el paquete linex-ubuntu-puppet 2.12-2 tan sólo he añadido una versión rectificada de la función solveapterrors en la que se diferencian los diferentes tipos de errores de apt para actuar en consecuencia:
/usr/share/linex-ubuntu-puppet/sinc_puppet
Y el fichero de configuración:
/etc/default/sincpuppet
Publicado por primera vez en http://enavas.blogspot.com.es

Script actualiza_proxmox: Instalar una versión actualizada de proxmox

En un post de enero de este año, os explicaba cómo solucionar el error de instalación de proxmox-ve. Para automatizar las actualizaciones de proxmox, utilizo un pequeño script. Aquí tenéis el código, por si queréis echarle un vistazo:
/usr/local/sbin/actualiza_proxmox
Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 23 de noviembre de 2016

GPO: No mostrar el útimo usuario que hizo login en Windows

Por defecto, Windows muestra el nombre del usuario que inició sesión en el dominio. Para cambiar este comportamiento, podemos hacerlo vía objeto de directiva de grupo (GPO).

Como ya he comentado en un post anterior, utilizo Zentyal como controlador de dominio. Así que, para modificar las políticas, primero me conecto a la máquina Windows que tiene instaladas las herramientas administrativas.

Una vez conectado abro la consola de gestión de políticas de grupo gpmc.msc.

A continuación, edito la directiva POLITICAS_IES que creé en el post anterior.

Y hago clic en las siguientes opciones:
Configuración del Equipo -> Configuración de Windows -> Configuración de Seguridad -> Directivas Locales -> Opciones de Seguridad.

Por último, editamos la opción que dice "Inicio de sesión interactivo: no mostrar el último nombre de usuario", marcamos la casilla que dice "Definir esta configuración de directiva" y marcamos la opción "Habilitada".

Publicado por primera vez en http://enavas.blogspot.com.es

Crear una nueva GPO para nuestro dominio y deshabilitar la "Default Domain Policy"

Vamos a crear una GPO para nuestro dominio (instituto.extremadura.es) y deshabilitar la "Default Domain Policy". De este modo, aplicaremos nuestras políticas sobre todo el dominio usando la GPO creada y guardaremos la "Default Domain Policy" como una alternativa a utilizar en caso de que se produzca un fallo en el dominio.

Para ello, primero seleccionamos nuestro dominio, en este caso, instituto.extremadura.es:

Una vez seleccionado, pulsamos con el botón derecho sobre él y seleccionamos la opción "Crear un GPO en este dominio y vincularlo aquí" en el menú de contexto que nos aparece:


Escribimos un nombre para nuestro nuevo GPO (por ejemplo, POLITICAS_IES):


Seleccionamos con el botón derecho sobre el nuevo GPO (POLITICAS_IES) y habilitamos la opción "Exigido". La opción "Vínculo habilitado" se encontrará activada por defecto.

Seleccionamos con el botón derecho sobre el GPO "Default Domain Policy" y deshabilitamos la opción "Vínculo habilitado".

Una vez realizados estos cambios, los dos GPO deben quedaros así:


Si ahora hacemos doble clic sobre la directiva "POLITICAS_IES", veremos que podemos crear:

  • Directivas y Preferencias para Equipos.
  • Directivas y Preferencias para Usuarios.



Publicado por primera vez en http://enavas.blogspot.com.es

Instalar RSAT en Windows 10 para gestionar nuestro controlador de dominio

Para gestionar la instalación Windows de los Infolab monté un controlador de dominio Zentyal virtualizado en Proxmox.

Este controlador de dominio me permite gestionar el acceso de cada usuario a la instalación Windows de los Infolab de manera que cada usuario pueda hacer login con su usuario y su password. Y, por otro lado, me va a permitir establecer políticas de grupo para las máquinas del dominio.

La cuestión es que Zentyal implementa el controlador de dominio mediante Samba4. Esto significa que si queremos administrar nuestro controlador de dominio, deberemos instalar RSAT en una máquina Windows que se encuentre agregada al dominio. 

Las Herramientas de administración remota del servidor (RSAT: Remote Server Administration Tools) nos permiten administrar nuestro controlador de dominio Windows desde un equipo remoto que ejecuta Windows.

Para facilitar mi trabajo y, teniendo en cuenta que el Windows que viene preinstalado en mi máquina sólo lo utilizo para ejecutar las herramientas administrativas, he considerado que lo más conveniente era virtualizarlo y arrancarlo solamente cuando lo necesite.

En este post, vamos a ver cómo instalar RSAT en el equipo Windows virtualizado.

Para empezar, descargamos las herramientas de administración remota del servidor desde la web de Microsoft:


Como el sistema operativo instalado es de 64 bits, descargo la versión de 64 bits:


Comienza el proceso de descarga...


Una vez descargado, ejecutamos el instalador y comenzará el proceso de instalación:


Nos pedirá que aceptemos el acuerdo de licencia:


Lo aceptamos y comienza a instalarlo:






Cuando termine, tendremos que reiniciar el equipo para completar la instalación:



Una vez reiniciado, ya podemos utilizar cualquiera de las herramientas administrativas:



También podemos abrirlas desde el menú de inicio, escribiendo el nombre de la herramienta. Por ejemplo, si queremos abrir la consola del gestor de políticas de grupo (gpmc.msc):



Publicado por primera vez en http://enavas.blogspot.com.es

martes, 22 de noviembre de 2016

Instalar tema Numix e iconos Numix-Circle y configurarlo para todos los usuarios en Xubuntu 14.04

Es fácil instalar este tema en Ubuntu:
# add-apt-repository ppa:numix/ppa
# apt-get update
# apt-get install numix-gtk-theme numix-icon-theme-circle
Una vez instalado, también es sencillo configurarlo por defecto para todos los usuarios. Tan sólo hay que tener en cuenta que en Xubuntu hay que colocar el fichero xsettings.xml en /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml en lugar de situarlo en /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml

A continuación podéis ver el fichero xsettings.xml con los ajustes del tema por defecto que tienen nuestros equipos:
/etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
<?xml version="1.0" encoding="UTF-8"?>

<channel name="xsettings" version="1.0">
  <property name="Net" type="empty">
    <property name="ThemeName" type="string" value="Greybird"/>
    <property name="IconThemeName" type="string" value="elementary-xfce-darker"/>
  </property>
  <property name="Xft" type="empty">
    <property name="DPI" type="int" value="96"/>
    <property name="Antialias" type="int" value="1"/>
    <property name="Hinting" type="int" value="1"/>
    <property name="HintStyle" type="string" value="hintslight"/>
    <property name="RGBA" type="string" value="rgb"/>
    <property name="Lcdfilter" type="string" value="lcddefault"/>
  </property>
  <property name="Gtk" type="empty">
    <property name="CursorThemeName" type="string" value="Human"/>
    <property name="CursorThemeSize" type="int" value="24"/>
    <property name="FontName" type="string" value="Droid Sans 10"/>
  </property>
</channel>
Y aquí podéis ver un  fichero xsettings.xml con los ajustes modificados. Como podéis observar:
  • Para cambiar el tema, tenemos que modificar la propiedad ThemeName.
  • Y para cambiar los iconos, modificamos la propiedad IconThemeName.
/etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
<!--
  Default values for the X settings registry as described in
  http://www.freedesktop.org/wiki/Specifications/XSettingsRegistry
-->

<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
  <property name="Net" type="empty">
    <property name="ThemeName" type="string" value="Numix"/>
    <property name="IconThemeName" type="string" value="Numix-Circle"/>
    <property name="DoubleClickTime" type="int" value="250"/>
    <property name="DoubleClickDistance" type="int" value="5"/>
    <property name="DndDragThreshold" type="int" value="8"/>
    <property name="CursorBlink" type="bool" value="true"/>
    <property name="CursorBlinkTime" type="int" value="1200"/>
    <property name="SoundThemeName" type="string" value="default"/>
    <property name="EnableEventSounds" type="bool" value="false"/>
    <property name="EnableInputFeedbackSounds" type="bool" value="false"/>
  </property>
  <property name="Xft" type="empty">
    <property name="DPI" type="empty"/>
    <property name="Antialias" type="empty"/>
    <property name="Hinting" type="empty"/>
    <property name="HintStyle" type="empty"/>
    <property name="RGBA" type="empty"/>
    <property name="Lcdfilter" type="empty"/>
  </property>
  <property name="Gtk" type="empty">
    <property name="CanChangeAccels" type="empty"/>
    <property name="ColorPalette" type="empty"/>
    <property name="FontName" type="string" value="Sans 10"/>
    <property name="IconSizes" type="empty"/>
    <property name="KeyThemeName" type="empty"/>
    <property name="ToolbarStyle" type="empty"/>
    <property name="ToolbarIconSize" type="empty"/>
    <property name="MenuImages" type="empty"/>
    <property name="ButtonImages" type="empty"/>
    <property name="MenuBarAccel" type="empty"/>
    <property name="CursorThemeName" type="empty"/>
    <property name="CursorThemeSize" type="empty"/>
    <property name="IMPreeditStyle" type="empty"/>
    <property name="IMStatusStyle" type="empty"/>
    <property name="IMModule" type="empty"/>
  </property>
</channel>
Publicado por primera vez en http://enavas.blogspot.com.es