jcdarwin.ec2

ansible-role-ec2

Rola Ansible, dostępna przez Ansible Galaxy, która tworzy obraz Ubuntu na EC2.

Prawdopodobnie będziesz chciał zmodyfikować lub nadpisać:

  • defaults/main.yml

Instalacja

Potrzebujemy boto, aby móc tworzyć instancje EC2.

# Zainstaluj boto za pomocą pip
pip install boto

# Zapisz nasze dane logowania do AWS, aby mogły być używane przez boto
echo -e "[Credentials]\naws_access_key_id = REDACTED\naws_secret_access_key = REDACTED" > ~/.boto

Zakładając, że mamy plik requirements.yml następujący jak poniżej:

# Zainstaluj rolę z GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2

Możemy zainstalować rolę lokalnie, używając pliku requirements.yml:

# Zainstaluj rolę z GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2
path: roles/

Zainstaluj rolę:

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

Wymagania

Brak.

Zmienne roli

Dostępne zmienne są wymienione poniżej, wraz z domyślnymi wartościami znajdującymi się w defaults/main.yml:

site:
  name: demo
  environment: development

ansible_role_ec2:
  instance_type: m3.large
  security_group: "{{ site.environment }}-{{ site.name }}"
  # źródło: 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

Zależności

Brak.

Przykładowa książka

Nasz plik hosts jest wypełniany podczas wykonania roli ansible i będzie wyglądać mniej więcej tak:

[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

Dołączamy plik książki przy main.yml.

Uruchamianie książki:

# Uwaga: zakładamy, że nasz plik hosts został wygenerowany przez nasze repozytorium vagrant
ansible all -m ping -i ansible/hosts -l all

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

Powinniśmy być w stanie zalogować się przez ssh, używając naszej pary kluczy -- zwróć uwagę, że adres IP jest dodawany do pliku ./ansible/hosts przez naszą rolę ansible:

# Rzeczywisty adres IP można znaleźć w ansible/hosts
ssh -i ~/.ssh/aws.pem ubuntu@52.63.226.70

Gdy skończymy z naszą instancją EC2, możemy ją zniszczyć:

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

Licencja

MIT

Informacje o autorze

http://github.com/jcdarwin

O projekcie

An Ansible role that creates an EC2 instance running Ubuntu.

Zainstaluj
ansible-galaxy install jcdarwin.ec2
Licencja
Unknown
Pobrania
71
Właściciel