jcdarwin.ec2

ansible-role-ec2

Un rol de Ansible, disponible a través de Ansible Galaxy, que crea una imagen de EC2 Ubuntu.

Probablemente querrás modificar o sobreescribir:

  • defaults/main.yml

Instalación

Necesitamos boto para crear instancias de EC2.

# Instalar boto usando pip
pip install boto

# Almacenar nuestras credenciales de AWS para uso de boto
echo -e "[Credentials]\naws_access_key_id = REDACTED\naws_secret_access_key = REDACTED" > ~/.boto

Asumiendo un requirements.yml de la siguiente manera:

# Instalar un rol desde GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2

Podemos instalar el rol localmente, usando un archivo requirements.yml:

# Instalar un rol desde GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2
path: roles/

Instala el rol:

ansible-galaxy install -r requirements.yml -p ./roles

Requisitos

Ninguno.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con los valores predeterminados que se encuentran en defaults/main.yml:

site:
  name: demo
  environment: development

ansible_role_ec2:
  instance_type: m3.large
  security_group: "{{ site.environment }}-{{ site.name }}"
  # tomado de https://cloud-images.ubuntu.com/locator/ec2/
  image: ami-bf86aedc # ubuntu 16.04 (ap-southeast-2)
  image_user: ubuntu
  region: ap-southeast-2
  #image: ami-ba4ea4da # amazon linux (us-west-2)
  #image_user: ec2-user
  #region: us-west-2
  keypair: aws
  private_key: ~/.ssh/aws.pem
  count: 1

Dependencias

Ninguna.

Ejemplo de Playbook

Nuestro archivo hosts se completa durante la ejecución del rol de ansible, y se verá algo así:

[local]
127.0.0.1 ansible_python_interpreter=/usr/local/bin/python

[demo]
52.63.226.70 ansible_user=ubuntu ansible_private_key_file=~/.ssh/aws.pem

Incluimos un playbook en main.yml.

Ejecutando el playbook:

# Tenga en cuenta que asumimos que nuestro archivo de hosts ha sido generado por nuestro repositorio vagrant
ansible all -m ping -i ansible/hosts -l all

ansible-playbook -l all create.yml -i ansible/hosts --tags create

Deberíamos poder acceder a través de ssh usando nuestra clave privada; tenga en cuenta que la dirección IP se agrega al archivo ./ansible/hosts por nuestro rol de ansible:

# La IP real se puede encontrar en ansible/hosts
ssh -i ~/.ssh/aws.pem ubuntu@52.63.226.70

Una vez que hayamos terminado con nuestra instancia de EC2, podemos destruirla:

ansible-playbook -l all destroy.yml -i ansible/hosts --tags destroy

Licencia

MIT

Información del Autor

http://github.com/jcdarwin

Acerca del proyecto

An Ansible role that creates an EC2 instance running Ubuntu.

Instalar
ansible-galaxy install jcdarwin.ec2
Licencia
Unknown
Descargas
71
Propietario