sábado, 28 de enero de 2012

Truco: Reducir pdfs

Cada vez más usuarios me preguntan por ficheros pdf que tienen que subir a la web y al generarlos resulta que ocupan mucho espacio.

Este es el comando que utilizo normalmente para reducirlos de tamaño:

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=fichero_reducido.pdf fichero_original.pdf

En la siguiente página podéis encontrar las opciones disponibles: Ghostcript PDF Reference & Tips

miércoles, 4 de enero de 2012

Pfsense, PXE y Systemimager (I)

Este es el primero de una serie de artículos para mostrar como clonar máquinas y mantener sincronizadas sus configuraciones.

Partimos de un cluster con Pfsense configurado he iremos viendo como configurar el resto de servicios.

Introdución de cada sistema para los más neófitos:

Pfsense: pfSense es una distribución personalizada de FreeBSD adaptado para su uso como Firewall y Router. Se caracteriza por ser de código abierto, puede ser instalado en una gran variedad de ordenadores, y además cuenta con una interfaz web sencilla para su configuración. Fuente Wikipedia

PXE: (Preboot Execution Environment) es una herramienta que permite arrancar un sistema operativo o programa a través de la red, igual que si lo arrancaramos de un CD. Fuente Tutoriales-es.com y en Wikipedia.

Systemimager: permite automatizar las instalaciones, distribución de programas y el proceso de desarrollo; además de generar copias (clones) de equipos, distribución de configuraciones, cambios en el sistema, al grado de poder cambiar las versiones de Linux a través de la red. Fuente Canaima y su página oficial. Tiene como desventaja que se ha quedado desactualizado (trataremos de mejorarlo más adelante).

Disponemos de un servidor de pfsense en la ip 192.168.100.182 y de un servidor de systemimager en la ip 192.168.100.206.
Con esto datos configuramos el servicio DHCP de nuestra red en pfsense como muestra la siguiente imagen.

Hay que rellenar los datos del servidor PXE:
  • TFT Server
  • Activar "Enables network booting"
  • Ip del "next -server" y el nombre de fichero.
Y los referentes al servicio de Systemimager:

  • Añadimos dos opciones al servicio DHCP tal y como vemos en la imagen, sirve para que al seleccionar la opción del systemimager sepamos cuál es la ip del servicio

Configuración DHCP Server en Pfsense.


Creamos el directorio:

/tftpboot

En mi caso tiene el siguiente contenido:
# ls -lR /tftpboot/
total 82578
-rwxr--r--  1 root  wheel  82896896 Sep 19 14:05 g4l.iso
-rw-r--r--  1 root  wheel     24732 Sep 21 13:05 memdisk
-rw-r--r--  1 root  wheel     56832 Sep 21 13:05 menu.c32
-rw-r--r--  1 root  wheel     26674 Sep 21 13:05 pxelinux.0
drwxr-xr-x  2 root  wheel       512 Sep 21 12:22 pxelinux.cfg
drwxr-xr-x  2 root  wheel       512 Oct 28 15:29 sali     
-rw-r--r--  1 root  wheel   1443840 Nov 10 13:58 super_grub_disk_hybrid-1.98s1.iso 
                                                                                                                                                                                                                                            
/tftpboot/pxelinux.cfg:                                                                                                                                                                                                                     
total 2 
-rwxr--r--  1 root  wheel  793 Nov 10 14:00 default 
                                                                                                                                                                                                                                            
/tftpboot/sali:                                                                                                                                                                                                                             
total 22336 
-rw-r--r--  1 root  wheel  20967763 Oct 28 15:29 initrd.img 
-rw-r--r--  1 root  wheel   1851488 Oct 28 15:29 kernel

En negrita están marcados los directorios y ficheros imprescindibles para cualquier instalación.

Los ficheros menu.c32 y pxelinux.0 los podéis obtener de internet o instalando en ubuntu/debian el paquete syslinux-common y los encontraréis en:

ruben@cpv1174:/extra/ticnux/aws$ ll /usr/lib/syslinux/menu.c32
-rw-r--r-- 1 root root 56164 2011-05-18 13:25 /usr/lib/syslinux/menu.c32
ruben@cpv1174:/extra/ticnux/aws$ ll /usr/lib/syslinux/pxelinux.0
-rw-r--r-- 1 root root 26449 2011-05-18 13:25 /usr/lib/syslinux/pxelinux.0
El fichero default genera el menu que veremos por pantalla cuando arranquemos por red un ordenador, su contenido es el siguiente:

DEFAULT menu.c32
PROMPT 0
ALLOWOPTIONS 0
TIMEOUT 100

# Title of the boot screen
MENU TITLE Menu Arranque Bombers

# Local Hard Disk Boot Menu
LABEL Arranque local disco duro
 MENU Boot From Local Hard Disk
 LOCALBOOT 0

# G4L Boot
LABEL Arranque G4L
 MENU Ghost For Linux
 KERNEL memdisk
 APPEND iso raw initrd=g4l.iso

# Systemimager kioskos Boot
LABEL Instalar Kioskos
 KERNEL sali/kernel
 APPEND vga=extended initrd=sali/initrd.img root=/dev/ram
 MONITOR_SERVER=192.168.100.206 IMAGENAME=kiosko
 MONITOR_CONSOLE=yes VERBOSELEVEL=2

# Superdisk
LABEL Arranque SuperDisk Grub
 MENU SuperDisk
 KERNEL memdisk
 APPEND iso raw initrd=super_grub_disk_hybrid-1.98s1.iso


# Mensaje de Aviso
LABEL    
LABEL Si estas viendo esta pantalla
LABEL NO TOQUES NADA.
LABEL
Y así se muestra:



Como podéis ver se puede utilizar para muchas más cosas que no son systemimager, en nuestro caso también tenemos G4L y SuperGrubDisk.

Continuará ...