google.cloud.gcp_compute – Источник инвентаризации Google Cloud Compute Engine
Примечание
Этот плагин входит в состав коллекции google.cloud (версия 1.0.1).
Для его установки используйте: 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
Параметры
| Параметр | Варианты/Значения по умолчанию | Конфигурация | Комментарии |
|---|---|---|---|
| auth_kind строка / обязательно |
| env:GCP_AUTH_KIND добавлено в 2.8.2 google.cloud | Тип используемых учетных данных. |
| cache булево |
| записи ini: [inventory] env:ANSIBLE_INVENTORY_CACHE | Включить/выключить кеширование исходных данных инвентаризации, требует настройки плагина кеширования для работы. |
| cache_connection строка | записи ini: [defaults] [inventory] env:ANSIBLE_CACHE_PLUGIN_CONNECTION env:ANSIBLE_INVENTORY_CACHE_CONNECTION | Данные или путь к подключению к кешу, см. документацию плагина кеша для подробностей. | |
| cache_plugin строка | Значение по умолчанию: "memory" | записи 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 список / элементы=строка | Список пар значений фильтра. Доступные фильтры перечислены здесь https://cloud.google.com/compute/docs/reference/rest/v1/instances/aggregatedList. Каждый дополнительный фильтр в списке будет добавлен как условие И (filter1 и filter2) | ||
| folders список / элементы=строка | Папка, содержащая множество проектов | ||
| groups словарь | Значение по умолчанию: {} | Добавить хосты в группу на основе условных выражений Jinja2. | |
| hostnames список / элементы=строка | Значение по умолчанию: ["public_ip", "private_ip", "name"] | Список опций, описывающих порядок назначения имен хостов. В настоящее время поддерживаются имена хостов 'public_ip', 'private_ip' или 'name'. | |
| keyed_groups список / элементы=строка | Значение по умолчанию: [] | Добавить хосты в группу на основе значений переменной. | |
| plugin строка / обязательно |
| токен, гарантирующий, что это исходный файл для плагина 'gcp_compute'. | |
| projects список / элементы=строка | Список проектов, в которых описываются экземпляры GCE. | ||
| retrieve_image_info булево добавлено в 2.8 google.cloud |
| Заполнить факт хоста image для возвращаемых экземпляров с именем образа GCP.По умолчанию этот плагин не пытается определить загрузочный образ экземпляра в каталоге имен образов GCP из-за накладных расходов на задачу. Если эта опция не включена, переменная хоста image будет null | |
| scopes список / элементы=строка | Значение по умолчанию: ["https://www.googleapis.com/auth/compute"] | env:GCP_SCOPES добавлено в 2.8.2 google.cloud | список областей аутентификации |
| service_account_contents строка добавлено в 2.8.2 google.cloud | env:GCP_SERVICE_ACCOUNT_CONTENTS | Строка, представляющая содержимое JSON-файла учетной записи службы. Это не должно передаваться как словарь, а строка с точным содержимым файла service account json (валидный JSON). | |
| service_account_email строка | env:GCP_SERVICE_ACCOUNT_EMAIL добавлено в 2.8.2 google.cloud | Дополнительный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | env:GCP_SERVICE_ACCOUNT_FILE добавлено в 2.8.2 google.cloud env:GCE_CREDENTIALS_FILE_PATH добавлено в 2.8 google.cloud | Путь к JSON-файлу учетной записи службы, если для типа выбрано serviceaccount. | |
| strict булево |
| Если yes сделать недопустимые записи ошибкой, иначе пропустить и продолжить.Поскольку возможно использование фактов в выражениях, они могут быть недоступны, поэтому эти ошибки игнорируются по умолчанию. | |
| use_contrib_script_compatible_sanitization булево добавлено в 2.8 google.cloud |
| По умолчанию этот плагин использует общую очистку имён групп для создания безопасных и удобных имён групп для использования в Ansible. Эта опция позволяет переопределить это для миграции со старого скрипта инвентаризации. Для этого также необходимо отключить параметр TRANSFORM_INVALID_GROUP_CHARS, иначе ядро просто использует стандартную очистку сверху. Это не значение по умолчанию, так как такие имена нарушают определённые функции, поскольку не все символы являются допустимыми идентификаторами Python, которые в итоге используются для имён групп. | |
| vars_prefix строка | Значение по умолчанию: "" | Префикс для применения к переменным хоста, не включает факты и параметры | |
| zones список / элементы=строка | Список регионов, в которых описываются экземпляры GCE. Если не указано, по умолчанию используются все доступные зоны для данного проекта. |
Примеры
plugin: google.cloud.gcp_compute
zones: # populate inventory with instances in these regions
- us-east1-a
projects:
- gcp-prod-gke-100
- gcp-cicd-101
filters:
- machineType = n1-standard-1
- scheduling.automaticRestart = true AND machineType = n1-standard-1
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
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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/google/cloud/gcp_compute_inventory.html