Развертывание на Elastic Beanstalk с помощью Ansible

Мы используем eb_deployer для развертывания в Elastic Beanstalk, и мы хотели бы подготовить каждый узел с помощью . ebextensions и Ansible.

Пакет, созданный для eb_deployer, выглядит примерно так (упрощенно), он собирается на управляющем узле с помощью Ansible:

- Procfile
- application.jar
- .ebextensions
    - ansible.config
    - provision.yml
    - roles
        - appdynamics
            - tasks
                - main.yml

ansible.config устанавливает ansible на узел Beanstalk и запускает одну книгу воспроизведения:

packages:
  python:
    ansible: []
container_commands:
  ansible:
    command: "ansible-playbook .ebextensions/provision.yml"

provision.yml (упрощенный) включает только одну роль:

- name: provision eb instance
  hosts: localhost
  connection: local
  gather_facts: yes
  roles:
      - role: appdynamics
        controller_host: "example.com"
        controller_port: 443

Теперь проблема в том, что роль appdynamics использует переменную appdynamics_accesskey, которая хранится в хранилище, но файл паролей хранилища хранится на управляющем узле. Мы не хотели бы копировать файл паролей хранилища с управляющей машины в .ebextensions в сегменте S3, а затем в узел Beanstalk.

Что бы вы сделали в таком сценарии? Может быть, есть другие инструменты, более подходящие в этом случае?


person Mykhailo Kovalskyi    schedule 28.06.2017    source источник


Ответы (1)


Похоже, что один из способов решить эту проблему - запустить временный экземпляр, настроить его с помощью Ansible работает только на управляющей машине, создайте образ с помощью модуля ec2_ami Ansible и используйте этот образ для настроить пользовательское изображение для группы автомасштабирования.

person Mykhailo Kovalskyi    schedule 28.06.2017