Amazon web services 在ansible中使用aws_secret

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

我正在尝试使用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','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
    ,并且还有
    环境: