<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>nordri&#039;s Blog &#187; automatización</title>
	<atom:link href="http://www.muspells.net/blog/tag/automatizacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muspells.net/blog</link>
	<description>Estamos trabajando en ello...</description>
	<lastBuildDate>Wed, 04 Jan 2012 16:01:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Ordenar Fotos por Tamaños</title>
		<link>http://www.muspells.net/blog/2011/03/ordenar-fotos-por-tamanos/</link>
		<comments>http://www.muspells.net/blog/2011/03/ordenar-fotos-por-tamanos/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 18:57:17 +0000</pubDate>
		<dc:creator>Fede Diaz</dc:creator>
				<category><![CDATA[Linux Script]]></category>
		<category><![CDATA[automatización]]></category>
		<category><![CDATA[clasificar fotos]]></category>
		<category><![CDATA[imagemagick]]></category>

		<guid isPermaLink="false">http://www.muspells.net/blog/?p=893</guid>
		<description><![CDATA[Es casi una regla que el informático de turno de una empresa se tiene que comer unos marrones a cada cual más raro y exótico, el de hoy ha sido ordenar por tamaño unas 15.000 fotos, así, en frío. Para resolverlo, tenemos dos opciones, ir una a una mirando el tamaño y clasificarla o ser [...]]]></description>
			<content:encoded><![CDATA[<p>Es casi una regla que el informático de turno de una empresa se tiene que comer unos marrones a cada cual más raro y exótico, el de hoy ha sido ordenar por tamaño unas 15.000 fotos, así, en frío. Para resolverlo, tenemos dos opciones, ir una a una mirando el tamaño y clasificarla o ser listos y utilizar un programa que lo haga por nosotros.</p>
<p>Yo opté por escribir un pequeño script de Bash para resolver el problema, se identifica el archivo por su tamaño, y se traslada a donde queramos, en este caso particular vamos a discriminar por tres opciones,</p>
<ol>
<li>Más anchas que 1080px</li>
<li>Más altas que 1920px</li>
<li>Las pequeñas</li>
</ol>
<p>Para identificar una imagen usamos el comando <em>identify</em> que sin parámetros nos mostrará una salida así:</p>
<pre>
# identify foto.png
foto.png JPEG 1312x984 1312x984+0+0 8-bit DirectClass 233KB 0.000u 0:00.000
</pre>
<p>Forma parte de <strong>ImageMagick</strong>, debes instalarlo para usar el comando <em>identify</em></p>
<p>Pero para este caso le pasamos el parámetro <em>format</em> para que la salida sólo muestre lo que nos interese:</em></p>
<pre>
# identify -format "%w,%h" foto.png
1312,984
</pre>
<p>Ya con los valores de ancho y alto podemos escribir un bucle que lo haga por cada foto,</p>
<pre>
#!/bin/bash
# Ordena fotos por alto, ancho y otras
# Fede Diaz, Marzo 2011

TARGET="/path/to/output"
SOURCE="/path/to/input"

mkdir -p $TARGET/{anchas,altas,otras};

for FILE in $(ls $SOURCE);
do
  PROP=$(identify -format "%w,%h" $FILE);
  WEIGHT=$(echo $PROP | cut -d, -f1);
  HEIGHT=$(echo $PROP | cut -d, -f2);

  if [ $WEIGHT -gt 1080 ]; then
    mv $FILE $TARGET/anchas/;
  elif [ $HEIGHT -gt 1920 ]; then
    mv $FILE $TARGET/altas/;
  else
    mv $FILE $TARGET/otras/;
  fi
done
</pre>
<p>Y tardó bastante en procesar todas las fotos, pero siempre es mejor que el trabajo manual.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.muspells.net%2Fblog%2F2011%2F03%2Fordenar-fotos-por-tamanos%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Ordenar Fotos por Tamaños. via @nordri" data-url="http://www.muspells.net/blog/2011/03/ordenar-fotos-por-tamanos/" 
						data-via=""  ></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.muspells.net/blog/2011/03/ordenar-fotos-por-tamanos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Servidor de LiveCD &amp; Instalaciones</title>
		<link>http://www.muspells.net/blog/2010/06/servidor-de-livecd-instalaciones/</link>
		<comments>http://www.muspells.net/blog/2010/06/servidor-de-livecd-instalaciones/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 10:27:57 +0000</pubDate>
		<dc:creator>Fede Diaz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[automatización]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[clonezilla]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[pxe]]></category>
		<category><![CDATA[trinity tool kit]]></category>

		<guid isPermaLink="false">http://www.muspells.net/blog/?p=465</guid>
		<description><![CDATA[El tema de moda es el de Cloud Computing y existen muchas soluciones de despliegue de máquinas en una red de manera automatizada, en este post hablaremos de una de ellas y que lleva con GNU/Linux muchos años. Para ahorrarnos royos largos y aburridos copiamos de Wikipedia PXE hace referencia al entorno de ejecución de [...]]]></description>
			<content:encoded><![CDATA[<p>El tema de moda es el de <a href="http://es.wikipedia.org/wiki/Cloud_Computing">Cloud Computing</a> y existen muchas soluciones de despliegue de máquinas en una red de manera automatizada, en este post hablaremos de una de ellas y que lleva con GNU/Linux muchos años. Para ahorrarnos royos largos y aburridos copiamos de Wikipedia</p>
<blockquote><p>PXE hace referencia al entorno de ejecución de prearranque (Preboot eXecution Environment). Es un entorno para arrancar e instalar el sistema operativo en ordenadores a través de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles (como discos duros) o de los sistemas operativos instalados.</p></blockquote>
<p>La versatilidad de contar con un servidor de esta clase en la red son prácticamente ilimitadas, para mi red virtual, la monte sobre VirtualBox como un servidor, se encarga de dar IP (DHCP), Archivos (lftp, proftp) y sistemas operativos tanto en LiveCD como lanzando la instalación.</p>
<p><span id="more-465"></span></p>
<p>La instalación es sencilla. Sobre una Debian Lenny (5.0.3). Tras instalar el sistema base procedemos a instalar las herramientas necesarias</p>
<pre>aptitude install netkit-inetd tftpd-hpa dhcp3-server lftp proftpd rsync</pre>
<p>El tftpd-hpa es bastante problemático en modo independiente y es mejor lanzarlo desde <i>inetd</i>, para ello, deshabilitamos los niveles de ejecución de <i>init.d</i></p>
<pre>update-rc.d -f tftpd-hpa remove</pre>
<p>y nos aseguramos que disponemos de la línea correspondiente en <i>inetd.conf</i></p>
<pre>tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot</pre>
<p>Como vemos, la raíz del servidor pxe está en <i>/var/lib/tftpboot</i> y es ahí donde iremos añadiendo las distintas distribuciones que queremos lanzar en nuestra red.</p>
<p>La configuración por defecto de DHCP que viene con Debian es <strong>No Autoritaria</strong> que significa, que para que asigne una IP a una máquina tiene que conocerla previamente, por la mac normalmente, no nos vale y tenemos que hacer que asigne IP a todas las máquinas que la pidan. También tenemos que definir los parámetros para que funcione el PXE, debe quedar así:</p>
<pre>option domain-name-servers 145.253.2.75, 213.191.92.86;
default-lease-time 86400;
max-lease-time 604800;
authoritative;

subnet 192.168.2.0 netmask 255.255.255.0 {
        range 192.168.2.10 192.168.2.254;
        filename "pxelinux.0";
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.2.255;
        option routers 192.168.2.1;
}</pre>
<p>Listo, con estas opciones ya tenemos la infraestructura necesaria para desplegar máquinas en la red. No he profundizado mucho porque está basado en un artículo mejor <a href="http://www.howtoforge.com/setting-up-a-pxe-install-server-for-multiple-linux-distributions-on-debian-lenny">aquí</a>. Pero si queria comentar dos distribuciones que monté en PXE en modo Live que son <a href="http://clonezilla.org/">Clonezilla</a> y <a href="http://trinityhome.org/Home/blog.php?front_id=15">Trinity Rescue Kit</a>. La primera se usa para clonar discos duros y recuperar esas imágenes de copia de seguridad. La segunda contiene antivirus para scannear máquinas windows (Linux continua sin virus a pesar de los FUD). También quería mostrar como automatizar una instalación de <a href="http://www.centos.org/">CentOS</a> apoyandonos en esta infraestructura y con su sistema KickStart. Vamos a ello.
<p>Clonezilla necesita de tftp para lanzar su imagen de memoria, que pasará a memoria del sistema huésped, que a sido arrancado a través de PXE. Disponemos de todos los componentes, así que vamos:
<p>Primero descargamos el zip desde <a href="http://clonezilla.org/download/sourceforge/">aquí</a>, y lo descomprimimos en la raiz del servidor tftp, que no olvidemos es <em>/var/lib/tftpboot</em> aunque recomiendo, sobretodo si vamos a tener muchas distros, crear un directorio <em>clonezilla</em></p>
<pre>unzip -j clonezilla-live-*.zip live/vmlinuz live/initrd.img live/filesystem.squashfs -d /var/lib/tftpboot/clonezilla/</pre>
<p>Ahora, añadimos las opciones para lanzarlo en <em>/var/lib/tftpboot/pxelinux.cfg/default</em></p>
<pre>label clonezilla_live
  menu label rlonezilla Live
  kernel clonezilla/vmlinuz
  append initrd=clonezilla/initrd.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://192.168.2.2/clonezilla/filesystem.squashfs
</pre>
<p>Y listo, podemos arrancar cualquier máquina de la red y lanzar este magnífico proyecto para clonar, copiar y restaurar imágenes de disco duro. Tiene soporte para todos los modos de copia y transferencia de datos.</p>
<p>Para el caso de Trinity, ya escribí como proceder <a href="http://www.muspells.net/blog/2009/11/configurar-trinity-rescue-kit-para-pxe/">aquí</a>.</p>
<p>Y para CentOS necesitamos del servidor NFS para el fichero de kickstart y del ftp para recuperar los paquetes que elijamos instalar. No entraré en detalles de cómo configurar el FTP, ya que la instalación de ProFTP ya es funcional y sólo necesitamos un directorio donde poner el contenido del DVD. Para el archivo de kickstart, necesitamos una compartición de NFS y el contenido puede ser como sigue:</p>
<pre>install
text
url --url ftp://nordri:passwd@192.168.2.2//home/centos
lang es_ES.UTF-8
keyboard es
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$IRrk/Y9t$Yg%mL6rpN86QRQm.ElDHB/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
firewall --disabled

timezone --utc Europe/Madrid
bootloader --location=mbr --driveorder=hda

user --name=nordri --groups=users --homedir=/home/nordri --password=secreto

# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --linux
part / --bytes-per-inode=4096 --fstype="ext3" --size=5000
part swap --bytes-per-inode=4096 --fstype="swap" --size=200
part /home --bytes-per-inode=4096 --fstype="ext3" --grow --size=1

%packages
@editors
@text-internet
@dialup
@core
@base
@clustering
@spanish-support
device-mapper-multipath
</pre>
<p>Más información sobre kickstart <a href="http://wiki.centos.org/TipsAndTricks/KickStart">aquí</a>.</p>
<p>Para su entrada en default pondriamos:</p>
<pre>label centos5.3_i386_linux
         kernel centos/5.3/i386/vmlinuz
         append initrd=centos/5.3/i386/initrd.img ks=nfs:192.168.2.2:/var/lib/tftpboot/centos/net-install/ks.cfg</pre>
<p>Listo, toda máquina que iniciemos en la red eligiendo CentOS será formateada e instalada con esta distribución.</p>
<p>Nota sabionda: Fedora es igual y puedes conseguirte un buen automatizador para máquinas de escritorio.</p>
<p><H3>Conclusiones</H3></p>
<p>Montar esta infraestructura en un nivel básico como el que se muestra aquí no lleva más de unas pocas horas (contando con las descargas) se puede mejorar en seguridad pero me extendería demasiado, le doy uso en el despacho principalmente a CentOS donde el archivo kickstart está optimizado para incorporar nuevas máquinas al Cluster y el TRK para limpiar un poco los virus de los usuarios windows. En casa, es una máquina de mi red virtual y la uso para montar máquinas nuevas (Debian sobre todo) y probar cosas nuevas.</p>
<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;">
				<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.muspells.net%2Fblog%2F2010%2F06%2Fservidor-de-livecd-instalaciones%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe>
				</div><div class="really_simple_share_twitter" style="width:110px;">
					<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Servidor de LiveCD &#038; Instalaciones. via @nordri" data-url="http://www.muspells.net/blog/2010/06/servidor-de-livecd-instalaciones/" 
						data-via=""  ></a> 
				</div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://www.muspells.net/blog/2010/06/servidor-de-livecd-instalaciones/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

