0

我们正在使用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存储在保险库中的变量,但保险库密码文件存储在控制节点上。我们希望避免将保管库密码文件从控制机器复制到.ebextensionsS3 存储桶,然后再复制到 Beanstalk 节点。

在这种情况下你会怎么做?也许在这种情况下还有其他更合适的工具?

4

1 回答 1

0

似乎解决此问题的一种方法是启动临时实例,使用仅在控制机器上运行的 Ansible 对其进行配置,使用 Ansible 模块创建映像ec2_ami,并使用该映像为自动缩放组配置自定义映像

于 2017-06-28T14:15:41.593 回答