Spec-Zone.ru › Ansible

amazon.aws.ssm_parameter поиск – получает значение для параметра SSM или всех параметров по пути

Примечание

Этот плагин поиска является частью коллекции amazon.aws (версия 8.2.1).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install amazon.aws. Для использования этого плагина поиска необходимы дополнительные требования, см. Требования для получения подробностей.

Для использования в книге задач укажите: amazon.aws.ssm_parameter.

  • Описание
  • Требования
  • Параметры ключевых слов
  • Примечания
  • Примеры

Описание

  • Получение значения для параметра Amazon Simple Systems Manager или иерархии параметров. Первый аргумент, который вы передаете поиску, может быть именем параметра или иерархией параметров. Иерархии начинаются с косой черты и заканчиваются именем параметра. Может быть указано до 5 уровней.
  • Если вы ищете явно указанный параметр по имени, которого не существует, поиск выведет ошибку. В этом случае вы можете использовать фильтр default, чтобы задать значение по умолчанию, но при этом необходимо установить параметр on_missing в skip или warn. Также необходимо установить второй параметр фильтра default в true (см. примеры ниже).
  • При поиске пути для параметров под ним будет возвращен словарь для каждого пути. Если под этим путем нет параметра, поиск выведет ошибку.
  • Если поиск завершится неудачно из-за недостатка разрешений или из-за ошибки AWS-клиента, aws_ssm выдаст ошибку. Если вы хотите продолжить в этом случае, вам нужно будет создать две задачи Ansible: одну, которая задает переменную и игнорирует ошибки, и одну, которая использует значение этой переменной со значением по умолчанию. Смотрите примеры ниже.
  • До версии 6.0.0 этот модуль был известен как aws_ssm, способ использования остался прежним.

Псевдонимы: aws_ssm

Требования

Ниже перечислены требования, необходимые на локальном узле контроллера, который выполняет этот поиск.

  • python >= 3.6
  • boto3 >= 1.26.0
  • botocore >= 1.29.0

Параметры ключевых слов

Это описание параметров ключевых слов поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('amazon.aws.ssm_parameter', key1=value1, key2=value2, ...) и query('amazon.aws.ssm_parameter', key1=value1, key2=value2, ...)

Параметр

Комментарии

access_key

псевдонимы: aws_access_key_id, aws_access_key, ec2_access_key

строка

Идентификатор ключа доступа AWS.

Дополнительную информацию о маркерах доступа см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Параметры aws_access_key и profile взаимоисключающие.

Псевдоним aws_access_key_id был добавлен в релизе 5.1.0 для согласованности с SDK AWS botocore.

Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01.

Настройка:

  • Переменная окружения: AWS_ACCESS_KEY_ID
  • Переменная окружения: AWS_ACCESS_KEY
  • Переменная окружения: EC2_ACCESS_KEY

    Удалено в: основной релиз после 2024-12-01

    Почему: EC2 в имени подразумевало ограничение на ресурсы EC2. Однако используется для всех подключений.

    Альтернатива: AWS_ACCESS_KEY_ID

bypath

логический

Логический параметр, указывающий, предоставляется ли параметр как иерархия.

Варианты:

  • false ← (по умолчанию)
  • true

decrypt

логический

Логический параметр, указывающий, нужно ли расшифровать параметр.

Варианты:

  • false
  • true ← (по умолчанию)

droppath

логический

добавлен в amazon.aws 8.2.0

Указывает, нужно ли возвращать имя параметра с удаленной иерархией искомого параметра.

Параметры shortnames и droppath взаимоисключающие.

Варианты:

  • false ← (по умолчанию)
  • true

endpoint_url

псевдонимы: aws_endpoint_url, endpoint

строка

URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только для AWS.

Псевдоним endpoint устарел и будет удален в релизе после 2024-12-01.

Настройка:

  • Переменная окружения: AWS_URL
  • Переменная окружения: EC2_URL

    Удалено в: основной релиз после 2024-12-01

    Почему: EC2 в имени подразумевало ограничение на ресурсы EC2. Однако используется для всех подключений.

    Альтернатива: AWS_URL

on_denied

строка

добавлен в amazon.aws 2.0.0

Действие при отказе доступа к параметру SSM.

error приведет к ошибке при отказе доступа к параметру SSM.

skip будет игнорировать параметр SSM, отказавший в доступе.

warn пропустит параметр SSM, отказавший в доступе, но выведет предупреждение.

Варианты:

  • "error" ← (по умолчанию)
  • "skip"
  • "warn"

on_missing

строка

добавлен в amazon.aws 2.0.0

Действие при отсутствии параметра SSM.

error приведет к ошибке при отсутствии параметра SSM.

skip будет игнорировать отсутствующий параметр SSM.

warn пропустит отсутствующий параметр SSM, но выведет предупреждение.

Варианты:

  • "error" ← (по умолчанию)
  • "skip"
  • "warn"

profile

псевдонимы: aws_profile, boto_profile

строка

Используемый профиль AWS с именем для аутентификации.

Дополнительную информацию о профилях с именами см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и security_token.

Псевдоним boto_profile устарел и будет удален в релизе после 2024-12-01.

Настройка:

  • Переменная окружения: AWS_PROFILE
  • Переменная окружения: AWS_DEFAULT_PROFILE

recursive

логический

Логический параметр, указывающий, нужно ли получить все параметры в иерархии.

Варианты:

  • false ← (по умолчанию)
  • true

region

псевдонимы: aws_region, ec2_region

строка

Используемый регион AWS.

Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

Настройка:

  • Переменная окружения: AWS_REGION
  • Переменная окружения: EC2_REGION

    Удалено в: основной релиз после 2024-12-01

    Почему: EC2 в имени подразумевало ограничение на ресурсы EC2, когда используется для всех подключений

    Альтернатива: AWS_REGION

END_OF_DOCUMENT_MARKER

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_secret_key

строка

Секретный ключ доступа AWS.

См. документацию AWS для получения дополнительной информации о маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Параметры secret_key и profile взаимоисключающие.

Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для согласованности с SDK AWS botocore.

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Настройка:

  • Переменная окружения: AWS_SECRET_ACCESS_KEY
  • Переменная окружения: AWS_SECRET_KEY
  • Переменная окружения: EC2_SECRET_KEY

    Удалено в: основной релиз после 2024-12-01

    Почему: EC2 в имени подразумевало, что оно ограничено ресурсами EC2. Однако оно используется для всех подключений.

    Альтернатива: AWS_SECRET_ACCESS_KEY

session_token

aliases: aws_session_token, security_token, aws_security_token, access_token

строка

Маркер сеанса AWS STS для использования с временными учетными данными.

См. документацию AWS для получения дополнительной информации о маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Параметры security_token и profile взаимоисключающие.

Псевдонимы aws_session_token и session_token были добавлены в релизе 3.2.0, а параметр был переименован из security_token в session_token в релизе 6.0.0.

Псевдонимы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01.

Настройка:

  • Переменная окружения: AWS_SESSION_TOKEN
  • Переменная окружения: AWS_SECURITY_TOKEN

    Удалено в: основной релиз после 2024-12-01

    Почему: AWS_SECURITY_TOKEN использовался для совместимости с исходным SDK boto, поддержка которого была прекращена

    Альтернатива: AWS_SESSION_TOKEN

  • Переменная окружения: EC2_SECURITY_TOKEN

    Удалено в: основной релиз после 2024-12-01

    Почему: EC2 в имени подразумевало, что оно ограничено ресурсами EC2. Однако оно используется для всех подключений.

    Альтернатива: AWS_SESSION_TOKEN

shortnames

логический тип

Указывает, следует ли возвращать только имя без пути при использовании иерархии параметров.

Параметры shortnames и droppath взаимоисключающие.

Варианты:

  • false ← (по умолчанию)
  • true

Примечания

Примечание

  • Внимание: Для модулей переменные окружения и файлы конфигурации считываются из контекста Ansible «хост» а не «контроллер». Поэтому, возможно, потребуется явно скопировать файлы на «хост». Для плагинов поиска и подключения переменные окружения и файлы конфигурации считываются из контекста Ansible «контроллер» а не «хост».
  • AWS SDK (boto3), который использует Ansible, также может считывать значения по умолчанию для учетных данных и других параметров, таких как регион, из файлов конфигурации в контексте Ansible «хост» (обычно ~/.aws/credentials). См. https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html для получения дополнительной информации.

Примеры

# lookup sample:
- name: lookup ssm parameter store in the current region
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'Hello' ) }}"

- name: lookup ssm parameter store in specified region
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'Hello', region='us-east-2' ) }}"

- name: lookup ssm parameter store without decryption
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'Hello', decrypt=False ) }}"

- name: lookup ssm parameter store using a specified aws profile
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'Hello', profile='myprofile' ) }}"

- name: lookup ssm parameter store using explicit aws credentials
  debug:
    msg: >-
      {{ lookup('amazon.aws.aws_ssm', 'Hello', access_key=my_aws_access_key, secret_key=my_aws_secret_key, session_token=my_session_token ) }}"

- name: lookup ssm parameter store with all options
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'Hello', decrypt=false, region='us-east-2', profile='myprofile') }}"

- name: lookup ssm parameter and fail if missing
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'missing-parameter') }}"

- name: lookup a key which doesn't exist, returning a default ('root')
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'AdminID', on_missing="skip") | default('root', true) }}"

- name: lookup a key which doesn't exist failing to store it in a fact
  set_fact:
    temp_secret: "{{ lookup('amazon.aws.aws_ssm', '/NoAccess/hiddensecret') }}"
  ignore_errors: true

- name: show fact default to "access failed" if we don't have access
  debug: msg="{{ 'the secret was:' ~ temp_secret | default('could not access secret') }}"

- name: return a dictionary of ssm parameters from a hierarchy path
  debug: msg="{{ lookup('amazon.aws.aws_ssm', '/PATH/to/params', region='ap-southeast-2', bypath=true, recursive=true ) }}"

- name: return a dictionary of ssm parameters from a hierarchy path with shortened names (param instead of /PATH/to/params/foo/bar/param)
  debug: msg="{{ lookup('amazon.aws.aws_ssm', '/PATH/to/params', region='ap-southeast-2', shortnames=true, bypath=true, recursive=true ) }}"

- name: return a dictionary of ssm parameters from a hierarchy path with the heirarchy path dropped (foo/bar/param instead of /PATH/to/params/foo/bar/param)
  debug: msg="{{ lookup('amazon.aws.aws_ssm', '/PATH/to/params', region='ap-southeast-2', droppath=true, bypath=true, recursive=true ) }}"

- name: Iterate over a parameter hierarchy (one iteration per parameter)
  debug: msg='Key contains {{ item.key }} , with value {{ item.value }}'
  loop: "{{ lookup('amazon.aws.aws_ssm', '/demo/', region='ap-southeast-2', bypath=True) | dict2items }}"

- name: Iterate over multiple paths as dictionaries (one iteration per path)
  debug: msg='Path contains {{ item }}'
  loop: "{{ lookup('amazon.aws.aws_ssm', '/demo/', '/demo1/', bypath=True)}}"

- name: lookup ssm parameter warn if access is denied
  debug: msg="{{ lookup('amazon.aws.aws_ssm', 'missing-parameter', on_denied="warn" ) }}"

Авторы

  • Bill Wang <ozbillwang(at)gmail.com>
  • Marat Bakeev <hawara(at)gmail.com>
  • Michael De La Rue

Подсказка

Записи конфигурации для каждого типа имеют порядок приоритета от низкого к высокому. Например, переменная, которая ниже в списке, переопределяет переменную, которая выше в списке.

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (источники)
  • Общение

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/amazon/aws/ssm_parameter_lookup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API