Инвентаризация google.cloud.gcp_compute — источник инвентаризации Google Cloud Compute Engine
Примечание
Этот плагин инвентаризации входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install google.cloud. Для использования этого плагина инвентаризации требуются дополнительные компоненты. Подробнее см. раздел Требования.
Чтобы использовать его в плейбуке, укажите: google.cloud.gcp_compute.
Краткое описание
- Получение узлов инвентаризации из Google Cloud Platform GCE.
- Используется файл конфигурации YAML с именем, оканчивающимся на gcp_compute.(yml|yaml) или gcp.(yml|yaml).
Требования
Перечисленные ниже компоненты должны быть установлены на локальном управляющем узле, выполняющем эту инвентаризацию.
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token строка | Токен доступа OAuth2, если тип учётных данных — accesstoken. Конфигурация:
|
auth_kind строка / обязательный | Тип используемых учётных данных. Варианты:
Конфигурация:
|
cache логическое значение | Включение или отключение кэширования исходных данных инвентаризации. Для работы требуется настроенный плагин кэша. Варианты:
Конфигурация:
|
cache_connection строка | Данные подключения к кэшу или путь к нему. Подробности см. в документации плагина кэша. Конфигурация:
|
cache_plugin строка | Плагин кэша для исходных данных инвентаризации. По умолчанию: Конфигурация:
|
cache_prefix строка | Префикс для файлов/таблиц плагина кэша. По умолчанию: Конфигурация:
|
cache_timeout целое число | Длительность хранения кэша в секундах. По умолчанию: Конфигурация:
|
compose словарь | Создание переменных из выражений Jinja2. По умолчанию: |
filters список / элементы=строки | Список пар значений фильтров. Доступные фильтры перечислены здесь: https://cloud.google.com/compute/docs/reference/rest/v1/instances/aggregatedList. Каждый дополнительный фильтр в списке добавляется как условие AND (filter1 and filter2). |
folders список / элементы=строки | Папка, содержащая несколько проектов. |
groups словарь | Добавление узлов в группы на основе условий Jinja2. По умолчанию: |
hostnames список / элементы=строки | Список параметров, задающих порядок назначения имён узлам. Сейчас поддерживаются следующие имена: ‘public_ip’, ‘private_ip’, ‘name’, ‘hostname’ или ‘labels.vm_name’. По умолчанию: |
keyed_groups список / элементы=словарь | Добавление узлов в группы на основе значений переменной. По умолчанию: |
|
default_value строка добавлено в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла равно Этот параметр нельзя использовать одновременно с |
|
key строка |
Ключ входного словаря, используемый для создания групп. |
|
parent_group строка |
Родительская группа для группы по ключу. |
|
prefix строка |
Имя группы по ключу будет начинаться с этого префикса. По умолчанию: |
|
separator строка |
Разделитель, используемый при формировании имени группы по ключу. По умолчанию: |
|
trailing_separator логическое значение добавлено в ansible-core 2.12 |
Установите для этого параметра значение Этот параметр нельзя использовать одновременно с Варианты:
|
leading_separator логическое значение добавлено в ansible-core 2.11 | Используется совместно с По умолчанию имя группы по ключу, для которой не заданы префикс или разделитель, начинается с подчёркивания. Это связано с тем, что префикс по умолчанию — Установите для этого параметра значение Если имя группы формируется из соответствия, разделитель всё равно используется для объединения элементов. Чтобы совсем не использовать разделитель в имени группы, задайте для группы по ключу пустую строку в качестве разделителя. Варианты:
|
name_suffix строка | Пользовательский суффикс домена. Если задан, эта строка добавляется ко всем узлам. По умолчанию: |
projects список / элементы=строки | Список проектов, в которых следует описать экземпляры GCE. |
retrieve_image_info логическое значение | Заполнение факта узла По умолчанию этот плагин не пытается сопоставить загрузочный образ экземпляра с именем образа в каталоге GCP, поскольку эта операция увеличивает нагрузку. Если этот параметр не включён, переменная узла Варианты:
|
scopes список / элементы=строки | Список областей действия аутентификации. По умолчанию: Конфигурация:
|
service_account_contents строка | Строка с содержимым JSON-файла учётной записи службы. Значение следует передавать не в виде словаря, а в виде строки с точным содержимым JSON-файла учётной записи службы (корректный JSON). Конфигурация:
|
service_account_email строка | Необязательный адрес электронной почты учётной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. Конфигурация:
|
service_account_file путь | Путь к JSON-файлу учётной записи службы, если в качестве типа выбрано serviceaccount. Конфигурация:
|
strict логическое значение | Если Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются. Варианты:
|
use_contrib_script_compatible_sanitization логическое значение | По умолчанию этот плагин использует общую очистку имён групп, чтобы создавать безопасные и пригодные для Ansible имена. Этот параметр позволяет изменить такое поведение, чтобы упростить переход со старого скрипта инвентаризации. Для этого также следует отключить настройку TRANSFORM_INVALID_GROUP_CHARS, иначе ядро Ansible дополнительно применит стандартную очистку. Это не является поведением по умолчанию, поскольку такие имена нарушают работу некоторых функций: не все символы допустимы в идентификаторах Python, которыми становятся имена групп. Варианты:
|
use_extra_vars логическое значение добавлено в ansible-core 2.11 | Объединение дополнительных переменных с доступными переменными для композиции (наивысший приоритет). Варианты:
Конфигурация:
|
vars_prefix строка | Префикс для переменных узла; не применяется к фактам и параметрам. По умолчанию: |
zones список / элементы=строки | Список зон, в которых следует описать экземпляры GCE. Если зоны не указаны, используются все зоны, доступные в данном проекте. |
Примечание
Для перечисленных выше записей конфигурации каждого типа (переменная Ansible, переменная окружения и т. д.) задан приоритет от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- На этом этапе инвентаризация ещё не завершена, поэтому автоматически заполняемые группы
allиungroupedбудут отражать только то, что в них явно добавили предыдущие источники инвентаризации. - Во время построения инвентаризации «магические переменные» времени выполнения недоступны. Например,
groupsиhostvarsещё не существуют.
Примеры
plugin: google.cloud.gcp_compute
zones: # populate inventory with instances in these zones
- us-east1-a
projects:
- gcp-prod-gke-100
- gcp-cicd-101
filters:
- status = RUNNING
- scheduling.automaticRestart = true AND status = RUNNING
service_account_file: /tmp/service_account.json
auth_kind: serviceaccount
scopes:
- 'https://www.googleapis.com/auth/cloud-platform'
- 'https://www.googleapis.com/auth/compute.readonly'
keyed_groups:
# Create groups from GCE labels
- prefix: gcp
key: labels
name_suffix: .example.com
hostnames:
# List host by name instead of the default public ip
- name
compose:
# Set an inventory parameter to use the Public IP address to connect to the host
# For Private ip use "networkInterfaces[0].networkIP"
ansible_host: networkInterfaces[0].accessConfigs[0].natIP
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_inventory.html