1

我正在尝试使用 ansible 2.8 使用查找从 aws secret manager 检索密码。

以下事情对我不起作用:

  1. 在 .bashrc 中,我导出了区域
  2. 任务中的 Ansible 环境变量
  3. 在 pre_tasks 中设置 ansible 变量
- hosts: StagingApps
  remote_user: staging
  gather_facts: false

  tasks:
  - debug:
      var: "{{ lookup('aws_secret', 'staging_mongodb_pass', region='us-east-1') }}"
      msg: "{{ query('aws_secret', 'staging_mongodb_pass', region='us-east-1') }}"
      environment:
        region: 'us-east-1'

错误信息:

失败的!=> {"msg": "运行查找插件 'aws_secret' 时发生未处理的异常。错误是原始消息:'请求的条目(插件类型:查找插件:aws_secret 设置:区域)未在配置中定义。'" }

4

2 回答 2

3

下面的剧本对我有用

  - 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
于 2019-05-27T04:21:38.820 回答
1

看起来 Ansible 以损坏的状态发布了这个查找插件。他们有一个问题和一个 PR 来解决它:

非常令人失望,因为我已经等待这个插件好几个月了。

于 2019-06-07T18:13:56.017 回答