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 |
| Управляет источником учетных данных для аутентификации. Если не указано, будет использована переменная окружения 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 |
| Управляет поведением проверки сертификатов для 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' | |
| 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