Creando un AMI de Ubuntu para EC2

En el servicio EC2 de Amazon podemos elegir una imagen de sistema operativo (AMI) preinstalado por Amazon o imágenes compartidas por los usuarios (public AMIs). Pero también tenemos la opción de crear una imagen nosotros mismos y subirla a su sistema. Si queremos podemos hacerla pública para ahorrarle el trabajo a otra persona que la quiera usar. Me he entretenido un rato haciendo una de prueba. La idea de la prueba era hacer una instalación LAMP completa. He elegido hacer un AMI de Ubuntu 7.10, aunque me ha dado algunos problemas, de momento sigue siendo más fácil usar Fedora o CentOS. Desde la página de EC2 se pueden descargar scripts para realizar esta tarea de forma automatizada, y se tarda solo unos minutos. Como era la primera vez prefería hacerlo manualmente. Antes de comenzar con esta instalación uno debería estar ya familiarizado con el uso de las AMIs públicas de Amazon, hay un tutorial de SobreRailes donde cuenta perfectamente como crear y acceder una instancia. Yo parto con que estos conocimientos ya los tenemos. Os cuento los pasos que he dado: 1. Instalar JRE de SUN y configurar correctamente la variable JAVA_HOME, además son necesarios los paquetes de Xen, curl, debootstrap, ruby, gems y alien. 2. Hay que descargar de Amazon e instalar las utilidades ec2-ami-tools y ec2-api-tools. La primera solo se puede descargar en RPM, por lo que necesitamos instalar con Alien si estamos usando Ubuntu/Debian. wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm alien -i ec2-ami-tools.noarch.rpm 3. Hay que estar dado de alta en los servicios S3 y EC2 y descargar el Access Key ID, Secret Access Key y el certificado x.509. Configurar las variables EC2_CERT y EC2_PRIVATE_KEY nos ahorrará tener que teclearlas muchas veces. export EC2_HOME=/home/jmsuarez/ec2/soft/ec2-api-tools-1.2-9739 export EC2_CERT=/home/jmsuarez/ec2/claves/ec2-cert.pem export EC2_PRIVATE_KEY=/home/jmsuarez/ec2/claves/ec2-cert.pem export PATH=$PATH:$EC2_HOME/bin 4. mkdir /mnt/image dd if=/dev/zero of=/mnt/image/ubuntu-7.10-srv bs=1M count=2048 Crea una imagen de 2GB donde vamos a instalar el sistema operativo (podemos crearla del tamaño que queramos) 5. mke2fs -F -j /mnt/image/ubuntu-7.10-srv Da formato a la imagen. 6. mkdir /mnt/ec2-fs mount -o loop /mnt/image/ubuntu-7.10-srv /mnt/ec2-fs Monta la imagen en un directorio para poder acceder a ella. 7. debootstrap gutsy /mnt/ec2-fs/ Debootstrap instala los paquetes básicos de la distribución Gutsy de Ubuntu. 8. cp /etc/apt/sources.list /mnt/ec2-fs/etc/apt/sources.list Hay que copiar nuestro archivo de fuentes. 9. chroot /mnt/ec2-fs Cambia la raíz del sistema a /mnt/ec2-fs 10. passwd; useradd jmsuarez; passwd jmsuarez Configura un password para el usuario root y crea un nuevo usuario 11. apt-get update && apt-get upgrade apt-get install openssh-server mysql-server-5.0 php5 apache2-mpm-worker rsync man Instala el software básico de nuestro servidor LAMP vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp Configura la red para iniciarse en DHCP vi /etc/fstab /dev/sda2 /mnt/ec2-fs ext3 defaults 1 2 /dev/sda3 swap swap defaults 0 0 Configura nuestros volúmenes. 12. umount /mnt/ec2-fs Cerramos el terminal que estamos usando y desde otro desmontamos el volumen. 13. ec2-bundle-image -i /mnt/image/ubuntu-7.10-srv -u {account number} Prepara nuestra imagen para ser subida a EC2, vuelca todos los archivos a /tmp. El account number me llevó un buen rato encontrarlo, está en la página Account Activity de S3. 14. ec2-upload-bundle –url http://s3.amazonaws.com -b bucket -m /tmp/ubuntu-7.10-srv.manifest.xml Sube la imagen a S3, aquí nos podemos ir a cenar y ver una peli porque a mi me tardó 3 horas. Tenemos que crear antes un bucket en S3. 15. ec2-register bucket/ubuntu-7.10-srv.manifest.xml Registra la imagen. Devuelve el número asignado de nuestra AMI. 16. ec2-describe-images ami-xxxxxxxx Esperamos un par de minutos a que levante el sistema. Con esta orden podemos ver su estado. 17. ec2-add-keypair jmsuarez-test2 Creamos una llaves RSA para poder administrar el servidor. 18. ec2-run-instances ami-xxxxxxxx -k jmsuarez-test2 Activamos la instancia 19. ec2-describe-instances i-xxxxxxxx Comprobamos su estado y es en este punto donde nos devuelve la dirección IP asignada. Enhorabuena, ya hemos acabado. A partir de aquí ya podemos acceder por SSH y continuar configurando nuestro servidor. Con EC2 podemos tener nuestro sistema a medida y configurarlo y activarlo fácilmente desde cualquier sitio, en cuestión de minutos. Algo que nunca hemos podido hacer con los proveedores de hosting que teníamos. image

You have already tagged this post. Your tags:

Noticia original: jmsuarez

Valid XHTML 1.0 Strict