ec2

ansible-role-ec2

Ansible роль, доступная через Ansible Galaxy, которая создает образ Ubuntu для EC2.

Вам, вероятно, понадобится изменить / переопределить:

  • defaults/main.yml

Установка

Нам нужен пакет boto, чтобы мы могли создавать экземпляры EC2.

# Установите boto с помощью pip
pip install boto

# Сохраните наши учетные данные AWS для использования boto
echo -e "[Credentials]\naws_access_key_id = УДАЛЕНО\naws_secret_access_key = УДАЛЕНО" > ~/.boto

Предполагая наличие файла requirements.yml, как показано ниже:

# Убедитесь, что роль установлена из GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2

Мы можем установить роль локально, используя файл requirements.yml:

# Убедитесь, что роль установлена из GitHub
- name: ansible-role-ec2
src: https://github.com/jcdarwin/ansible-role-ec2
path: roles/

Установка роли:

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

Требования

Нет.

Переменные роли

Доступные переменные перечислены ниже с их значениями по умолчанию, как указано в defaults/main.yml:

site:
  name: demo
  environment: development

ansible_role_ec2:
  instance_type: m3.large
  security_group: "{{ site.environment }}-{{ site.name }}"
  # взято с 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

Зависимости

Нет.

Пример Playbook

Наш файл hosts заполняется во время выполнения роли ansible и будет выглядеть примерно так:

[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

Мы включаем playbook в main.yml.

Запуск playbook:

# Обратите внимание, что мы предполагаем, что наш файл hosts был сгенерирован нашим репозиторием vagrant
ansible all -m ping -i ansible/hosts -l all

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

Теперь мы можем подключиться по ssh, используя нашу пару ключей -- обратите внимание, что IP-адрес добавляется в файл ./ansible/hosts нашей ролью ansible:

# Фактический IP-адрес можно найти в ansible/hosts
ssh -i ~/.ssh/aws.pem [email protected]

Как только мы закончим с нашим экземпляром EC2, мы можем его уничтожить:

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

Лицензия

MIT

Информация об авторе

http://github.com/jcdarwin

О проекте

An Ansible role that creates an EC2 instance running Ubuntu.

Установить
ansible-galaxy install jcdarwin/ansible-role-ec2
Лицензия
Unknown
Загрузки
60
Владелец