Mirror de repositorios con apt-mirror

Escrito el Friday, 27 de January de 2012 por

Respecto a lo que os comentaba el otro dia, el provisionamiento de servidores con Cobbler, me di cuenta de una cosita.

Al instalar un CentOS, la instalación era realmente muy rápida (un sistema base). Pero, al instalar Ubuntu, los tiempos de descarga se notaban. No es que sea un problema exasperante, pero si que era notablemente superior.

Para solucionar este tema, he visto un par de opciones que me he decidido a probar. Una de ellas es apt-mirror. Básicamente lo que hace es crear un mirror local de los repositorios Debian / Ubuntu que le configuremos. De ese modo, podemos usar tal mirror para las instalaciones de manera que la descarga de contenidos sea a velocidades de LAN.

Instalar apt-mirror es ultra-apt-sencillo (“apt-get install apt-mirror”). Después, tendremos que configurarlo editando el fichero /etc/apt/mirrors.list indicando que repositorios queremos “mirrorear” y alguna opción más. El fichero siguiente es el que he usado yo, que descarga los repositorios main, restricted, universe y multiverse de las versiones 64bit de Lucid (la última LTS a dia de hoy y Oneiric, la última a dia de hoy).


############# config ##################

#
set base_path /var/mirror
#
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
# set defaultarch <running host architecture>
set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############

deb-amd64 http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu lucid-updates main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu lucid main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installerdeb-amd64 http://archive.ubuntu.com/ubuntu oneiric main restricted universe multiverse

deb-amd64 http://archive.ubuntu.com/ubuntu oneiric-updates main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu oneiric main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer

clean http://archive.ubuntu.com/

 

La última línea (“clean…”) indica que repositorios pueden ser eliminados en local. Es decir, paquetes que desaparezcan del repositorio archive.ubuntu.com podrán ser borrados en local.

Una vez lo tenemos configurado, tenemos que ejecutar apt-mirror para que empiece a descargar paquetes. Tened en cuenta que el fichero que os pongo en este post descarga sobre unos 70GB de datos, con lo que A) aseguraos de tener ese espacio disponible  y B) armaos de paciencia que lleva su rato.

En mi caso, he cambiado el path por defecto de /var/spool/apt-mirrror a /var/mirror, no se aún muy bien por que, pero si que he copiado los contenidos de la ruta original a la que voy a utilizar ya que incluye algunos scripts de mantenimiento.

Una vez lo tenemos:

# su - apt-mirror -c apt-mirror

Ejecutará el comando con el usario apt-mirror y veremos por pantalla el resumen de lo que va a descargar. A partir de ahí se van arrancando hilos de descarga (por defecto creo que son 20) y paciencia.

Cuando termine, tendremos en local (en mi caso en /var/mirror/archive.ubuntu.com) una copia de los repositorios indicados. Es recomendable descomentar (y si es necesario ajustar el horario) de la entrada de crontab que apt-mirror introduce en /etc/cron.d/apt-mirror para que se vayan manteniendo sincronizados los contenidos de nuestro mirror con el oficial.

Para acabar, he creado un link simbolico que apunte la ruta /ubuntu del servidor apache a la raíz del mirror:

# ln -s /var/mirror/archive.ubuntu.com/ubuntu /var/www/ubuntu

Ahora podemos cambiar los scripts de preseed para que usen el mirror local en lugar de los públicos y veremos como el proceso de instalación se reduce considerablemente.


Provisionamiento de servidores Linux

Escrito el Monday, 23 de January de 2012 por

Una de las últimas cosas que me miré en UPCnet y que intenté entender fué el uso de cobbler para el aprovisionamiento de servidores. El caso es que en el servidor que uso en casa a modo de laboratorio he instalado Proxmox para usar VM’s con KVM y no tengo directamente disponible la opción de clonar imágenes de disco para clonar plantillas de servidores. Bueno, la opción está, pero vía comandos y sin “personalización” en tiempo de deploy.

Así pués, retomé el tema de cobbler en casa. Supongo que para ninguno es nuevo el tema del arranque de servidores vía PXE para instalar SO, etc. Cobbler se ocupa de generar los ficheros de arranque PXE para poder hacer el provisionamiento de servidores mucho más dinámico. En mi caso, uso para el DNS y el DHCP el programa dnsmasq, que es más que suficiente para un entorno pequeño, pero cobbler es capaz de gestionar él mismo un servidor DHCP ISC o un servidor Bind para el DNS.

A grandes rasgos, lo que haremos con cobbler es importar una série de distros que luego podrán ser servidas por red para instalar en servidores nuevos. Estas instalaciones se pueden parametrizar a su vez vía kickstart o preseed, de manera que teniendo algunas plantillas podemos simplemente crear nuevas VM que arranquen por red y esperar a que finalice la instalación.

Probé cobbler sobre un CentOS 6, pero encontré un problema a la hora de importar la distro de ubuntu (creo que se ha abandonado el soporte para Debian/Ubuntu en cobbler, ¿puede ser?). Así pués, he cambiado el servidor donde tenía el cobbler por un Ubuntu Server 11.10 donde he instalado Orchestra, que a grandes rasgos es un conjunto de paquetes para el provisionamiento de servidores Ubuntu. Orchestra está basado en cobbler, pero como está distribuido por Ubuntu, si que podemos importar la ISO (faltaría mas).

Lo iremos probando.


Puppet + Ruby + Foreman + Passenger “all in one” “superfast”

Escrito el Tuesday, 17 de January de 2012 por

Mira tu!

Un tutorial para instalar Puppet, ruby, passenger y Foreman en un RHEL (o basado en). Es muy express sin dar muchos detalles, pero una buena guía de instalación.

http://miao5.blogspot.com/2010/01/setup-puppetmaster-foreman.html

Saludos!


“5 bad checksums” dhclient en Ubuntu

Escrito el Tuesday, 17 de January de 2012 por

Últimamente me he estado peleando con ciertas plataformas de virtualización… bueno básicamente 2, XenServer y KVM.

Uno por motivos profesionales, haciendo el deploy de un cloud usando Cloudstack + XenServer en UPC y el otro en casa, haciendo pruebas.

El caso es que con ambos me he encontrado un problema con las máquinas virtuales Ubuntu confiugradas para adquirir una IP via DHCP. Después de unos cuantos intentos nos aparece un mensaje. Algo como…

“5 bad checksums in last 5 udp responses” (edito cuando tenga el mensaje literal).

En su día encontré esto identificado como un “known issue” en XenServer (aqui). El caso es que la versión del ISC DHCP client que usan en ubuntu carece de un parche que soluciona este problema (y que si que se incorpora en distros basadas en RHEL (RHEL, CentOS, Fedora…)). Hay dos opciones. Una es usar el paquete del cliente DHCP de una de estas distros en Ubuntu (ya os aviso que el rpm tal cual no anda, por dependencias y rutas de archivos incorrectas), o, en el servidor DHCP ejecutar:

ethtool -K etho tx off

De este modo, se deshabilita el checksumming de UDP en la interfaz eth0 (asumiendo que servis el DHCP por esa interfaz, si no, usad la interfaz que os convenga). El cambio es immediato y veremos que las MV con Ubuntu ya cogen IP.

En el caso de KVM lo estoy probando con una VM que he creado, por lo que he añadido esta línea directamente en el archivo /etc/rc.local para que se ejecute en cada reinicio.

En el caso de cloudstack, ya que los routers virtuales que sirven DHCP se crean automáticamente a partir de una plantilla base + scripts de configuración, lo que hice fué seguir éste procedimiento para modificar la ISO que contiene los scripts de inicio de las MV de sistema, y añadir en el correspondiente /etc/rc.local el comando que os pongo arriba.

Saludos!


Proxmox VE beta 2.0

Escrito el Tuesday, 17 de January de 2012 por

Hola!

Buff cuanto tiempo sin escribir… Me da hasta pereza… Bueno a lo que venía.

Hace ya un tiempo os hablé de Proxmox VE, y por lo que veo, era la versión 1.6. El otro día me acordé de él haciendo más pruebas para el mini laboratorio que tengo en casa y me encontré con que hay una beta de la versión 2.0. Por cierto el laboratorio ya no es ESXi desde hacía algun tiempo (cambié a XenServer 5.6 y después a un intento fallido de OpenStack)

A parte de nuevas versiones de paquetes y que está basado en Debian 6, lo que más llama la atención de Proxmox VE 2 es el rediseño de la interfaz. No se a cuantos os pasaba como a mi, pero la verdad es que la interfaz de la serie 1.X es bastante horrenda. Funcional, muy funcional, pero fea hasta con avaricia.

Por el resto de cosas, no veo muchos cambios a nivel funcional respecto a la serie 1.x (no probé mucho aquella y llevo poco con ésta) aunque es muy posible que la implementación interna sea distinta.

Usar qemu-img para convertir las imagenes de XenCenter (VHD) a imagenes raw o qcow2 para KVM también fué un plisplas.

En definitiva. Si tenéis poco presupuesto para virtualización y no requerís de muchas florituras, Proxmox es muy buena opción (no uséis la 2.0 en producción ya que aún está un poco verde, pero con la 1.9 podréis hacer, a grandes rasgos, lo mismo).

Ah, si usáis Ubuntu 11.10 con Firefox y no os funciona la consola web en la beta 2.0, echadle un ojo a ésta página.


Acceso a la pila de Memoria de Ejecución ABAP o Hachazo

Escrito el Sunday, 12 de December de 2010 por

El sistema SAP está basado en un código de programación estático que puede ser personalizado y adaptado en puntos especificos del proceso de ejecución. Esto es que SAP nos permite escribir código ABAP en ciertos puntos de ejecución del proceso estándar para adaptarlo a las necesidades del cliente.

En muchas ocasiones, cuando estamos programando una Exit, dentro de la exit no tenemos acceso a todos los datos necesarios para llevar a cabo la tarea o decisión que tiene como objetivo la exit en cuestión.

Para solucionar este problema de datos, mediante debugging de la exit, podemos acceder a la pila de memoria ABAP de ejecución del programa estándar que estamos adaptando, y en este punto rastrear los datos que necesitamos a lo largo de las diferentes llamadas de programa que sean realizado durante el proceso estándar.

Si encontramos la información que buscamos, ya sea una tabla interna, una variable, etc., podemos escribir un código en nuestra exit que nos permita acceder a la pila de memoria, con el resultado de recuperar los datos que queremos.

A continuación se detalla un código de ejemplo que incrustariamos dentro de nuestra exit para recuperar datos de la pila de memoria, procesarlos y modificarlos si es necesario.

* El tipo de tabla tiene que ser el que tiene la tabla que
* queremos recuperar
DATA: itab LIKE bkpf OCCURS 0 WITH HEADER LINE.

* Variable de Carácteres que representa la ruta de la tabla o dato
* a recuperar en la pila de memoria
DATA: l_tabla(20) VALUE ‘(SAPMF05A)XBKPF[]‘.

* Puntero de memoria para albergar la tabla capturada
FIELD-SYMBOLS: <fs>.

* Asigno la ruta de la tabla al puntero de memoria
ASSIGN (l_tabla) TO <fs>.

* Verifico la asignación
IF <fs> IS ASSIGNED.

* Asigno el puntero de memoria a una tabla accesible
itab[] = <fs>.

* Recupero el primer registro de la tabla
READ TABLE itab INDEX 1.

* Fijo el campo Referencia del Documento contable
itab-xblnr = ‘HOLA’.
MODIFY itab INDEX 1.

* Modifico la tabla del Estándar que hemos recuperado antes
<fs> = itab[].

ENDIF.


Nuevo Laboratorio de Pruebas Virtual con ESXI

Escrito el Sunday, 12 de December de 2010 por

Tras bastante tiempo chapuzeando pruebas en diferentes chatarras reaprovechadas, segundos pc’s guarrufos, que siempre se quedaban cortos, etc… decidimos profesionalizarnos un poco.

Hemos dado el paso y nos hemos comprado una máquina especialmente para realizar pruebas, pero queríamos la flexibilidad para montar sistemas a diestro y siniestro, lo que no dejaba una única solución: Virtualización.

Requerimientos del proyecto

Una máquina potente que no se quede corta a la primera de cambio, pero con un precio ajustado. Obviamente optamos por un harware AMD para tener un rendimiento elevado un precio más bajo.

Flexibilidad para montar y gestionar diferentes sistemas para diferentes prósitos. En este caso la Virtualización del servidor era la opción más adecuada. En este ámbito VMWare  es una tecnología de virtualización bastante extendida y con experiencia, y además tiene versiones OpenSource gratuitas de sus servidores y clientes. De este punto surge la virtualización de la máquina con ESXI.

Gestion Centralizada de Acceso y Autorización a las comunicaciones y sistemas. Los sistemas residentes en la máquina virtualizada y los usuarios que acceden a ellas deben poderse comunicar de forma segura, y deben tener una forma fácil de configurarse, tanto las comunicaciones como el control de acceso y autorización.

Para dar cabida a este requisito, se crean varias redes virtuales dentro de la configuración del sistema de virtualización ESXI. Con ello se generan varias redes que separan, limitan y protegen los servidores virtualizados de la red personal y el acceso a Internet.

La entidad encargada de gestionar las comunicaciones y las autorizaciones se diseña en un máquina virtual dentro del propio sistema de virtualización. En el mercado existen paquetes existen sistemas OpenSource que permiten gestionar de forma lógica infraestrcturas de redes, que incluyen multitud de funcionalidades.

La primera máquina instalada en el sistema virtualizado fue Ebox, una distribución libre de Linux. Las características proporcionadas y deseadas, además de otras, son las siguientes:

  1. Servidor DHCP para la asignación del direccionamiento IP.
  2. Router Gateway para gestionar las rutas y comunicaciones de los diferentes entes de la infraestrctura de red.
  3. Servidor VPN y herramientas de generación de certificados para los clientes.
  4. Servidor Web con aplicación Web para gestión centralizada de la funciones del servidor.
  5. Controlador de Dominio (PDC).

El resultado del proyecto ha sido un sistema capaz de albergar diversos sistemas oparativos de diferente índole de forma dinámica, y además accesibles mediante comunicaciones seguras y gestionadas desde el exterior, es decir, Internet.

El siguiente esquema muestra la infraestrctura de red implementada (click para tamaño completo):


Activar Debug en un Popup ABAP

Escrito el Sunday, 12 de December de 2010 por

En ciertas ocasiones nos encontramos que queremos empezar a debugar un report a partir de una ventana Popup, pero dichas ventanas no tienen el interprete de comandos SAP para ejecutar /h, y activar el mdo debugging.

En estos casos tenemos la siguiente opción para activar el modo debigging de ABAP:


[Function]
Command=/h
Type=SystemCommand


Instalar certificado en IIS 7

Escrito el Saturday, 4 de December de 2010 por

El otro día tuve que instalar un certificado para SSL en un IIS 7 (en Windows Server 2008). El caso es que en cuanto me puse, me encontré con un problema, el certificado se instala correctamente, y justo después desaparece.

Por lo que parece, en IIS 7, el certificado que instales tiene que llevar la clave pública y la clave privada obligatoriamente. En IIS 6, sobre Windows Server 2003 valía con instalar una clave pública, pero en IIS 7 no.

Al final buscando un poco en Google, encontré esto. Es para SQL Server 2008, pero el mismo método sirve para IIS 7.

Básicamente, tenemos que tener la clave pública y la privada en ficheros separados (al fin y al cabo, nos hacen falta para solicitar el certificado). Opcionalmente podemos tener el certificado de la entidad intermedia, pero no es obligatorio. Ah y necesitamos tener instalado openssl. Yo lo hice desde una estación de trabajo linux y lo instalé con apt-get, para instalarlo en Windows… supongo que habrá algún instalable.

Para generar el certificado válido para IIS 7 tenemos que ejecutar el comando:

openssl pkcs12 -export -out certificate.pfx -inkey privatekey.txt -in certificate.txt -certfile intermediate.txt

Dónde privatekey.txt es la clave privada, certificate.txt es el certificado público y intermediate.txt, si lo tenemos, es el certificado de la entidad intermedia. Si no lo tenemos basta con quitar la parte “-certfile intermediate.txt”.


Configurar Windows Server 2008 como cliente NTP

Escrito el Tuesday, 23 de November de 2010 por

Con la manía que tienen de complicar las cosas… Hay que abrir un cmd y poner:

w32tm /config /update /manualpeerlist:ntp.server.dom /syncfromflags:MANUAL /reliable:YES

w32tm /query /source

Saludos!


Next Page »