Использование aws_secret в анзибле

Я пытаюсь получить пароль от секретного менеджера aws, используя ansible 2.8, используя поиск.

У меня что-то не работает:

  1. В .bashrc я экспортировал регион
  2. Переменные среды Ansible в задаче
  3. Настройка доступных переменных в pre_tasks
- 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'. Ошибка была исходным сообщением: 'Запрошенная запись (plugin_type: lookup plugin: параметр aws_secret: регион) не определена в конфигурации.'» }


person Sunil    schedule 26.05.2019    source источник
comment
Я почти уверен, что имя среды - _ 1_, а не только region   -  person mdaniel    schedule 27.05.2019
comment
Я пробовал все комбинации .bashrc и подтвердил .aws / config с несколькими профилями aws (AWS_DEFAULT_REGION = us-east-1, AWS_REGION = us-east-1, region = us-east-1). Ни один из них не работает   -  person Sunil    schedule 27.05.2019
comment
Нет, вы путаете kwargs с переменной среды; Я специально сказал переменную среды, если только по той причине, что вы упомянули .bashrc, а также имеете environment: в вашем примере выше   -  person mdaniel    schedule 27.05.2019


Ответы (2)


Похоже, что Ansible выпустил этот плагин поиска в неработающем состоянии. У них есть проблема и открыт PR, чтобы ее исправить:

Очень обидно, так как я ждал этот плагин много месяцев.

person geekofalltrades    schedule 07.06.2019

ниже playbook сработал для меня

  - 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
person Sunil    schedule 27.05.2019