Spec-Zone.ru › Ansible

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

Примечание

Этот плагин поиска входит в коллекцию amazon.aws (версия 11.3.0).

Возможно, эта коллекция уже установлена, если вы используете пакет 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.35.0
  • botocore >= 1.35.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

string

Идентификатор ключа доступа 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 для единообразия с AWS botocore SDK.

Конфигурация:

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

bypath

boolean

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

Допустимые значения:

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

decrypt

boolean

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

Допустимые значения:

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

droppath

boolean

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

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

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

Допустимые значения:

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

endpoint_url

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

string

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

Конфигурация:

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

on_denied

string

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

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

v(error) вызовет критическую ошибку при отказе в доступе к параметру SSM.

v(skip) без уведомления пропустит параметр SSM, к которому отказано в доступе.

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

Допустимые значения:

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

on_missing

string

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

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

error вызовет критическую ошибку, если параметр SSM отсутствует.

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

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

Допустимые значения:

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

profile

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

string

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

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

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

Конфигурация:

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

recursive

boolean

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

Допустимые значения:

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

region

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

string

Регион AWS.

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

Конфигурация:

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

secret_key

псевдонимы: aws_secret_access_key, aws_secret_key

string

Секретный ключ доступа 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 для единообразия с AWS botocore SDK.

Конфигурация:

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

session_token

псевдонимы: aws_session_token

string

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

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

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

Конфигурация:

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

shortnames

boolean

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

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

Допустимые значения:

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

Примечание

Перечисленные выше для каждого типа записей параметры конфигурации (переменные Ansible, переменные окружения и так далее) упорядочены от низкого приоритета к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

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

Примеры

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

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

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

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

- name: Lookup ssm parameter store using explicit aws credentials
  ansible.builtin.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
  ansible.builtin.debug: msg="{{ lookup('amazon.aws.aws_ssm', 'Hello', decrypt=false, region='us-east-2', profile='myprofile') }}"

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

- name: Lookup a key which doesn't exist, returning a default ('root')
  ansible.builtin.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
  ansible.builtin.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
  ansible.builtin.debug: msg="{{ 'the secret was:' ~ temp_secret | default('could not access secret') }}"

- name: Return a dictionary of ssm parameters from a hierarchy path
  ansible.builtin.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)
  ansible.builtin.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)
  ansible.builtin.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)
  ansible.builtin.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)
  ansible.builtin.debug: msg='Path contains {{ item }}'
  loop: "{{ lookup('amazon.aws.aws_ssm', '/demo/', '/demo1/', bypath=True)}}"

- name: Lookup ssm parameter warn if access is denied
  ansible.builtin.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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/ssm_parameter_lookup.html

Spec-Zone.ru

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