Una forma muy comoda de crear nuevos AMIs en Amazon Ec2 es usar uno ya existente que te guste, modificarlo y configurarlo segun necesites. De esta forma puede ser probado bien y una vez te sientas cómodo con las modificaciones entonces convertir esa configuracion en un AMI nuevo que poder utilizar para tus proyectos.
Para poder hacer esto hay que seguir los siguientes pasos
PreRequisitos, esto lo he probado en un Ubuntu 9.04
- iniciar una instancia usando el ami que desees en mi caso (ami-6686ae12 es un ami desplegado en la version Amazon Ec2 Europa)
- instalar Java y definido JAVA_HOME
Instalar las utilidades de Amazon
#!/bin/bash
apt-get update
apt-get install ruby rubygems libopenssl-ruby debootstrap dpkg rar unrar zip unzip
RDIR="`pwd`"
PREDIR=$RDIR/preproduccion
rm -d -f -r soft
mkdir soft
cd soft
wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
wget http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip
unzip ec2-ami-tools.zip
cd ec2-ami*
export EC2_AMITOOL_HOME="`pwd`"
cd ..
unzip ec2-api-tools.zip
cd ec2-api*
export EC2_HOME="`pwd`"
cd ..
cd ..
export PATH=$PATH:$EC2_HOME/bin:$EC2_AMITOOL_HOME/bin
export EC2_CERT={localizacion certificado Ec2}
export EC2_PRIVATE_KEY={localizacion private_key}
export EC2_USER_ID={user_id ec2}
export AWS_ACCESS_KEY={aws access key}
export AWS_SECRET_KEY={aws_secret_key}
export RUBYLIB=$RUBYLIB:/usr/lib/site_ruby/
Modificar he instalar en la imagen los paqueres que se consideren necesario…
por ejemplo apache2, openvpn, mysql.. lo que se quiera..
Crear el ami ejecutando las siguentes lineas
ec2-bundle-vol -r i386 -d /mnt -p {prefijo ficheros ami} -u $EC2_USER_ID -k $EC2_PRIVATE_KEY -c $EC2_CERT -s 10240 -e /mnt,/tmp,/root/.ssh,/mnt/ebs0
ec2-upload-bundle -b {nombre bucket S3} -m /mnt/{prefijo ficheros ami}.manifest.xml -a $AWS_ACCESS_KEY -s $AWS_SECRET_KEY --location EU
ec2-register --region eu-west-1 {nombre bucket S3}/{prefijo ficheros ami}.manifest.xml