viernes, 16 de enero de 2009

Cluster en Linux Ubuntu

¿Qué es un clúster?


    De la Wikipedia:Simplemente, clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio. De un cluster se espera que presente combinaciones de los siguientes servicios:
  • Alto rendimiento (High Performance)
  • Alta disponibilidad (High Availability)
  • Equilibrio de carga (Load Balancing)
  • Escalabilidad (Scalability)

  • La construcción de los ordenadores del cluster es más fácil y económica debido a su flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo (clúster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (clúster semi-homogéneo), o tener diferente hardware y sistema operativo (clúster heterogéneo).
    Para que un clúster funcione como tal, no basta solo con conectar entre sí los ordenadores, sino que es necesario proveer un sistema de manejo del clúster, el cual se encargue de interactuar con el usuario y los procesos que corren en él para optimizar el funcionamiento.

¿Qué necesito?


  • Nodos. Sirven cualquier tipo de máquinas que hasta pueden ser de desecho, y lo más básico que se imaginen, solo requerimos que posean procesador, memoria, tarjeta de red y si de preferencia disco duro. Claro que entre más nodos tengamos más capacidad de cómputo tendremos, pero cuidado con el tipo de máquina que se colocan, no es lo mismo colocar un Pentium I a 100MHz que un CoreDuo a 2GHz, de preferencia usen nodos clónicos o de similar capacidad para que el balanceo de carga sea adecuado.
  • Sistema de red. Si bien podemos usar sistemas como fibra óptica o mirynet que son de alta velocidad, el precio se eleva demasiado, actualmente la mayoria de las computadoras soporta e incluye red Ethernet 10/100/1000 y con un switch de cuantos puertos necesitemos basta para la mayoria de las aplicaciones. Existe un desarrollo para activarlas por conexiones Wifi, pero como no las he probado y las velocidades no se comparan, solo trataremos redes físicas.
  • Sistema operativo. Por supuesto que Linux pero en cuanto a la distribución a usar tenemos toda una bateria para escoger, es más, se puede transformar su distro favorita en un sistema para súpercomputo instalando los paquetes adecuados, pero por comodidad prefieran las distros que ya incluyen este soporte.
  • Aplicaciones de funcionamiento. El manejador de balanceo, sistemas de colas, soporte a MPI/LAM, etc. En las distros que vienen listas para clustering ya las traen preparas para usarse.
  • Aplicaciones finales. Pues depende de que uso le van a dar: para renderizar imágenes, cálculos matemáticos, ripear un DVD, codificar a OGG su biblioteca musical, etc. Muchas aplicaciones ya traen soporte para sistemas de clustering o sino tiene toda la libertad de crear las suyas y probar su clúster.

Caso práctico: BlackMamba


    Pues en mi caso, se disponian de varias computadoras que se encontraban en almácen debido a una inconsistencia del periodo compra/uso, en específico se habían adquirido 40 computadoras y nadie las usaba, por lo que se solicitaron para que el área de bioinformática las explotara en lugar de llenarse de polvo. En principio nos otorgaron 4 para pruebas.
    Las características de las computadoras son (todas son iguales):
  • Procesador: 2 Intel Xeon @ 1.6GHz
  • Memoria: 2 Gb
  • Disco Duro: 150 Gb
  • Tarjeta de Red: Ethernet 10/100/1000 y Wifi Atheros
  • Tarjeta de video: NVidia QuadroPro 128Mb

  • Se compró un switch de 24 puertos 10/100 por menos de $1000 pesos, el equivalente con soporte 1000 triplicaba el precio, y los respectivos cables CAT-5.
    Deben tomar en cuenta el requerimiento de energía electrica, nosotros sin saberlo montamos el clúster bajo una línea de 30A, pero nuestros ingenieros de mantenimientos nos han llamado la atención porque cada computadora consume aprox. 5A, por lo que solo podemos colocar 6 computadoras por línea independiente. Ya solicitamos más líneas para evitar sobrecargas.
    Otra consideración es la energía calorífica generada, nosotros tenemos el área bajo un sistema de clima de alta capacidad, pero el colocar muchas máquinas en un área reducida y sin ventilación puede llegar a calentar al punto de fundir los CPUs, memorias y discos duros, lo óptimo es que su cuarto ya en funcionamiento no sobre pase la temperatura ambiente.
    Nuestro esquema fue el de un nodo maestro y el resto como esclavos. Al nodo maestro se le colocó una segunda tarjeta PCI de red con el fin de que por la eth0 se comunica el clúster y por eth1 a nuestra intranet/internet. Salvo ese anexo no se modificó nada más, pero en los nodos maestros es buen consejo ampliar la memoria y el disco duro lo más que se pueda. Para solventar un poco el espacio en disco duro se nos presto un NAS Iomega de 1 Tb (sí, usamos muchos datos muy grandes) que accedemos vía red.
    Una vez armado para probar la eficiencia y darle números con el fin de solicitar aumentar los nodos, se probó con ParallelKnoppix.

ParallelKnoppix


    ParallelKnoppix como su nombre indica es una distro LiveCD basada en Knoppix, basada a su vez en Debian, que viene preparada para armar un clúster de forma rápida y sin tantos dolores de cabeza. Su uso es exageradamente sencilla y muy poderosa, basta con arrancar el nodo maestro con el CD, levantar los servicios mediante un sistema gráfico de configuración y levantar los nodos y ¡listo!, más sencillo no se puede.
    Los pasos es mejor que los consulten en la documentación en el tutorial incluido, dado que son muy fáciles no me parece que deba repetirlos, las preguntas que les hacen son para levantar un servidor DHCP, generar llaves de acceso, crear una imagen para arrancar por red y demás servicios. Una vez configurado el maestro y cuando el sistema lo pida, arrancamos los nodos esclavos usando arranque por red. Ya tenemos un clúster funcionando al 100%.
    Las pruebas que hicimos fue compara un grupo de secuencias contra una base de datos, dicho proceso en una computadora con 1 procesador y 1Gb de RAM tardó casi 26 hrs., pero usando 4 nodos (8 procesadores) solo tardamos como 4 Hrs. Esa fue la pauta para que nos dieran 7 nodos más y se autorizaran otros 10 en cuanto las instalaciones eléctricas lo permitan.
    Pero no nos quedamos con ParallelKnoppix, dado que es un sistema diseñado para ser temporal y no fijo, si bien se puede instalar al disco duro, el sistema presenta mucho trabajo para configurar tal y como estaba en el LiveCD, por lo que buscamos opciones más estables y prometedoras y despues de probar un par nos quedamos con ROCKS, del cual les hablaré en la siguiente parte.

Está es la segunda parte del montaje y uso de un clúster basado en Linux. En está ocasión se tratará sobre los detalles de la instalación de un sistema homogéneo completo con ROCKS. Una disculpa a quienes han estado ansiosos con esta continuación, ya que no había tenido tiempo de preparala.
Continúa ...
Actualizado con fotos ....



Para recordar en que nos quedamos respecto al artículo anterior, ya contamos con los equipos y se había armado una red pequeña donde el nodo maestro posee 2 tarjetas de red, con la eth0 se comunica con los nodos a través de un switch de 24 puertos 10/100, y con la eth1 se comunica con la intranet/internet.

Primero veamos porque se escogió a ROCKS como distribución, dado que tenía varias alternativas como Beowulf, Oscar, Mosix, etc.

  • Basado en CentOS, que está basado en el archi-reconocido RedHat, esto a mi me dio confianza y ya tengo experiencia previa con estos sistemas mediante Fedora.
  • La configuración y administración esta montada en bases de datos en MySQL.
  • Sistema integral que incluye todo lo necesario para instalar e usar de inmediato.
  • Sistema de módulos de expansión con aplicaciones especificas, en mi caso, uno específico para bioinformática ya listo con muchos programas de uso estándar.
  • Sistema de monitoreo y mantenimiento incluido y automatizado.
  • Muchas herramientas de desarrollo incluidas y especificas de súper-cómputo.
  • Totalmente escalable a nivel de equipo.
  • Todas las ventajas de la GPL/GNU.

    Requerimientos mínimos:

  • Procesador x86, x86_64, IA-64
  • Redes: Ethernet, Myrinet, Infiniband
  • Disco duro: 20 GB
  • Memoria RAM: 640 MB

    Paso 1. Obtener la distribución.
    En la sección de Downloads podemos descargar la imágenes ISO necesarias, ahí están catalogadas de acuerdo a la arquitectura del procesador, descarguen las correspondientes y verifiquen las MD5 antes de grabar los discos.
    Los discos requeridos son:

  • Kernel/Boot Roll (el de arranque)
  • Core Roll (sistema base)
  • Service Pack Roll (actualizaciones de seguridad)
  • OS Roll Disc 1 (sistema operativo)
  • OS Roll Disc 2 (sistema operativo)
    Los opcionales que son para ampliar su clúster:
  • APBS (Adaptive Poisson-Boltzmann Solver)
  • area51 (System security related services and utilites)
  • bio (Bioinformatics utilities)
  • condor (High throughput computing tools)
  • ganglia (cluster monitoring system from UCB)*
  • grid (Globus 4.0.2 GT4)*
  • java (Sun Java SDK and JVM)*
  • pbs (Portable Batch System)*
  • pvfs2 (PVFS2 File System)
  • sge (Sun Grid Engine job queueing system)*
  • silverstorm-qlogic-ib (SilverStorm-Qlogic IB Roll)
  • topspin-ib (Topspin’s IB stack packaged by cluster Corp.)
  • viz (Support for building visualization clusters)
  • voltaire-ib (InfiniBand support for Voltaire’s IB hardware)
    * ya viene incluido en el Core Roll.
    En mi caso solo descargue los requeridos más el bio.

    Paso 2. Instalar el nodo maestro.
    Coloque el disco Kernel/Boot Roll y arranque su computador, en cuanto tenga la pantalla con boot: escriba
    frontend
    En cuanto termina el arranque se dan de alta los discos con los que se cuenta, simplemente presionen el botón de CD/DVD-based Roll e inserten uno a uno los discos.
    También es posible instalar vía red, pero solo es recomendable si tienen banda ancha, ya que van a descargar al menos los discos base.
    Después se les pide información sobre el clúster, cosas típicas, por ejemplo el nuestro quedo así:

  • Fully-Qualified Host Name: blackmamba.ira.cinvestav.mx
  • cluster Name: blackmamba
  • Certificate Organization: Cinvestav
  • Certificate Locality: Irapuato
  • Certificate State: Guanajuato
  • Certificate Country: MX
  • Contact: ******@ira.cinvestav.mx
  • URL: http://blackmamba.ira.cinvestav.mx/
  • Latitude/Longitude: N20.40/W101.20
    Salvo que su clúster tenga salida directa a internet, las direcciones de Host Name y URL pueden no ser válidas.
    En seguida se da de alta la red, obligadamente eth0 es la que se comunica con los nodos esclavos, y eth1 con el exterior. Tengan cuidado de no causar colisiones en su red o colocar invertidas las tarjetas, además la IP pública de preferencia que sea estática. En esos casos pueden modificar las opciones que vienen por defecto y adecuarlos a su red.
    Los demás datos son sobre la contraseña de administrador (root) y la zona horaria, el particionamiento que puede usarse automático, coloca así las particiones:
  • / 8 GB
  • /var 4 GB
  • swap 1 GB
  • /export el resto del disco
    Pueden adecuar un poco más esta distribución, en mi caso como el disco duro es de 150 GB, opte por no moverle.

    Paso 3. Instalar los nodos esclavos
    Ingresen al nodo maestro como root e invoquen:
    insert-ethers
    Aquí seleccionen "Compute" y esperen al modo de escucha.
    Para facilitarse la vida, usen el arranque vía red en todos sus nodos esclavos, aunque esto solo es válido si es un clúster homogéneo. Si no lo es, inserten el disco de Kernel/Boot adecuado para cada nodo y no le den parámetros de arranque. Ahora enciendan uno a uno los nodos esclavos, dando tiempo al sistema de detectarlos, cuidado que pueden sobrecargar al maestro o al switch, ya que en este punto cada nodo arranca y descarga una imagen preparada por el maestro.
    Uno a uno los nodos son detectados e instalados, ya no hace falta hacer nada, automágicamente se instalan y se dan de alta.

    Paso 4. Dar de alta usuarios
    Basta con como administrador hacer:
    useradd usuario
    rocks-user-sync
    passwd usuario

    Paso 5. Personalizar aplicaciones En general la mayoría de las aplicaciones son exportadas a todos lo nodos, pero la carpeta /export que es donde esta realmente /home se migra a todos lo nodos, en mi caso mis usuarios usan los programas del paquete bio y este esta migrado en /export/bio, pero pueden hacer que sus programas migren fácilmente ubicándolos en una carpeta en su HOME, por ejemplo ~/mybin y añadirla a su PATH, o crear una carpeta especial para eso.

    Para probar pueden consultar sus nodos con:
    cluster-fork hostname
    El monitoreo pueden acceder por SSH y se ha montado un servidor web donde pueden ver la actividad con Ganglia, consultar la documentación o modificar la base de datos con PHPAdmin, e incluso generar una plantilla de etiquetas para cada nodo y así rápidamente identificarlos.
    Para apagar el sistema deben apagar primero los nodos esclavos y luego el maestro, la forma fácil es como root:
    cluster-fork shutdown -h now (esperar unos minutos a que todos se apaguen)
    shutdown -h now
    El arranque es primero el nodo maestro, esperar a que termine y luego uno a uno los esclavos.
    Finalmente pueden probar aplicaciones ya preparadas para clusterización con MPI o MPICH, o usar procesos distribuidos con el SGE. En la tercera y última parte veremos la programación básica con MPI y uso del sistema de colas de trabajo.


  • Lo prometido es deuda y le traigo la tercera entrega de mi serie de artículos sobre clustering en Linux, es específico un clúster que acabo de armar ahora usando Ubuntu como sistema base. Por la extensión de este tema lo voy a tener que partir en 2, primero les traigo la instalación y configuración del nodo maestro y en la segunda parte veremos la de los nodos esclavos.
    En el pasado artículo comenté que este iba a tratar sobre el uso general de la cola de trabajo y un poco de programación en MPI con "hola mundo" pero en paralelo, pero se me hace más interesante narrar esta experiencia dado que lo otro fácilmente lo pueden hacer leyendo los manuales y guías.
    Muchas gracias a las personas interesadas en esta serie de artículos por su comentarios.
    English version here: http://linxe-eye.blogspot.com/2008/04/ubuntu-cluster-master-node.html



    Antecedentes
    En esta ocasión mi Instituto (Cinvestav - www.ira.cinvestav.mx) me pidió una solución fija y similar a la anterior montada con ROCKS, esta serviria como un pequeño clúster general y como laboratorio de enseñanza para bioinformática. Este clúster fue bautizado como Beagle, el Instituto puso los equipos y con ayuda de mi buen amigo LuisD pusimos la mano de obra. El diseño incluye un nodo maestro que sirve de acceso, monitoreo y envió de trabajos, y 10 nodos esclavos que hará la parte de cómputo mediante exportación de /home por NFS, una cola de trabajos con SGE (Sun Grid Engine), Ganglia como monitor de los sistemas y soporte para MPI.
    El sistema base de inicio fue el mismo ROCKS, pero lamentablemente tuvimos problemas de compatibilidad y no nos fue posible usarlo, y aunque no me gusta mucho Ubuntu, pues ese fue la elección ya que era totalmente compatible y disponíamos de algunos tutoriales y guías para clústers con Debian.

    Hardware

  • Nodo Maestro: AMD Athlon 64 X2 4200+, 2 Gb RAM, 1 dd IDE 80 Gb (hda), 1 dd SATA 320 Gb (sda), 1 dd externo USB 1 Tb (sdb), tarjeta de red nForce 10/100/1000 (eth1), tarjeta de red PCI Realtek 10/100 (eth2).
  • Nodos Esclavos X10: AMD Athlon 64 X2 4200+, 2 Gb RAM, 1 dd IDE 80 Gb, tarjeta de red nForce 10/100/1000 (eth0).
  • Switch: 24 puertos 10/100/1000.
  • Muchos metros de cable de red.
  • Instalación del Nodo Maestro
    Tenemos una arquitectura amd64, por lo que usamos Ubuntu Desktop para amd64, descargamos la ISO, la quemamos e instalamos con las siguientes particularidades:

  • Sistema de archivos: ext3.
  • Particiones (partición:tamaño:punto_montaje):
      hda1 : 180 Mb : /boot
    hda2 : 2.0 Gb : swap
    hda4 : 24 Gb : /
    hda5 : 4.6 Gb : /tftpboot
    hda6 : 22 Gb : /var
    hda7 : 22 Gb : /usr
    sda1 : 2.0 Gb : swap
    sda2 : 292 Gb : /home
  • Cuenta general: beagle.
  • La red es configurada así: eth1 197.1.1.1 (comunicación con los nodos), eth2 10.0.0.114 (comunicación hacia el exterior a través de nuestra intranet).
    Terminamos la instalación, reiniciamos, accesamos y con una terminal nos pasamos a ser root y dar una contraseña:
    sudo su -
    passwd

    DHCP
    Un servidor DHCP se monto para comunicar con los nodos:

    apt-get install dhcp3-server
    Editamos /etc/dhcp3/dhcpd.conf para dar de alta la red 197.1.1.0/24 y agregar las MACs de cada nodo, incluyendo el nombre de host y el cargador de arranque por red (PXE). Nuestro archivo quedo:
    # dhcp.conf
    # Network for the Beagle cluster
    # Juan Caballero @ Cinvestav 2008
    ddns-update-style none;
    subnet 197.0.0.0 netmask 255.0.0.0 {
    default-lease-time 1200;
    max-lease-time 1200;
    option routers 197.1.1.1;
    option subnet-mask 255.0.0.0;
    option domain-name "local";
    option domain-name-servers 197.1.1.1;
    option nis-domain "beagle";
    option broadcast-address 197.255.255.255;
    deny unknown-clients;
    allow booting;
    allow bootp;
    if (substring (option vendor-class-identifier, 0, 20)
    = "PXEClient:Arch:00002") {
    # ia64
    filename "elilo.efi";
    next-server 197.1.1.1;
    } elsif ((substring (option vendor-class-identifier, 0, 9)
    = "PXEClient") or
    (substring (option vendor-class-identifier, 0, 9)
    = "Etherboot")) {
    # i386 and x86_64
    filename "pxelinux.0";
    next-server 197.1.1.1;
    } else {
    filename "/install/sbin/kickstart.cgi";
    next-server 197.1.1.1;
    }

    host beagle.local {
    hardware ethernet 00:e0:7d:b4:e1:13;
    option host-name "beagle.local";
    fixed-address 197.1.1.1;
    }
    host node00.local {
    hardware ethernet 00:1b:b9:e2:0d:18;
    option host-name "node00.local";
    fixed-address 197.1.1.100;
    }
    host node01.local {
    hardware ethernet 00:1b:b9:e1:cf:6a;
    option host-name "node01.local";
    fixed-address 197.1.1.101;
    }
    host node02.local {
    hardware ethernet 00:1b:b9:e1:be:6e;
    option host-name "node02.local";
    fixed-address 197.1.1.102;
    }
    host node03.local {
    hardware ethernet 00:1b:b9:cf:f3:55;
    option host-name "node03.local";
    fixed-address 197.1.1.103;
    }
    host node04.local {
    hardware ethernet 00:1b:b9:e2:14:06;
    option host-name "node04.local";
    fixed-address 197.1.1.104;
    }
    host node05.local {
    hardware ethernet 00:1b:b9:ce:85:9a;
    option host-name "node05.local";
    fixed-address 197.1.1.105;
    }
    host node06.local {
    hardware ethernet 00:1b:b9:e2:0c:5f;
    option host-name "node06.local";
    fixed-address 197.1.1.106;
    }
    host node07.local {
    hardware ethernet 00:1b:b9:cf:f7:29;
    option host-name "node07.local";
    fixed-address 197.1.1.107;
    }
    host node08.local {
    hardware ethernet 00:1b:b9:cf:f3:25;
    option host-name "node08.local";
    fixed-address 197.1.1.108;
    }
    host node09.local {
    hardware ethernet 00:1b:b9:e2:14:9f;
    option host-name "node09.local";
    fixed-address 197.1.1.109;
    }
    }
    En el archivo /etc/defaults/dhcp3-server especificamos la tarjeta por la cual se activa DHCP
    Interfaces="eth1"
    Y reiniciamos el servicio:
    /etc/init.d/dhcp3-server restart

    Más ajustes de red
    Editamos /etc/hosts para incluir todos los nodos, así:

    127.0.0.1       localhost
    197.1.1.1 beagle.local beagle
    197.1.1.100 node00.local node00
    197.1.1.101 node01.local node01
    197.1.1.102 node02.local node02
    197.1.1.103 node03.local node03
    197.1.1.104 node04.local node04
    197.1.1.105 node05.local node05
    197.1.1.106 node06.local node06
    197.1.1.107 node07.local node07
    197.1.1.108 node08.local node08
    197.1.1.109 node09.local node09
    También se creo un archivo de texto en /etc/machines con los nombres de todos los esclavos para usarse posteriormente en scripts:
    node00
    node01
    node02
    node03
    node04
    node05
    node06
    node07
    node08
    node09

    NFS
    Instalamos los paquetes:

    apt-get nfs-common nfs-kernel-server
    Editamos /etc/exports para exportar /home y /tftpboot:
    /home 197.1.1.0/24(rw,no_root_squash,sync,no_subtree_check)
    /tftpboot 197.1.1.0/24(rw,no_root_squash,sync,no_subtree_check)
    E iniciamos el servicio:
    exportfs -av

    Arranque con PXE
    Instalamos tftpd-hpa:

    apt-get install tfptd-hpa
    Editamos /etc/defaults/tfptd-hpa:
    #Defaults for tftpd-hpa
    RUN_DAEMON="yes"
    OPTIONS="-l -s /tftpboot"
    Descargamos el netboot para Ubuntu amd64:
    cd /tftpboot
    wget http://tezcatl.fciencias.unam.mx/ubuntu/dists/gutsy/main/installer-amd64/current/images/netboot/netboot.tar.gz
    tar zxvf netboot.tar.gz
    Reiniciamos el servicio:
    /etc/init.d/tftpd-hpa restart

    SGE
    Para SGE agregamos un usuario sgeadmin, descargamos los archivos y corremos el script de instalación, muchas opciones se toman por defecto:

    adduser sgemaster
    wget http://gridengine.sunsource.net/download/SGE61/ge-6.1u3-common.tar.gz
    wget http://gridengine.sunsource.net/download/SGE61/ge-6.1u3-bin-lx24-amd64.tar.gz
    tar zxvf ge-6.1u3-common.tar.gz
    tar zxvf ge-6.1u3-bin-lx24-amd64.tar.gz
    ./install-qmaster

    Servidor Web
    Instalamos Apache:

    apt-get install apache2

    Ganglia monitor
    Primero instalamos las dependencias, descargamos las fuentes y compilamos para tener la versión web:

    apt-get install rrdtool librrds-perl librrd2-dev php5-gd
    wget http://downloads.sourceforge.net/ganglia/ganglia-3.0.7.tar.gz?modtime=1204128965&big_mirror=0
    tar zxvf ganglia*
    cd ganglia*
    ./configure --with-gmetad
    make
    mkdir /var/www/ganglia
  • Esta es la segunda parte del montaje de un clúster con Linux Ubuntu, ahora veremos la instalación y configuración de los nodos esclavos.

    English version: http://linxe-eye.blogspot.com/2008/04/ubuntu-cluster-slave-nodes.html



    En el nodo maestro hemos configurado un servidor DHCP que servirá para asignar las IP, nombre de host y pasar un sistema de arranque por red mediante PXE. Por lo que ahora solo necesitamos conectar el nodo, agregarle un teclado y monitor y encenderlo, activando el arranque por red en el BIOS, e instalar el sistema base.

    Para el particionamiento usamos la opción por defecto de usar todo el disco duro como una sola partición y el swap que asigna, creamos la cuenta general de acceso (beagle) y al finalizar y reiniciar, entramos y en una terminal cambiamos a root, cambiamos su contraseña e instalamos el servidor SSH:

    sudo su - passwd apt-get install openssh-server Repetimos este proceso para todos los nodos y los siguientes pasos se pueden realizar desde el nodo maestro.

    Acceso automático con SSH
    Necesitamos crear un par de llaves para cada usuario y así puedan acceder a cualquier nodo sin contraseña, primero creamos la del usuario general:

    ssh-keygen cp .ssh/id_pub .ssh/authorized_keys Root también requiere de sus propias llaves de acceso, pero como no exportamos su HOME, necesitamos copiarlas a cada unos de los nodos con rcp. Este paso va a solicitar varias veces la contraseña, pero será única vez que lo hagamos. su - ssh-keygen cp .ssh/id_pub .ssh/authorized_keys for NODE in `cat /etc/machines` do rsh $NODE mkdir .ssh rcp .ssh/authorized_keys $NODE:.ssh/authorized_keys done En los siguientes pasos se requiere que se acceda a cada nodo como root.

    Exportando HOMENos conectamos al nodo, instalamos el paquete NFS, editamos /etc/fstab para montar /home desde el nodo maestro, borramos el contenido del viejo HOME y montamos:

    ssh nodeXX apt-get install nfs-common echo "197.1.1.1:/home /home nfs defaults,auto 0 0" >> /etc/fstab rm -rf /home/* mount -a

    Ajustes de hosts Editamos /etc/hosts para incluir todos los nodos, agregamos:

    197.1.1.1 beagle.local beagle 197.1.1.100 node00.local node00 197.1.1.101 node01.local node01 197.1.1.102 node02.local node02 197.1.1.103 node03.local node03 197.1.1.104 node04.local node04 197.1.1.105 node05.local node05 197.1.1.106 node06.local node06 197.1.1.107 node07.local node07 197.1.1.108 node08.local node08 197.1.1.109 node09.local node09

    Instalar SGE
    Los archivos necesario son exportados en /home/sgeadmin, primero añadimos las dependencias, agregamos el usuaro sgeadmin e instalamos el cliente:

    apt-get install binutils adduser sgeadmin /home/sgeadmin/install_execd Nota: Hay que revisar que los valores de UID y GID coincidan en /etc/passwd y /etc/groups, debes er el mismo en todos los nodos y el maestro.

    Administrando los nodos
    Muchas tareas administrativas son iguales para cada nodo, por lo que usamos un script (/sbin/cluster-fork) para que lo ejecute en cada nodo:

    #!/bin/bash # cluster-fork COMMANDS # Script to execute COMMANDS in all nodes in /etc/machines # Juan Caballero @ Cinvestav 2008 for NODE in `cat /etc/machines` do echo $NODE: rsh $NODE $* done Ahora podemos ejecitar el mismo comando sin problemas, pero es recomendable ejecutarlos con las opciones no interactivas, por ejemplo para actualizar todos los nodos: cluster-fork apt-get -y update cluster-fork apt-get -y upgrade O para instalar ganglia y soporte MPI: cluster-fork apt-get -y install ganglia-monitor lam-runtime mpich-bin openmpi-bin

    Add users in the cluster
    El HOME de todo usuario agregado en el nodo maestro será exportado a los otros nodos, podemos usar adduser en cada nodo para darlo de alta pero hay que tener cuidado de tener el mismo UID y GID y no crear un /home, de ser necesario se debe editar los archivos /etc/passwd y /etc/groups, también no olvidar crearle sus propias llaves de acceso automático.

    Finalmente ya tenemos un clúster HPC corriendo en Linux Ubuntu, pero muchos pasos pueden ser fácilmente adaptados a su distro preferida. Ahora vamos a probar un poco el desempeño del equipo y probablemente después coloquemos algunas fotos. También cualquier comentario o sugerencia son bienvenidos.


    cp web/* /var/www/ganglia
    Editamos la configuración de Apache para acceso a ganglia en /etc/apache2/sites-enabled/000-default
    Ahora instalamos lo paquetes ya compilados (cuidado con las versiones que se instaló desde fuente y estas):
    apt-get install ganglia-monitor gmetad
    Se puede editar los archivos /etc/gmond.conf y /etc/gmetad.conf para personalizar la configuración.

    Otros programas
    Usamos apt-get o paquetes compilados, en nuestro caso por ejemplo agregamos un servidor SSH, los compiladores básicos y soporte para MPI:

    apt-get install openssh-server gcc g++ g77 mpich-bin openmpi-bin lam-runtime

    En la siguiente parte instalaremos y configuraremos los nodos esclavos.


    Enlaces:

  • Ubuntu http://www.ubuntu.com/
  • Debian clusters http://debianclusters.cs.uni.edu/index.php/Main_Page
  • SGE http://gridengine.sunsource.net/
  • Ganglia http://ganglia.info/
  • NFS http://nfs.sourceforge.net/
  • TFTP-HPA http://freshmeat.net/projects/tftp-hpa/
  • DHCP http://www.dhcp.org/
  • MPICH http://www-unix.mcs.anl.gov/mpi/mpich1/
  • OpenMPI http://www.open-mpi.org/
  • LAM/MPI http://www.lam-mpi.org/
  • martes, 13 de enero de 2009

    Instalacion de Compiz

    Tutorial cómo instalar Compiz Completo en Ubuntu 8.10

    Lo primero que necesitaremos será instalar el Manejador de Compiz, o lo que es lo mismo el Compiz Settings Manager.

    Para hacer esto abre una terminal y teclea lo siguiente:

    sudo apt-get install compizconfig-settings-manager emerald

    Una vez que haya terminado instalaremos ahora el Fusion-icon una pequeña aplicación que nos facilita activar y desactivar estos efectos y administrarlos de una manera eficiente.

    sudo apt-get install fusion-icon

    Ahora lo pondremos en el inicio del sistema:

    SISTEMA > PREFERENCIAS > SESIONES .. elije el botón AÑADIR, y agregamos por nombre y por comando:

    fusion-icon

    Listo ya tienes instalado Compiz en tu maquina como debe de ser ahora si quieres modificar y mejorar la apariencia incluso agregar plugins es muy fácil lo puedes hacer desde Sistema/Preferencias/Administrador de opciones de CompizConfig o dando click derecho en el Compiz Fusion icon y eligiendo la opcion Settings Manager.

    Juegos en Linea

    Tactical Assasin Substratum

    Compartir Archivos

    Si quieres compartir tus archivos por medio de nuestro Blog.

    Manuales

    * Manual de Corel Draw 12

    * Manual de Cristal Reports

    Ubuntu Linux 8.10 Intrepid Ibex on Compiz Fusion

    La Instalación Perfecta - Debian 4.0 "Etch"

    La Instalación Perfecta - Debian 4.0 "Etch" Imprimir E-mail
    Versión 1.0

    Autor: Falko Timme
    Versión castellana no autorizada: Daniel Armando Rodriguez
    Gracias a Marcelo Guazardo por el comentario sobre Postgrey

    Última edición: 07/07/2007

    Este tutorial muestra como configurar un servidor basado en Debian Etch (Debian 4.0) que ofrezca todos los servicios requeridos por proveedores de acceso y alojamiento: servidor web Apache (con soporte SSL), servidor de correo Postfix con SMTP-AUTH y TLS, servidor DNS BIND, servidor FTP Proftpd, servidor MySQL, Courier POP3/IMAP, Quota, Firewall, etc. Este documento ha sido escrito para la versión de 32 bits de Debian Etch, aunque también debería funcionar con la de 64 bits mediante unas pequeñas modificaciones.

    Se utilizarán los siguientes programas:

    • Servidor Web: Apache 2.2
    • Servidor de Bases de Datos: MySQL 5.0
    • Servidor de Correo: Postfix
    • Servidor DNS: BIND9
    • Servidor FTP: proftpd
    • POP3/IMAP: se usará el formato Maildir para instalar luego Courier-POP3/Courier-IMAP.
    • Webalizer para estadísticas del sitio web

    Al finalizar debería tener un sistema de desempeño confiable, y si quisiera podría instalar un panel de control de alojamiento web gratuito como pr ejemplo ISPConfig.

    Esta no es la única manera de configurar un sistema de estas características. Existen muchas formas de hacerlo pero esta es la que yo he seguido. No garantizo que esto funcione para usted.

    1 Requerimientos

    Para instalar el sistema necesitará:

    2 Nota Preliminar

    En este tutorial uso el nombre de host servidor1.prueba.gov.ar con la dirección IP 192.168.0.100 y la puerta de enlace 192.168.0.1. Deberá reemplazar estos datos con los apropiados a su escenario.

    3 Sistema Base

    Inserte el CD Debian Etch Netinstall y arranque su sistema desde él. Presione ENTER:

    La instalación comienza, en primer lugar debe escoger el idioma:

    Luego seleccione su ubicación:

    Elija una distribución de teclado:

    El programa verifica el CD de instalación, su hardware y configura la red automáticamente si existe un servidor DHCP:

    Ingrese el nombre de host. En este ejemplo, el sistema se llama servidor1.prueba.gov.ar, de modo que ingreso servidor1:

    Ingrese el nombre de su dominio. En este ejemplo es prueba.gov.ar:

    Ahora debe particionar su disco duro. Por simplicidad crearé una única partición (con el punto de montaje /) y una pequeña partición swap así que selecciono Guiado - usar todo el disco (por supuesto, el particionado depende totalmente de usted - si lo prefiere, puede crear más que una sola partición, también puede usar LVM):

    Seleccione el disco que quiere particionar:

    Luego escoja un esquema de particionado. Como se mencionó antes, elegí Todos los ficheros en una partición (recomendado para novatos) por simplicidad - la selección depende de sus preferencias:

    Cuando este listo, seleccione Finalizar el particionado y escribir los cambios en el disco:

    Seleccione cuando se le pregunte ¿Desea escribir los cambios en los discos discos?:

    Seguidamente, sus nuevas particiones serán creadas y rebirán formato:

    Luego deberá ingresar una clave para el superusuario (root):

    Confirme la clave para evitar errores:

    Cree una cuenta de usuario normal, por ejemplo el usuario Administrador con el nombre de usuario administrador (no utilice el nombre de usuario admin ya que en Debian Etch es un nombre reservado):

    Ahora está siendo instalado el sistema base:

    A continuación debe configurar apt. Puesto que está utilizando el CD Netinstall de Debian Etch que solamente contiene un mínimo grupo de paquetes, deberá utilizar una réplica en red:

    Seleccione el país donde está ubicada la réplica en red que quiere usar (usualmente esto es el país don su sistema Debian Etch está situado):

    Luego seleccione la réplica que quiere usar (ej. debian.logiclinux.com):

    A menos que utilice un proxy HTTP, deje en blanco el siguiente campo y presione Continuar:

    Ahora apt está actualizando su base de datos de paquetes:

    Puede saltear la encuesta de uso de paquetes seleccionando No:

    Necesitamos un servidor web, servidor DNS, servidor de correo y una base de datos MySQL, pero nunca selecciono alguno de ellos porque quiero tener control total sobre lo que se instala en mi sistema. Instalaremos los paquetes necesarios manualmente más adelante. Por ello seleccionamos Sistema estándar y presionamos Continuar:

    Los paquetes requeridos están siendo instalados en el sistema:

    Cuando se le pregunte: Instalar el cargador de arranque GRUB en el registro principal de arranque, seleccione :

    Tras lo cual será instalado el cargador de arranque GRUB:

    La instalación del sistema base ha finalizado. Quite el CD Netinstall de Debian Etch de la unidad y presione Continuar para reiniciar el sistema:

    En el próximo paso...

    4 Instalar el Servidor SSH

    Debian Etch no instala OpenSSH en forma predeterminada, debemos hacerlo ahora. Ejecute

    apt-get install ssh openssh-server

    5 Configurar la Red

    El instalador de Debian Etch ha configurado nuestro sistema para que obtenga los parámetros de la red via DHCP, necesitamos cambiar eso ahora puesto que un servidor debería tener una dirección IP estática. Edite /etc/network/interfaces y ajústelo a sus necesidades (en esta configuración de ejemplo uso la dirección IP 192.168.0.100) (note que reemplacé allow-hotplug eth0 con auto eth0; de otro modo no será posible reiniciar la red y necesitaremos reiniciar el sistema completo):

    vi /etc/network/interfaces

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    #allow-hotplug eth0
    #iface eth0 inet dhcp
    auto eth0
    iface eth0 inet static

    address 192.168.0.100

    netmask 255.255.255.0

    network 192.168.0.0

    broadcast 192.168.0.255

    gateway 192.168.0.1

    Luego reinicie la red:

    /etc/init.d/networking restart

    Edite /etc/hosts. Haga que se vea así:

    vi /etc/hosts

    127.0.0.1
    localhost.localdomain
    localhost
    192.168.0.100
    servidor1.prueba.gov.ar
    servidor1

    # The following lines are desirable for IPv6 capable hosts
    ::1
    ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    Ahora ejecute

    echo servidor1.prueba.gov.ar > /etc/hostname

    y reinicie el sistema:

    shutdown -r now

    Posteriormente, ejecute

    hostname
    hostname -f

    Ambos deberían mostrar servidor1.prueba.gov.ar.

    A partir de ahora puede usar un cliente SSH tal como PuTTY y conectarse desde su estación de trabajo a su servidor Debian Etch para seguir con los restantes pasos de este tutorial.

    6 Edite /etc/apt/sources.list y Actualice su Instalación Linux

    Edite /etc/apt/sources.list. Comente las lineas que refieren al CD. Debería ver algo similar a esto:

    vi /etc/apt/sources.list

    #
    # deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 NETINST Binary-1 20070407-11:29]/ etch contrib main
    #deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 NETINST Binary-1 20070407-11:29]/ etch contrib main
    deb http://debian.logiclinux.com/debian/ stable main
    deb http://mirrors.kernel.org/debian stable main contrib
    deb http://security.debian.org/ stable/updates main contrib
    deb-src http://security.debian.org/ stable/updates main contrib

    Luego ejecute

    apt-get update

    para actualizar la base de datos de paquetes apt y

    apt-get upgrade

    para instalar las últimas actualizaciones (si hubiera alguna).

    7 Instalar Algunos Programas

    Ahora instalaremos unos pocos paquetes que serán necesarios más adelante. Ejecute

    apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev linux-kernel-headers lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++

    (Este comando debería ir en una sóla linea!)

    8 Quota

    (Si ha escogido un esquema de particionado diferente al que he utilizado deberá ajustar este capítulo de modo tal que quota sea aplicada en aquellas particiones donde usted la necesite.)

    Para instalar quota, ejecute

    apt-get install quota

    Edite /etc/fstab. El mío se ve así (agregué ,usrquota,grpquota a la partición /dev/hda1 (punto de montaje /; el nombre de su dispositivo podría ser /dev/sda1 o similar)):

    vi /etc/fstab

    # /etc/fstab: static file system information.
    #
    #




    proc
    /proc
    proc
    defaults
    0
    0
    /dev/hda1
    /
    ext3
    defaults,errors=remount-ro,usrquota,grpquota 0
    1
    /dev/hda5
    none
    swap
    sw
    0
    0
    /dev/hdc
    /media/cdrom0
    udf,iso9660 user,noauto
    0
    0
    /dev/fd0
    /media/floppy0
    auto
    rw,user,noauto
    0
    0

    para habilitar quota, ejecute estos comandos:

    touch /quota.user /quota.group
    chmod 600 /quota.*
    mount -o remount /
    quotacheck -avugm
    quotaon -avug

    9 Servidor DNS

    Ejecute

    apt-get install bind9

    Por razones de seguridad queremos ejecutar BIND enjaulado (chrooted) de modo que tendremos que seguir los siguientes pasos:

    /etc/init.d/bind9 stop

    Edite el archivo /etc/default/bind9 para que el demonio corra con el usuario sin privilegios bind, encerrado en /var/lib/named. Modifique la linea: OPTIONS="-u bind" para dejarla como OPTIONS="-u bind -t /var/lib/named":

    vi /etc/default/bind9

    OPTIONS="-u bind -t /var/lib/named"
    # Set RESOLVCONF=no to not run resolvconf
    RESOLVCONF=yes

    Cree los directorios necesarios en /var/lib:

    mkdir -p /var/lib/named/etc
    mkdir /var/lib/named/dev
    mkdir -p /var/lib/named/var/cache/bind
    mkdir -p /var/lib/named/var/run/bind/run

    Luego mueva el directorio de configuración desde /etc a /var/lib/named/etc:

    mv /etc/bind /var/lib/named/etc

    Cree un enlace simbólico al nuevo directorio de configuración desde la atigua ubicación (para evitar problemas cuando bind sea actualizado en el futuro):

    ln -s /var/lib/named/etc/bind /etc/bind

    Cree los dispositivos null y random, y corrija los permisos de los directorios:

    mknod /var/lib/named/dev/null c 1 3
    mknod /var/lib/named/dev/random c 1 8
    chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
    chown -R bind:bind /var/lib/named/var/*
    chown -R bind:bind /var/lib/named/etc/bind

    Necesitamos modicar/etc/default/syslogd ya que aún podemos tener importantes mensajes (logs) en los registros del sistema. Modifique la linea: SYSLOGD="" para que se pueda leer: SYSLOGD="-a /var/lib/named/dev/log":

    vi /etc/default/syslogd

    #
    # Top configuration file for syslogd
    #
    #
    # Full documentation of possible arguments are found in the manpage
    # syslogd(8).
    #
    #
    # For remote UDP logging use SYSLOGD="-r"
    #
    SYSLOGD="-a /var/lib/named/dev/log"

    Reinicie el demonio de registro (logging):

    /etc/init.d/sysklogd restart

    Inicie BIND, y veriique si hay errores en /var/log/syslog:

    /etc/init.d/bind9 start

    10 MySQL

    Para instalar MySQL, ejecutamos

    apt-get install mysql-server mysql-client libmysqlclient15-dev

    Queremos que MySQL escuche en todas las interfaces, no solo localhost, entonces editamos /etc/mysql/my.cnf y descomentamos la linea bind-address = 127.0.0.1:

    vi /etc/mysql/my.cnf

    [...]
    #bind-address
    = 127.0.0.1
    [...]

    Luego reiniciamos MySQL:

    /etc/init.d/mysql restart

    Ahora chequeamos que está habilitado el servicio de red. Ejecute

    netstat -tap

    En la salida debería ver una linea como esta:

    tcp 0 0 *:mysql *:* LISTEN 3281/mysqld

    Ejecute

    mysqladmin -u root password la_clave_del_super_usuario_sql
    mysqladmin -h servidor1.prueba.gov.ar -u root password la_clave_del_super_usuario_sql

    para establecer una clave para el usuario root (de otro modo cualquiera podrá acceder a su base de datos MySQL!).

    11 Postfix con SMTP-AUTH y TLS

    Para instalar Postfix con SMTP-AUTH y TLS siga los pasos siguientes:

    apt-get install postfix libsasl2 sasl2-bin libsasl2-modules libdb3-util procmail postgrey

    Le serán hechas dos preguntas. Responda de acuerdo a lo siguiente:

    General type of configuration? <-- Internet Site
    Mail name? <-- servidor1.prueba.gov.ar

    Luego ejecute

    dpkg-reconfigure postfix

    Nuvamente, algunas preguntas le serán hechas:

    General type of configuration? <-- Internet Site
    Where should mail for root go <-- [blank]
    Mail name? <-- servidor1.prueba.gov.ar
    Other destinations to accept mail for? (blank for none) <-- servidor1.prueba.gov.ar, localhost.prueba.gov.ar, localhost.localdomain, localhost
    Force synchronous updates on mail queue? <-- No
    Local networks? <-- 127.0.0.0/8
    Use procmail for local delivery? <-- Yes
    Mailbox size limit <-- 0
    Local address extension character? <-- +
    Internet protocols to use? <-- all

    Luego, haga esto:

    postconf -e 'smtpd_sasl_local_domain ='
    postconf -e 'smtpd_sasl_auth_enable = yes'
    postconf -e 'smtpd_sasl_security_options = noanonymous'
    postconf -e 'broken_sasl_auth_clients = yes'
    postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
    postconf -e 'inet_interfaces = all'
    echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
    echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

    Posteriormente creamos los certificados para TLS:

    mkdir /etc/postfix/ssl
    cd /etc/postfix/ssl/
    openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

    chmod 600 smtpd.key
    openssl req -new -key smtpd.key -out smtpd.csr

    openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

    openssl rsa -in smtpd.key -out smtpd.key.unencrypted

    mv -f smtpd.key.unencrypted smtpd.key
    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

    Luego configuramos Postfix para TLS:

    postconf -e 'smtpd_tls_auth_only = no'
    postconf -e 'smtp_use_tls = yes'
    postconf -e 'smtpd_use_tls = yes'
    postconf -e 'smtp_tls_note_starttls_offer = yes'
    postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
    postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
    postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
    postconf -e 'smtpd_tls_loglevel = 1'
    postconf -e 'smtpd_tls_received_header = yes'
    postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
    postconf -e 'tls_random_source = dev:/dev/urandom'
    postconf -e 'myhostname = servidor1.prueba.gov.ar'

    El archivo /etc/postfix/main.cfdebería verse similar a esto:

    cat /etc/postfix/main.cf

    # See /usr/share/postfix/main.cf.dist for a commented, more complete version

    # Debian specific:
    Specifying a file name will cause the first
    # line of that file to be used as the name.
    The Debian default
    # is /etc/mailname.
    #myorigin = /etc/mailname

    smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
    biff = no

    # appending .domain is the MUA's job.
    append_dot_mydomain = no

    # Uncomment the next line to generate "delayed mail" warnings
    #delay_warning_time = 4h

    # TLS parameters
    smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
    smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.

    myhostname = servidor1.prueba.gov.ar
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = servidor1.prueba.gov.ar, localhost.prueba.gov.ar, localhost.localdomain, localhost
    relayhost =
    mynetworks = 127.0.0.0/8
    mailbox_command = procmail -a "$EXTENSION"
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    inet_protocols = all
    smtpd_sasl_local_domain =
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks
    ,reject_unauth_destination,check_policy_service inet:127.0.0.1:60000
    smtpd_tls_auth_only = no
    smtp_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom

    Reinicie Postfix:

    /etc/init.d/postfix restart

    La autenticación será hecha por saslauthd. Debemos modificar unas pocas cosas para que funcione adecuadamente. Ya que Postfix se ejecuta enjaulado (chrooted) en /var/spool/postfix debemos hacer lo siguiente:

    mkdir -p /var/spool/postfix/var/run/saslauthd

    Ahora tendremos que editar /etc/default/saslauthd para activar saslauthd. Coloque el parámetro START en sí y cambie la linea OPTIONS="-c" por OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

    vi /etc/default/saslauthd

    #
    # Settings for saslauthd daemon
    #

    # Should saslauthd run automatically on startup? (default: no)
    START=yes

    # Which authentication mechanisms should saslauthd use? (default: pam)
    #
    # Available options in this Debian package:
    # getpwent
    -- use the getpwent() library function
    # kerberos5 -- use Kerberos 5
    # pam
    -- use PAM
    # rimap
    -- use a remote IMAP server
    # shadow
    -- use the local shadow password file
    # sasldb
    -- use the local sasldb database file
    # ldap
    -- use LDAP (configuration is in /etc/saslauthd.conf)
    #
    # Only one option may be used at a time. See the saslauthd man page
    # for more information.
    #
    # Example: MECHANISMS="pam"
    MECHANISMS="pam"

    # Additional options for this mechanism. (default: none)
    # See the saslauthd man page for information about mech-specific options.
    MECH_OPTIONS=""

    # How many saslauthd processes should we run? (default: 5)
    # A value of 0 will fork a new process for each connection.
    THREADS=5

    # Other options (default: -c)
    # See the saslauthd man page for information about these options.
    #
    # Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
    # Note: See /usr/share/doc/sasl2-bin/README.Debian
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

    Ahora inicie saslauthd:

    /etc/init.d/saslauthd start

    Para comprobar que SMTP-AUTH y TLS funcionana apropiadamente ejecute el siguiente comando:

    telnet localhost 25

    Luego de establecer la conexión con su servidor de correo Postfix ingrese

    ehlo localhost

    Si ve las lineas

    250-STARTTLS

    y

    250-AUTH PLAIN LOGIN

    todo está bien.

    La salida en mi sistema se ve como esto:

    servidor1:/etc/postfix/ssl# telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.localdomain.
    Escape character is '^]'.
    220 servidor1.prueba.gov.ar ESMTP Postfix (Debian/GNU)
    ehlo localhost
    250-servidor1.prueba.gov.ar
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH PLAIN LOGIN
    250-AUTH=PLAIN LOGIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.

    Escriba

    quit

    para regresar a la linea de comandos.

    12 Courier-IMAP/Courier-POP3

    Ejecute esto para instalar Courier-IMAP/Courier-IMAP-SSL (para IMAPs en el puerto 993) y Courier-POP3/Courier-POP3-SSL (para POP3s en el puerto 995):

    apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

    Dos preguntas le serán hechas:

    Create directories for web-based administration ? <-- No
    SSL certificate required <-- Ok

    Si no quiere usar ISPConfig, configure Postfix para entregar mensajes de correo al Maildir* de los usuarios:

    postconf -e 'home_mailbox = Maildir/'
    postconf -e 'mailbox_command ='
    /etc/init.d/postfix restart

    *Nota: No necesita hacer esto si planea usar ISPConfig en su sistema ya que ISPConfig hace los ajustes necesarios usando recetas procmail. Pero asegúrese de habilitar Maildir en Management -> Server -> Settings -> EMail en la interfaz web de ISPConfig.

    13 Apache/PHP5

    Ahora instalaremos Apache:

    apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

    A continuación instalaremos PHP5:

    apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

    La siguiente pregunta le será realizada:

    Continue installing libc-client without Maildir support? <-- Yes

    Seguidamente editamos /etc/apache2/mods-available/dir.conf:

    vi /etc/apache2/mods-available/dir.conf

    y cambiamos la linea DirectoryIndex line:



    DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

    Edite /etc/apache2/ports.conf y agregue Listen 443:

    vi /etc/apache2/ports.conf

    Listen 80
    Listen 443

    Ahora necesitamos habilitar algunos módulos de Apache (SSL, rewrite, suexec e include):

    a2enmod ssl
    a2enmod rewrite
    a2enmod suexec
    a2enmod include

    Recargue la configuración de Apache:

    /etc/init.d/apache2 force-reload

    13.1 Deshabilitar PHP Globalmente

    (Si no planea instalar ISPConfig en este servidor, saltee esta sección!)

    En ISPConfig configurará PHP por sitio web, puede especificar que sitio web puede ejecutar scripts PHP y cual no. Esto solamente puede funcionar si PHP es desabilitado globalmente ya que de otro modo todos los sitios web serían capaces de ejecutar scripts PHP, no importa que especifique en ISPConfig.

    Para desabilitar PHP globalmente, editamos /etc/mime.types y comentamos las lineas application/x-httpd-php:

    vi /etc/mime.types

    [...]
    #application/x-httpd-php
    phtml pht php
    #application/x-httpd-php-source
    phps
    #application/x-httpd-php3
    php3
    #application/x-httpd-php3-preprocessed
    php3p
    #application/x-httpd-php4
    php4
    [...]

    Edite /etc/apache2/mods-enabled/php5.conf y comente las siguientes lineas:

    vi /etc/apache2/mods-enabled/php5.conf


    #
    AddType application/x-httpd-php .php .phtml .php3
    #
    AddType application/x-httpd-php-source .phps

    Luego reinicie Apache:

    /etc/init.d/apache2 restart

    14 Proftpd

    Para instalar Proftpd, ejecute

    apt-get install proftpd ucf

    Se le preguntará:

    Run proftpd from inetd or standalone? <-- standalone

    Luego abra /etc/proftpd/proftpd.conf y cambieUseIPv6 de on a off; caso contrario recibirá una advertencia como esta cuando inicie Proftpd:

    - IPv6 getaddrinfo 'servidor1.prueba.gov.ar' error: Name or service not known

    vi /etc/proftpd/proftpd.conf

    [...]
    UseIPv6
    off
    [...]

    Por razones de seruridad puede tambien agregar las siguientes lineas a /etc/proftpd/proftpd.conf (gracias a Reinaldo Carvalho; mayor información puede ser encontrda en http://proftpd.org/localsite/Userguide/linked/userguide.html):

    vi /etc/proftpd/proftpd.conf

    [...]
    DefaultRoot ~
    IdentLookups off
    ServerIdent on "FTP Server ready."
    [...]

    ISPConfig espera que la configuración se encuentre en /etc/proftpd.conf en lugar de /etc/proftpd/proftpd.conf, por lo tanto creamos un enlace simbólico (puede saltear este comando si no quiere instalar ISPConfig):

    ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf

    Luego reinicie Proftpd:

    /etc/init.d/proftpd restart

    15 Webalizer

    Para instalar webalizer, basta con ejecutar

    apt-get install webalizer

    16 Synchronize the System Clock

    Es una buena idea sincronizar el reloj del sistema con un servidor NTP (network time protocol) de internet. Simplemente ejecute

    apt-get install ntp ntpdate

    y la hora de su sistema estará siempre sincronizada.

    17 Instalar algunos módulos Perl necesarios para SpamAssassin (incluido en ISPConfig)

    Ejecute

    apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl

    18 ISPConfig

    La configuración del servidor ha concluido, y si lo desea ahora puede instalar en él ISPConfig. Verifique el manual de instalación de ISPConfig: http://www.ispconfig.org/manual_installation.htm

    18.1 Nota para SuExec

    Si quiere ejecutar scripts CGI bajo suExec, debería especificar /var/www como el directorio inicial para los sitios web creados con ISPConfig ya que el suExec de Debian está compilado con /var/www como Doc_Root. Ejecute

    /usr/lib/apache2/suexec -V

    y la salida debería verse como esto:

    servidor1:/etc/postfix/ssl# /usr/lib/apache2/suexec -V
    -D AP_DOC_ROOT="/var/www"
    -D AP_GID_MIN=100
    -D AP_HTTPD_USER="www-data"
    -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
    -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
    -D AP_UID_MIN=100
    -D AP_USERDIR_SUFFIX="public_html"

    A menos que instale ISPConfig en modo experto y cambie el raíz predeterminado del web (que es /var/www), será capaz de ejecutar scripts CGI bajo suExec con ISPConfig. La siguiente captura de pantalla fue tomada de una instalación ISPConfig en modo experto. Si quiere usar ISPConfig, no cambie el raíz predeterminado del sitio web:

    jueves, 1 de enero de 2009

    Mi Curriculum

    DATOS PERSONALES

    Nombre: Antonio Aguilar Arellano.

    Fecha de nacimiento: 10 de Junio de 1980.

    CURP: AUAA800610HPLGRN00.

    Correo Electrónico: antonio_aguilar1@msn.com debian.antonio@gmail.com

    Celular: 276 102 72 08 y 276 106 38 77

    INTERÉS PROFESIONAL

    Dominar el diseño Web, Hosting, el manejo y administración de redes cableadas e inalámbricas, seguridad y manejo de servidores para su óptima funcionalidad dentro de la empresa donde me encuentre laborando.

    RESUMEN DE HABILIDADES

    Administrador de servidores (Mysql, Dhcp, Bind, Proxy “Squid y Squidguard”, Samba, Correos “Postfix, Sendmail”, Clusters).

    Hosting y Diseño Web.

    Usuario de sistemas operativo (Windows “98, 2000, NT, XP, Server 2000”).

    Usuario y administrador de distribuciones (Linux “Fedora, Mandrake, Red Hat, Suse, Debian, Ubuntu, knoppix”).

    Ofimática.

    Instalador y administrador de redes.

    Mantenimiento y soporte Técnico.






    EXPERIENCIA PROFESIONAL

    2009-2010 Jardin de Niños Juan Bernardo Basedow.

    Profesor.
    Profesor de Kinder.

    2008-2009 Cooporativo CCH Libres, Puebla.

    Profesor.
    Profesor de todas las areas de computo así como todos los niveles.


    2007-2007 Grupo PROISI Grajales, Puebla.

    Capturista de Boleta Electorales.
    Captura de datos e imágenes de boletas electorales para la empresa de resultados preliminares del estado.


    2004-2004 Empacadora San Marcos. Nopalúcan, Puebla.

    Asistente Depto. de Sistemas.
    Mantenimiento general de equipo de cómputo.
    Instalación de red en las áreas internas de planta.
    Creación de página Web.
    Cooperación en instalación de servidor local y dns.

    2001-2004 Pasteurizadora Maulec. Nopalúcan, Puebla.

    Asistente Depto. de Sistemas.

    Mantenimiento general de equipo de cómputo.
    Instalación preventivo y correctivo de red a otras áreas.
    Respaldos de información general de movimientos administrativos diarios de la empresa.
    Migración de información del sistema Múltiple Empresarial a un software nuevo proporcionado por la empresa GNEXUS.



    PREPARACIÓN ACADEMICA

    2006-2008 Instituto Tecnológico Superior de Libres.

    Trunco 7to semestre de la carrera en Ing. en Sistemas Computacionales.

    1998-2001 CBTIS257 Rafael Lara Grajales, Puebla.

    Técnico en Contabilidad Publica (Egresado con certificado y acta de recepción profesional).
    Con domicilio en calle 9 Norte s/n.

    1993-1996 Esc. Sec. Profesor Luís G. Salazar.

    Secundaria concluida. (Con certificado recibido).
    Con domicilio conocido.

    1986-1992 Esc. primaria José Vasconselos.

    Primaria concluida. (Con certificado recibido).
    Con domicilio conocido.


    OTROS ESTUDIOS

    2000-2001 Centro de Computación Huamantla CCH.

    Con diploma.
    Con domicilio conocido.


    INTERESES PROPIOS

    Mis intereses personales son: lectura ligera y de refente a mí carrera, los deportes en los que mas me agrada practicar son: básquet bol, vóley bol, natación y por ultimo mas no menos importante Internet.

    El Tiempo en mi localidad