我们正在使用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 节点。
在这种情况下你会怎么做?也许在这种情况下还有其他更合适的工具?