jcdarwin.ec2

ansible-role-ec2

Un rôle Ansible, disponible via Ansible Galaxy, qui crée une image EC2 Ubuntu.

Vous voudrez probablement modifier / remplacer :

  • defaults/main.yml

Installation

Nous avons besoin de boto pour pouvoir créer des instances EC2.

# Installer boto avec pip
pip install boto

# Stocker nos identifiants AWS pour l'utilisation par boto
echo -e "[Credentials]\naws_access_key_id = REDACTED\naws_secret_access_key = REDACTED" > ~/.boto

En supposant un requirements.yml comme suit :

# Installer un rôle depuis GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2

Nous pouvons installer le rôle localement en utilisant un fichier requirements.yml :

# Installer un rôle depuis GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2
path: roles/

Installer le rôle :

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

Exigences

Aucune.

Variables du rôle

Les variables disponibles sont listées ci-dessous, avec des valeurs par défaut trouvées dans defaults/main.yml :

site:
  name: demo
  environment: development

ansible_role_ec2:
  instance_type: m3.large
  security_group: "{{ site.environment }}-{{ site.name }}"
  # comme indiqué depuis 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

Dépendances

Aucune.

Exemple de Playbook

Notre fichier hosts est rempli pendant l'exécution du rôle ansible, et ressemblera à quelque chose comme :

[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

Nous incluons un playbook dans main.yml.

Exécuter le playbook :

# Notez que nous supposons que notre fichier hosts a été généré par notre dépôt vagrant
ansible all -m ping -i ansible/hosts -l all

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

Nous devrions alors pouvoir nous connecter en SSH en utilisant notre paire de clés -- notez que l'adresse IP est ajoutée au fichier ./ansible/hosts par notre rôle ansible :

# L'adresse IP réelle peut être trouvée dans ansible/hosts
ssh -i ~/.ssh/aws.pem ubuntu@52.63.226.70

Une fois que nous avons fini avec notre instance EC2, nous pouvons la détruire :

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

Licence

MIT

Informations sur l'auteur

http://github.com/jcdarwin

À propos du projet

An Ansible role that creates an EC2 instance running Ubuntu.

Installer
ansible-galaxy install jcdarwin.ec2
Licence
Unknown
Téléchargements
71
Propriétaire