aws_ec2 – Источник инвентаризации EC2
Обзор
- Получение хостов инвентаризации из Amazon Web Services EC2.
- Использует файл конфигурации YAML, который заканчивается на
aws_ec2.(yml|yaml).
Требования
Ниже перечислены требования, необходимые на локальном узле-мастере, выполняющем эту инвентаризацию.
- boto3
- botocore
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| aws_access_key строка | env:EC2_ACCESS_KEY env:AWS_ACCESS_KEY env:AWS_ACCESS_KEY_ID | Ключ доступа AWS для использования. псевдонимы: aws_access_key_id | |
| aws_profile строка | env:AWS_DEFAULT_PROFILE env:AWS_PROFILE | Профиль AWS псевдонимы: boto_profile | |
| aws_secret_key строка | env:EC2_SECRET_KEY env:AWS_SECRET_KEY env:AWS_SECRET_ACCESS_KEY | Секретный ключ AWS, соответствующий ключу доступа. псевдонимы: aws_secret_access_key | |
| aws_security_token строка | env:EC2_SECURITY_TOKEN env:AWS_SESSION_TOKEN env:AWS_SECURITY_TOKEN | Токен безопасности AWS, если используются временные ключи доступа и секретные ключи. | |
| cache логическое |
| записи ini: [inventory] env:ANSIBLE_INVENTORY_CACHE | Включение/выключение кеширования данных источника инвентаризации, требует настройки плагина кеширования для работы. |
| cache_connection строка | записи ini: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN_CONNECTION env:ANSIBLE_INVENTORY_CACHE_CONNECTION | Данные соединения или путь кеширования, обратитесь к документации плагина кеширования для получения подробностей. | |
| cache_plugin строка | Значение по умолчанию: "память" | записи ini: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN env:ANSIBLE_INVENTORY_CACHE_PLUGIN | Плагин кеширования для использования данных источника инвентаризации. |
| cache_prefix - | Значение по умолчанию: "ansible_inventory_" | записи ini: [default] [inventory] env:ANSIBLE_CACHE_PLUGIN_PREFIX env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX | Префикс для использования в файлах/таблицах плагина кеширования. |
| cache_timeout целое число | Значение по умолчанию: 3600 | записи ini: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN_TIMEOUT env:ANSIBLE_INVENTORY_CACHE_TIMEOUT | Срок действия кеша в секундах |
| compose словарь | Значение по умолчанию: {} | Создание переменных из выражений Jinja2. | |
| filters словарь | Значение по умолчанию: {} | Словарь пар значений фильтров. Доступные фильтры перечислены здесь http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html#options. | |
| groups словарь | Значение по умолчанию: {} | Добавление хостов в группу на основе условных выражений Jinja2. | |
| hostnames список | Значение по умолчанию: [] | Список в порядке приоритета для переменных имен хостов. Можно использовать параметры, указанные в http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html#options. Для использования тегов в качестве имен хостов используйте синтаксис tag:Name=Value для использования имени хоста Name_Value или tag:Name для использования значения тега Name. | |
| include_extra_api_calls логическое добавлен в 2.8 |
| Добавить два дополнительных вызова API для каждого экземпляра, чтобы включить переменные хоста 'persistent' и 'events'. Виртуальные машины могут быть постоянными, а экземпляры могут иметь связанные события. | |
| keyed_groups список | Значение по умолчанию: [] | Добавление хостов в группу на основе значений переменной. | |
| plugin - / обязательно |
| Токен, гарантирующий, что это файл источника для плагина. | |
| regions список | Значение по умолчанию: [] | Список областей, в которых нужно описать экземпляры EC2. Если пусто (значение по умолчанию), это будет включать все регионы, за исключением, возможно, ограниченных, таких как us-gov-west-1 и cn-north-1. | |
| strict логическое |
| Если yes сделать неверные записи фатальной ошибкой, в противном случае пропустить и продолжить.Поскольку можно использовать факты в выражениях, они могут быть не всегда доступны, и мы игнорируем эти ошибки по умолчанию. | |
| strict_permissions логическое |
| По умолчанию, если встречается код ошибки 403 (Запрещено), этот плагин завершится с ошибкой. Вы можете установить этот параметр в False в файле конфигурации инвентаризации, что позволит игнорировать ошибки 403. | |
| use_contrib_script_compatible_sanitization логическое добавлен в 2.8 |
| По умолчанию этот плагин использует общую очистку имен групп для создания безопасных и удобных имён групп для использования в Ansible. Этот параметр позволяет переопределить это, пытаясь выполнить миграцию со старого скрипта инвентаризации и соответствует очистке групп, когда параметр скрипта ``replace_dash_in_groups`` установлен в ``False``. Чтобы воспроизвести поведение ``replace_dash_in_groups = True`` с созданными группами, вам необходимо заменить дефисы на подчеркивания с помощью фильтра regex_replace для этих записей. Для этого также необходимо отключить настройку TRANSFORM_INVALID_GROUP_CHARS, в противном случае ядро просто будет использовать стандартную очистку поверх этого. Это не значение по умолчанию, так как такие имена нарушают определённую функциональность, так как не все символы являются допустимыми идентификаторами Python, которые имена групп в конечном итоге используются как. |
Примечания
Примечание
- Если учетные данные не указаны, а у узла управления есть связанный профиль экземпляра IAM, то для аутентификации будет использована роль.
Примеры
# Minimal example using environment vars or instance role credentials
# Fetch all hosts in us-east-1, the hostname is the public DNS if it exists, otherwise the private IP address
plugin: aws_ec2
regions:
- us-east-1
# Example using filters, ignoring permission errors, and specifying the hostname precedence
plugin: aws_ec2
boto_profile: aws_profile
# Populate inventory with instances in these regions
regions:
- us-east-1
- us-east-2
filters:
# All instances with their `Environment` tag set to `dev`
tag:Environment: dev
# All dev and QA hosts
tag:Environment:
- dev
- qa
instance.group-id: sg-xxxxxxxx
# Ignores 403 errors rather than failing
strict_permissions: False
# Note: I(hostnames) sets the inventory_hostname. To modify ansible_host without modifying
# inventory_hostname use compose (see example below).
hostnames:
- tag:Name=Tag1,Name=Tag2 # Return specific hosts only
- tag:CustomDNSName
- dns-name
- private-ip-address
# Example using constructed features to create groups and set ansible_host
plugin: aws_ec2
regions:
- us-east-1
- us-west-1
# keyed_groups may be used to create custom groups
strict: False
keyed_groups:
# Add e.g. x86_64 hosts to an arch_x86_64 group
- prefix: arch
key: 'architecture'
# Add hosts to tag_Name_Value groups for each Name/Value tag pair
- prefix: tag
key: tags
# Add hosts to e.g. instance_type_z3_tiny
- prefix: instance_type
key: instance_type
# Create security_groups_sg_abcd1234 group for each SG
- key: 'security_groups|json_query("[].group_id")'
prefix: 'security_groups'
# Create a group for each value of the Application tag
- key: tags.Application
separator: ''
# Create a group per region e.g. aws_region_us_east_2
- key: placement.region
prefix: aws_region
# Set individual variables with compose
compose:
# Use the private IP address to connect to the host
# (note: this does not modify inventory_hostname, which is set via I(hostnames))
ansible_host: private_ip_address
Статус
- Этот инвентарь не гарантирует обратной совместимости. [превью]
- Этот инвентарь поддерживается сообществом Ansible. [сообщество]
Авторы
- НЕИЗВЕСТНО
Подсказка
Если вы заметите какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
Подсказка
Элементы конфигурации для каждого типа записи имеют порядок приоритетов от низкого к высокому. Например, переменная, которая находится ниже в списке, переопределит переменную, которая находится выше.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/inventory/aws_ec2.html