Spec-Zone.ru › Ansible 2.10

amazon.aws.aws_ec2 – Источник инвентаризации EC2

Примечание

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

Для его установки используйте: ansible-galaxy collection install amazon.aws.

Для использования в книге задач укажите: amazon.aws.aws_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]
cache = нет

env:ANSIBLE_INVENTORY_CACHE
Включить/выключить кэширование данных источника инвентаризации, требует настройки плагина кэша для работы.
cache_connection
строка
записи ini:

[defaults]
fact_caching_connection = None

[inventory]
cache_connection = None

env:ANSIBLE_CACHE_PLUGIN_CONNECTION
env:ANSIBLE_INVENTORY_CACHE_CONNECTION
Данные или путь подключения к кэшу, см. документацию по плагинам кэша для получения подробной информации.
cache_plugin
строка
Значение по умолчанию:
"memory"
записи ini:

[defaults]
fact_caching = memory

[inventory]
cache_plugin = memory

env:ANSIBLE_CACHE_PLUGIN
env:ANSIBLE_INVENTORY_CACHE_PLUGIN
Плагин кэша для использования данных источника инвентаризации.
cache_prefix
строка
Значение по умолчанию:
"ansible_inventory_"
записи ini:

[default]
fact_caching_prefix = ansible_inventory_

[inventory]
cache_prefix = ansible_inventory_

env:ANSIBLE_CACHE_PLUGIN_PREFIX
env:ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX
Префикс для использования в файлах/таблицах плагина кэша
cache_timeout
целое число
Значение по умолчанию:
3600
записи ini:

[defaults]
fact_caching_timeout = 3600

[inventory]
cache_timeout = 3600

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.
iam_role_arn
строка
ARN роли IAM для предположения, чтобы выполнить поиск инвентаризации. Вы все равно должны предоставить учетные данные AWS с достаточными привилегиями для выполнения действия AssumeRole.
include_extra_api_calls
логическое
    Варианты:
  • нет ←
  • да
Добавление двух дополнительных вызовов API для каждого экземпляра, чтобы включить переменные узлов 'persistent' и 'events'.
Временные экземпляры могут быть постоянными, а у экземпляров могут быть связанные события.
keyed_groups
список / элементы=строка
Значение по умолчанию:
[]
Добавление узлов в группу на основе значений переменной.
plugin
строка / обязательный
    Варианты:
  • aws_ec2
Токен, который гарантирует, что это исходный файл для плагина.
regions
список / элементы=строка
Значение по умолчанию:
[]
Список регионов, в которых нужно описать экземпляры EC2.
Если пусто (по умолчанию), это будет включать все регионы, за исключением, возможно, ограниченных, таких как us-gov-west-1 и cn-north-1.
strict
логическое
    Варианты:
  • нет ←
  • да
Если yes сделать недействительные записи ошибкой, иначе пропустить и продолжить.
Поскольку в выражениях можно использовать факты, они могут не всегда быть доступны, и мы по умолчанию игнорируем эти ошибки.
strict_permissions
логическое
    Варианты:
  • нет
  • да ←
По умолчанию, если обнаружена ошибка 403 (Forbidden), этот плагин завершится ошибкой.
Вы можете установить этот параметр в значение False в файле конфигурации инвентаризации, что позволит игнорировать ошибки 403.
use_contrib_script_compatible_sanitization
логическое
    Варианты:
  • нет ←
  • да
По умолчанию этот плагин использует общую очистку имен групп, чтобы создавать безопасные и пригодные для использования имена групп для использования в 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
  # Create a group (or groups) based on the value of a custom tag "Role" and add them to a metagroup called "project"
  - key: tags['Role']
    prefix: foo
    parent_group: "project"
# 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

Авторы

  • Sloane Hertel (@s-hertel)

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

Spec-Zone.ru

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