Diferencia entre revisiones de «Amazon EC2 Api tools»

De Ardemans Wiki
Saltar a: navegación, buscar
(Lista de comandos)
(Cloud-init)
 
(2 revisiones intermedias por el mismo usuario no mostrado)
Línea 45: Línea 45:
 
* -k com.prisadigital.rpt la pareja de claves con la que podremos logarnos en la consola de esta máquina.
 
* -k com.prisadigital.rpt la pareja de claves con la que podremos logarnos en la consola de esta máquina.
 
* -t t1.micro es el tipo de instancia (la más barata para estas pruebas :-))
 
* -t t1.micro es el tipo de instancia (la más barata para estas pruebas :-))
 +
 +
== Crear una instancia y personalizarla ==
 +
Gracias a que las AIMs de Amazon vienen ya preparadas con un paquete que se llama cloud-init, podemos personalizar una instancia nada más crearla. La idea es que cuando lanzamos el comando de crear una instancia le podemos pasar un fichero de comandos que ejecutarán ciertas acciones para, muy comunmente, personalizar esa instancia en concreto.
 +
 +
Un ejemplo. Creamos el siguiente fichero, /tmp/aws-script.sh, con una secuencia de comandos (importante que empieze con el #!)
 +
<pre>
 +
#!/bin/bash
 +
apt-get install apache2
 +
</pre>
 +
 +
y a la hora de crear una instancia le pasamos este fichero como parámetro -f
 +
 +
<pre>
 +
ec2-run-instances ami-f5a99281 -n 1 -g sg-3239c345 -k com.prisadigital.rpt -t t1.micro -f /tnp/aws-script.sh
 +
</pre>
 +
 +
Cuando esa instancia esté disponible tendrá ya instalado el paquete apache2, porque se ha ejecutado como usuario root el script que le hemos especificado.
 +
 +
== Cloud-init ==
 +
 +
* http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/view/head:/doc/examples/cloud-config.txt
 +
* http://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/files/head:/doc/examples/

Última revisión de 08:36 26 abr 2013

Introducción

Notas sobre apredizaje y trabajo con las herramientas en linea de comandos de Amazon

Para empezar tenemos una página de guía de inicio en Amazon. Parece ser que las herramientas son apliacciones java, así que funcionará indistintamente en cualquier S.O. donde podamos ejecutar Java.

Descarga de las herramientas

En esa guía nos aparece como instalar las herramientas desde aqui

Pasos de la instalación

  • Instalamos Java desde esta ubicación
  • Descomprimimos el zip de las tools de amazon en /opt/ec2_aci_tools-<version> y crear un enlace simbólico desde ese directorio a /opt/ec2_aci_tools
  • Añadimos las siguientes variables de entorno en el /etc/bashrc, con la modificación del PATH
export RUBYLIB=/etc/puppet/modules/cloud_provisioner/lib:$RUBYLIB
export JAVA_HOME=/opt/java
export EC2_HOME=/opt/ec2-api-tools
export PATH=$PATH:$JAVA_HOME/bin:$EC2_HOME/bin
  • Sacamos de la consola de administración de Amazon la Secret Key, desde el enlace de Security Connections debajo de la cuenta (parte superior derecha)
  • Ponemos la Secret Key en la variable de entorno de la máquina. Esta en vez de ponerla genérica para todo los usuarios la he puesto solo para el usuario root:
export AWS_ACCESS_KEY=XXXXXXXXXXXXXXXXXXXXXX
export AWS_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  • Ahora ya podemos ejecutar el comando ec2-describe-regions, cogemos la URL de nuestra región (la única europea, pero podemos buscarla en el management console de EC2) y la ponemos en la variable de entorno EC2_URL como https://<url>
export EC2_URL=https://ec2.eu-west-1.amazonaws.com

Lista de comandos

Podemos consultar esta lista de comandos aqui

El comando que más comunmente se va a utilizar es ec2-run-instances. Este comando es el que crea una nueva instancia desde una imagen definida.

Por ejemplo:

ec2-run-instances ami-f5a99281 -n 1 -g sg-3239c345 -k com.prisadigital.rpt -t t1.micro

Este desplegará una nueva instancia de la imagen ami-f5a99281, que es una ubuntu 12.04lts (de las que viene por defecto con AWS).

  • -n 1 indica que solo queremos una instancia nueva
  • -g sg-3239c34 especifica el grupo de seguridad en el que estará esta máquina
  • -k com.prisadigital.rpt la pareja de claves con la que podremos logarnos en la consola de esta máquina.
  • -t t1.micro es el tipo de instancia (la más barata para estas pruebas :-))

Crear una instancia y personalizarla

Gracias a que las AIMs de Amazon vienen ya preparadas con un paquete que se llama cloud-init, podemos personalizar una instancia nada más crearla. La idea es que cuando lanzamos el comando de crear una instancia le podemos pasar un fichero de comandos que ejecutarán ciertas acciones para, muy comunmente, personalizar esa instancia en concreto.

Un ejemplo. Creamos el siguiente fichero, /tmp/aws-script.sh, con una secuencia de comandos (importante que empieze con el #!)

#!/bin/bash
apt-get install apache2

y a la hora de crear una instancia le pasamos este fichero como parámetro -f

ec2-run-instances ami-f5a99281 -n 1 -g sg-3239c345 -k com.prisadigital.rpt -t t1.micro -f /tnp/aws-script.sh

Cuando esa instancia esté disponible tendrá ya instalado el paquete apache2, porque se ha ejecutado como usuario root el script que le hemos especificado.

Cloud-init