Spec-Zone.ru › Ansible 2.7

azure_rm – Azure Resource Manager инвентаризационный плагин

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Статус

Описание

  • Запрос подробных данных о виртуальных машинах из Azure Resource Manager
  • Требуется файл конфигурации YAML, имя которого заканчивается на ‘azure_rm.(yml|yaml)’
  • По умолчанию устанавливает ansible_host на первый найденный общедоступный IP-адрес (предпочтение первичному сетевому адаптеру). Если общедоступные IP-адреса не найдены, устанавливается первый приватный IP-адрес (также с предпочтением первичному сетевому адаптеру). По умолчанию можно переопределить через hostvar_expressions; см. примеры.

Требования

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

  • python >= 2.7
  • azure >= 2.0.0

Параметры

Параметр Варианты/Значения по умолчанию Конфигурация Комментарии
ad_user
-
Имя пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы.
adfs_authority_url
-
добавлено в 2.6
По умолчанию:
null
URL-адрес авторитета Azure AD. Используйте при аутентификации с именем пользователя/паролем и собственном авторитете ADFS.
api_profile
-
добавлено в 2.5
По умолчанию:
"latest"
Выбирает профиль API для взаимодействия с Azure-службами. Значение по умолчанию latest подходит для общедоступных облаков; будущие значения позволят использовать с Azure Stack.
auth_source
-
добавлено в 2.5
    Варианты:
  • auto
  • cli
  • credential_file
  • env
  • msi
Управляет источником учетных данных для аутентификации.
Если не указано, будет использована переменная окружения ANSIBLE_AZURE_AUTH_SOURCE и по умолчанию будет установлено значение auto если переменная не определена.
auto будет следовать порядку приоритета параметров модуля -> переменные окружения -> профиль по умолчанию в файле учетных данных ~/.azure/credentials.
При установке значения cli, учетные данные будут взяты из профиля Azure CLI по умолчанию.
Также может быть установлено через переменную окружения ANSIBLE_AZURE_AUTH_SOURCE.
При установке значения msi, хост-машина должна быть Azure-ресурсом с включённым расширением MSI. subscription_id или переменная окружения AZURE_SUBSCRIPTION_ID могут быть использованы для определения идентификатора подписки, если ресурсу предоставлен доступ к нескольким подпискам, в противном случае выбирается первая подписка.
msi было добавлено в Ansible 2.6.
batch_fetch
-
По умолчанию:
"yes"
Для повышения производительности результаты извлекаются с использованием неподдерживаемого пакетного API. Отключение batch_fetch использует гораздо более медленный последовательный запрос, что приводит к большему количеству циклов запросов. Обычно полезно только для отладки.
cert_validation_mode
-
добавлено в 2.5
    Варианты:
  • validate
  • ignore
Управляет поведением проверки сертификатов для Azure-точек конечного доступа. По умолчанию все модули проверяют серверный сертификат, но при использовании HTTPS-прокси или подключении к Azure Stack, может потребоваться отключить это поведение, передав ignore. Также может быть установлено через профиль файла учетных данных или переменную окружения AZURE_CERT_VALIDATION.
client_id
-
Идентификатор клиента Azure. Используйте при аутентификации с принципалом службы.
cloud_environment
-
добавлено в 2.4
По умолчанию:
"AzureCloud"
Для облачных сред, отличных от общедоступного облака США, имя среды (как определено в Azure Python SDK, например, AzureChinaCloud, AzureUSGovernment) или URL-адрес точки конечного доступа для обнаружения метаданных (требуется для Azure Stack). Также может быть установлено через профиль файла учетных данных или переменную окружения AZURE_CLOUD_ENVIRONMENT.
conditional_groups
-
Сопоставление имён групп с выражениями Jinja2. Когда сопоставленное выражение истинно, хост добавляется в указанную группу.
default_host_filters
-
По умолчанию:
["powerstate != \"running\"", "provisioning_state != \"succeeded\""]
Набор фильтров по умолчанию, применяемых дополнительно к условиям в exclude_host_filters для исключения выключенных и не полностью подготовленных хостов. Установите другое значение или пустой список, если вам необходимо включить хосты в этих состояниях.
exclude_host_filters
-
По умолчанию:
[]
Исключает хосты из инвентаризации с помощью списка условных выражений Jinja2. Каждое выражение в списке оценивается для каждого хоста; когда выражение истинно, хост исключается из инвентаризации.
fail_on_template_errors
-
    Варианты:
  • да ←
  • нет
По умолчанию:
"да"
При значении false, ошибки шаблонов во время обработки групп и фильтров игнорируются (например, если выражение фильтра или группы ссылается на неопределённую переменную хоста)
hostvar_expressions
-
Сопоставление имён hostvar с выражениями Jinja2. Значение для каждого хоста — результат выражения Jinja2 (которое может ссылаться на любые существующие переменные хоста на момент выполнения этого инвентаризационного плагина).
include_vm_resource_groups
-
По умолчанию:
["*"]
Список имён групп ресурсов для поиска виртуальных машин. '\*' включит все группы ресурсов в подписке.
include_vmss_resource_groups
-
По умолчанию:
[]
Список имён групп ресурсов для поиска наборов виртуальных машин (VMSS). '\*' включит все группы ресурсов в подписке.
keyed_groups
-
Создаёт группы на основе значения переменной хоста. Требуется список словарей, определяющих key, prefix (префикс для нового имени группы) и необязательно separator (по умолчанию _)
password
-
Пароль пользователя Active Directory. Используйте при аутентификации с пользователем Active Directory, а не с принципалом службы.
plugin
- / обязательно
    Варианты:
  • azure_rm
помечает это как экземпляр плагина 'azure_rm'
profile
-
Профиль безопасности, найденный в файле ~/.azure/credentials.
secret
-
Секрет клиента Azure. Используйте при аутентификации с принципалом службы.
subscription_id
-
Идентификатор вашей Azure подписки.
tenant
-
Идентификатор Azure-аренды. Используйте при аутентификации с принципалом службы.

Примечания

Примечание

  • Для аутентификации с Azure можно передать параметры, установить переменные окружения или использовать профиль, сохраненный в ~/.azure/credentials. Аутентификация возможна с помощью служебного принципала или пользователя Active Directory. Для аутентификации через служебного принципала, передайте subscription_id, client_id, secret и tenant или установите переменные окружения AZURE_SUBSCRIPTION_ID, AZURE_CLIENT_ID, AZURE_SECRET и AZURE_TENANT.
  • Для аутентификации через пользователя Active Directory, передайте ad_user и password или установите AZURE_AD_USER и AZURE_PASSWORD в окружении.
  • В качестве альтернативы, учетные данные можно сохранить в ~/.azure/credentials. Это ini-файл, содержащий раздел [default] и следующие ключи: subscription_id, client_id, secret и tenant или subscription_id, ad_user и password. Также можно добавить дополнительные профили. Укажите профиль, передав профиль или установив AZURE_PROFILE в окружении.

Примеры

# The following host variables are always available:
# public_ipv4_addresses: all public IP addresses, with the primary IP config from the primary NIC first
# public_dns_hostnames: all public DNS hostnames, with the primary IP config from the primary NIC first
# private_ipv4_addresses: all private IP addressses, with the primary IP config from the primary NIC first
# id: the VM's Azure resource ID, eg /subscriptions/00000000-0000-0000-1111-1111aaaabb/resourceGroups/my_rg/providers/Microsoft.Compute/virtualMachines/my_vm
# location: the VM's Azure location, eg 'westus', 'eastus'
# name: the VM's resource name, eg 'myvm'
# powerstate: the VM's current power state, eg: 'running', 'stopped', 'deallocated'
# provisioning_state: the VM's current provisioning state, eg: 'succeeded'
# tags: dictionary of the VM's defined tag values
# resource_type: the VM's resource type, eg: 'Microsoft.Compute/virtualMachine', 'Microsoft.Compute/virtualMachineScaleSets/virtualMachines'
# vmid: the VM's internal SMBIOS ID, eg: '36bca69d-c365-4584-8c06-a62f4a1dc5d2'
# vmss: if the VM is a member of a scaleset (vmss), a dictionary including the id and name of the parent scaleset


# sample 'myazuresub.azure_rm.yaml'

# required for all azure_rm inventory plugin configs
plugin: azure_rm

# forces this plugin to use a CLI auth session instead of the automatic auth source selection (eg, prevents the
# presence of 'ANSIBLE_AZURE_RM_X' environment variables from overriding CLI auth)
auth_source: cli

# fetches VMs from an explicit list of resource groups instead of default all (- '*')
include_vm_resource_groups:
- myrg1
- myrg2

# fetches VMs from VMSSs in all resource groups (defaults to no VMSS fetch)
include_vmss_resource_groups:
- '*'

# places a host in the named group if the associated condition evaluates to true
conditional_groups:
  # since this will be true for every host, every host sourced from this inventory plugin config will be in the
  # group 'all_the_hosts'
  all_the_hosts: true
  # if the VM's "name" variable contains "dbserver", it will be placed in the 'db_hosts' group
  db_hosts: "'dbserver' in name"

# adds variables to each host found by this inventory plugin, whose values are the result of the associated expression
hostvar_expressions:
  my_host_var:
  # A statically-valued expression has to be both single and double-quoted, or use escaped quotes, since the outer
  # layer of quotes will be consumed by YAML. Without the second set of quotes, it interprets 'staticvalue' as a
  # variable instead of a string literal.
  some_statically_valued_var: "'staticvalue'"
  # overrides the default ansible_host value with a custom Jinja2 expression, in this case, the first DNS hostname, or
  # if none are found, the first public IP address.
  ansible_host: (public_dns_hostnames + public_ipv4_addresses) | first

# places hosts in dynamically-created groups based on a variable value.
keyed_groups:
# places each host in a group named 'tag_(tag name)_(tag value)' for each tag on a VM.
- prefix: tag
  key: tags
# places each host in a group named 'azure_loc_(location name)', depending on the VM's location
- prefix: azure_loc
  key: location
# places host in a group named 'some_tag_X' using the value of the 'sometag' tag on a VM as X, and defaulting to the
# value 'none' (eg, the group 'some_tag_none') if the 'sometag' tag is not defined for a VM.
- prefix: some_tag
  key: tags.sometag | default('none')

# excludes a host from the inventory when any of these expressions is true, can refer to any vars defined on the host
exclude_host_filters:
# excludes hosts in the eastus region
- location in ['eastus']
# excludes hosts that are powered off
- powerstate != 'running'

Статус

Авторы

  • НЕИЗВЕСТНЫЙ

Подсказка

Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/plugins/inventory/azure_rm.html

Spec-Zone.ru

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