0

Nous utilisons eb_deployer pour déployer sur Elastic Beanstalk et nous aimerions provisionner chaque noeud en utilisant .ebextensions et Ansible.Déploiement vers Elastic Beanstalk avec Ansible

Un package créé pour eb_deployer ressemble à quelque chose comme ça (simplifié), il est monté sur le noeud de commande avec Ansible:

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

ansible.config installe ansible sur le nœud Beanstalk et exécute un seul PlayBook:

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

provision.yml (simplifiée) ne comprend que un seul rôle:

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

Maintenant, le problème est que le rôle appdynamics utilise une variable appdynamics_accesskey stockée dans le coffre-fort, mais le fichier de mot de passe du coffre-fort est stocké sur le nœud de contrôle. Nous souhaitons éviter de copier le fichier de mot de passe du coffre-fort de la machine de contrôle dans le compartiment S3, puis dans le noeud Beanstalk, à .ebextensions.

Que feriez-vous dans un tel scénario? Peut-être qu'il y a d'autres outils qui sont plus appropriés dans ce cas?

Répondre

0

Il semble que one way pour résoudre ce problème est de lancer instance temporaire, le configurer avec Ansible en cours d'exécution sur la machine de commande uniquement, créez une image avec le module ec2_ami Ansible, et d'utiliser cette image pour configure custom image pour le groupe autoscaling.