Amazon web services 在ansible中使用aws_secret
我正在尝试使用ansible 2.8和lookup从aws secret manager检索密码 以下事情对我不起作用:Amazon web services 在ansible中使用aws_secret,amazon-web-services,ansible,credentials,aws-secrets-manager,Amazon Web Services,Ansible,Credentials,Aws Secrets Manager,我正在尝试使用ansible 2.8和lookup从aws secret manager检索密码 以下事情对我不起作用: 在.bashrc中,我导出了区域 任务中的可变环境变量 在pre_任务中设置ansible变量 -主机:StagingApps 远程用户:登台 收集事实:错误 任务: -调试: 变量:“{lookup('aws_secret','staging_mongodb_pass',region='us-east-1')}” msg:{query('aws_secret','stagi
-主机:StagingApps
远程用户:登台
收集事实:错误
任务:
-调试:
变量:“{lookup('aws_secret','staging_mongodb_pass',region='us-east-1')}”
msg:{query('aws_secret','staging_mongodb_pass',region='us-east-1')}
环境:
地区:'us-east-1'
错误消息:
失败!=>{“msg”:“运行查找插件“aws_secret”时发生未经处理的异常。错误为原始消息:“未在配置中定义请求的条目(插件类型:查找插件:aws_secret设置:区域)。”
下面的剧本对我有用
- name: "register mongodb from secretsmanager"
shell: "aws secretsmanager get-secret-value --secret-id staging_mongodb"
register: mongodb_pass
delegate_to: 127.0.0.1
- set_fact:
mongodb_pass_dict: "{{ mongodb_pass.stdout | from_json | json_query('SecretString') }}"
- set_fact:
mongodb_pass_list: "{{ ['staging_mongodb'] | map('extract', mongodb_pass_dict) | list }}"
- set_fact:
mongodb_pass: "{{ mongodb_pass_list[0] }}"
- template:
src: application.properties.j2
dest: application.properties
mode: 0644
backup: yes
看起来Ansible在一个坏的状态下发布了这个查找插件。他们有一个问题,需要一个公关来解决:
非常令人失望,因为我已经等待这个插件好几个月了。我非常确定环境名称不仅仅是一个
区域
,我已经尝试了使用多个aws配置文件(aws\u DEFAULT\u region=“us-east-1”,aws\u region=“us-east-1”,region=“us-east-1”)的所有组合。这些都不起作用不,你把kwargs和环境变量混淆了;我特别提到了环境变量,如果没有其他原因的话,就是您在上面的示例中提到了.bashrc
,并且还有环境: