Amazon, entre muchos otros, ofrece un servicio de cloud computing, en el que podemos crear máquinas a partir de imágenes de sistemas operativos preconfigurados compartidos en la red de Amazon. Estas imágenes se conocen como AMIs (Amazon Machine Image).
Sin embargo, se puede dar la ocasión en la que necesitemos instalar una máquina con un determinado sistema, que no se encuentre entre las diversas AMIs disponibles. En esas ocasiones, deberemos seguir las instrucciones de Amazon para la creación de una AMI personalizada.
Instalación de las herramientas
yum install ruby
Descarga del rpm con las herramientas, desde http://aws.amazon.com/developertools/368?_encoding=UTF8&jiveRedirect=1 Instalación de las herramientas (requiere contar con el paquete rsync instalado)
rpm -i ec2-ami-tools-x.x-xxxx.i386.rpm
Creación de la AMI
Creamos un archivo vacío lleno de «ceros» de 2GB (1GB no ha sido suficiente, en las pruebas realizadas) de nombre fedora13x64.fs, que se dejará en el directorio de trabajo actual. (Fuente)
dd if=/dev/zero of=fedora13x64.fs bs=1M count=2048
Una vez creado el fichero, lo formatearemos con el siguiente comando (esto únicamente afectará al fichero fedora13x64.fs, y no al sistema de ficheros de la propia máquina.):
mke2fs -t ext4 -F -j fedora13x64.fs
A continuación, se deberá crear en el sistema de ficheros de la propia máquina, un punto de montaje en el que colgar el sistema que se está creando.
mdir /mnt/fedora13x64 mount -o loop fedora13x64.fs /mnt/fedora13x64
Una vez montado, se deberá empezar a crear el sistema de archivos, a partir del punto de montaje.
cd /mnt/fedora13x64 mkdir dev /sbin/MAKEDEV -d /mnt/fedora13x64/dev -x console /sbin/MAKEDEV -d /mnt/fedora13x64/dev -x null /sbin/MAKEDEV -d /mnt/fedora13x64/dev -x zero
NOTA: Los tres comandos anteriores devolverán el siguiente mensaje:
MAKEDEV: mkdir: File exists MAKEDEV: mkdir: File exists MAKEDEV: mkdir: File exists
A continuación se creará el fichero /mnt/fedora13x64/fstab con la siguiente información
/dev/sda1 / ext4 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0
El sistema operativo se instalará desde los repositorios mediante yum. Para ello, se creará un fichero en /mnt/fedora13x64 llamado yum.conf con el siguiente contenido:
[main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log exclude=*-debuginfo gpgcheck=0 obsoletes=1 reposdir=/dev/null [base] name=Fedora 13- x86_64 – Base mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-13&arch=x86_64 enabled=1 [updates-released] name=Fedora13 – x86_64Released Updates mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f13&arch=x86_64 enabled=1
Se ha querido instalar Fedora 13 64 bits, por lo que los mirrorlist de las secciones «base» y «update» se han configurado convenientemente para usar los repositorios correctos. Posteriormente se ha configurado /proc
mkdir /mnt/fedora13x64/proc mount -t proc none /mnt/fedora13x64/proc
Una vez configurado el entorno, se ha procedido a instalar el sistema en el punto de montaje correspondiente al fichero con la imagen amazon:
yum -c /mnt/fedora13x64/yum.conf –installroot=/mnt/fedora13x64/ -y groupinstall Base
Configuración de la AMI
Tras la instalación del sistema base, se tendrá dentro de /mnt/fedora13x64 un sistema de ficheros con sus directorios correspondientes. Sin embargo, será necesario modificar la red y la configuración del disco para que la imagen pueda trabajar en Amazon.
En primer lugar, se deberá crear el archivo /mnt/fedora13x64/etc/sysconfig/network-scripts/ifcfg-eth0 con los siguientes datos:
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet USERCTL=yes PEERDNS=yes IPV6INIT=no
A continuación, se creará el fichero /mnt/fedora13x64/etc/sysconfig/network con la siguiente línea:
NETWORKING=yes
En cuanto al disco, será necesario mover el fichero fstab de /mnt/fedora13x64 a /mnt/fedora13x64/etc, y añadirle las siguientes líneas para incluir la partición de swap.
/dev/sda2 /mnt ext4 defaults 0 0 /dev/sda3 swap swap defaults 0 0
Para añadir los servicios al inicio, como el servicio network, se deberá ejecutar lo siguiente:
chroot /mnt/ec2-fs /bin/sh
chkconfig –level 345 network on
exit
Una vez realizados los cambios, se podrá desmontar la imagen.
umount /mnt/fedora13x64/proc
umount -d /mnt/fedora13x64
Importación de la AMI
Tras la configuración de la AMI, será necesario usar las tools de amazon para crear los ficheros con la imagen, e importarlos.
ec2-bundle-image -k pk-XXXXX.pem -c cert-XXXX.pem -u YYYYY -i fedora13x64.img -d bundled -p fedora13x64 -r x86_64
- En primer lugar se deberá renombrar el fichero fedora13x64.fs a fedora13x64.img, para posteriormente pasarlo en el parámetro -i
- Los detalles de la claveprivada y el certificado, se pueden obtener desde la consola web AWS, una vez logueado, pinchando sobre el nombre del usuario logueado > «Security Credentials», desde la sección «Credenciales de acceso» > «Certificados x.509 «.
- El userid, se puede obtener desde la misma web, en la sección»identificador de cuentas», donde se encontrará en «identificador de cuentas AWS» (que se introducirá sin los separadores).
- -d indica el directorio local donde se guardarán los archivos listos para subir, resultantes de la ejecución del comando
- -p se usará para darle nombre a los archivos resultantes
- -r indicará el tipo de plataforma
Una vez creados los ficheros, se podrán subir a Amazon S3 con el siguiente comando
ec2-upload-bundle -b bucket/directorio -m fedora13x64.manifest.xml -a XXXXX -s YYYYYY
- En este caso, bucket/directorio será el nombre del bucket en Amazon S3, el cual tendrá un directorio llamado directorio. Si no existe, se podrá crear desde la interfaz AWS de administración. NOTA: El bucket deberá estar en la misma región Amazon desde la que se desea poder usar la AMI.
- -m corresponderá con la ruta del manifiesto xml creado con la instrucción anterior.
- -a y -s, en este caso, serán los detalles de certificados, que se podrán encontrar en «Security Credentials», desde la sección «Credenciales de acceso» > «Pares de claves»
Finalmente, una vez subidos los ficheros, se podrá crear la AMI desde la interfaz web AWS > Amazon Elastic Compute Cloud (EC2) > Images > AMIs>Register New Ami.
Fuente: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?creating-loopback-s3-linux.html
Foto por karindalziel