jcdarwin.ec2

ansible-role-ec2

Eine Ansible-Rolle, verfügbar über Ansible Galaxy, die ein EC2 Ubuntu-Image erstellt.

Sie möchten wahrscheinlich die folgenden Dateien anpassen oder überschreiben:

  • defaults/main.yml

Installation

Wir benötigen boto, um EC2-Instanzen zu erstellen.

# Installiere boto mit pip
pip install boto

# Speichere unsere AWS-Anmeldeinformationen für boto
echo -e "[Credentials]\naws_access_key_id = REDACTED\naws_secret_access_key = REDACTED" > ~/.boto

Angenommen, wir haben eine requirements.yml wie folgt:

# Installiere eine Rolle von GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2

Wir können die Rolle lokal mit einer requirements.yml-Datei installieren:

# Installiere eine Rolle von GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2
path: roles/

Installiere die Rolle:

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

Anforderungen

Keine.

Variablen der Rolle

Verfügbare Variablen sind unten aufgelistet, zusammen mit den Standardwerten aus defaults/main.yml:

site:
  name: demo
  environment: development

ansible_role_ec2:
  instance_type: m3.large
  security_group: "{{ site.environment }}-{{ site.name }}"
  # bezogen von https://cloud-images.ubuntu.com/locator/ec2/
  image: ami-bf86aedc # ubunutu 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

Abhängigkeiten

Keine.

Beispiel-Playbook

Unsere hosts-Datei wird während der Ausführung der Ansible-Rolle gefüllt und sieht etwa so aus:

[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

Wir fügen ein Playbook in main.yml ein.

Das Playbook ausführen:

# Beachte, dass wir davon ausgehen, dass unsere hosts-Datei von unserem Vagrant-Repo generiert wurde
ansible all -m ping -i ansible/hosts -l all

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

Wir sollten uns dann mit unserem Schlüssel-Paar einloggen können – beachte, dass die IP-Adresse von unserer ./ansible/hosts-Datei unserer Ansible-Rolle hinzugefügt wird:

# Die tatsächliche IP ist in ansible/hosts zu finden
ssh -i ~/.ssh/aws.pem ubuntu@52.63.226.70

Nachdem wir mit unserer EC2-Instanz fertig sind, können wir sie zerstören:

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

Lizenz

MIT

Autoreninformationen

http://github.com/jcdarwin

Über das Projekt

An Ansible role that creates an EC2 instance running Ubuntu.

Installieren
ansible-galaxy install jcdarwin.ec2
GitHub Repository
Lizenz
Unknown
Downloads
71
Besitzer