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. Настройка:
|
bypath логический | Логический параметр, указывающий, предоставляется ли параметр как иерархия. Варианты:
|
decrypt логический | Логический параметр, указывающий, нужно ли расшифровать параметр. Варианты:
|
droppath логический добавлен в amazon.aws 8.2.0 | Указывает, нужно ли возвращать имя параметра с удаленной иерархией искомого параметра. Параметры Варианты:
|
endpoint_url псевдонимы: aws_endpoint_url, endpoint строка | URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только для AWS. Псевдоним endpoint устарел и будет удален в релизе после 2024-12-01. Настройка: |
on_denied строка добавлен в amazon.aws 2.0.0 | Действие при отказе доступа к параметру SSM.
Варианты:
|
on_missing строка добавлен в amazon.aws 2.0.0 | Действие при отсутствии параметра SSM.
Варианты:
|
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. Настройка:
|
recursive логический | Логический параметр, указывающий, нужно ли получить все параметры в иерархии. Варианты:
|
region псевдонимы: aws_region, ec2_region строка | Используемый регион AWS. Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region. Настройка:
|
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. Настройка:
|
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. Настройка:
|
shortnames логический тип | Указывает, следует ли возвращать только имя без пути при использовании иерархии параметров. Параметры Варианты:
|
Примечания
Примечание
- Внимание: Для модулей переменные окружения и файлы конфигурации считываются из контекста 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" ) }}"
Ссылки на коллекцию
© 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