google.cloud.gcp_compute – Источник инвентаризации Google Cloud Compute Engine
Примечание
Этот плагин входит в коллекцию google.cloud (версия 1.0.2).
Для его установки используйте: 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 список / элементы=строка | Значение по умолчанию: [] | Добавление хостов в группу на основе значений переменной. | |
| leading_separator логическое добавлено в 2.11 ansible.builtin |
| Используется в сочетании с keyed_groups. По умолчанию имя ключированной группы, не имеющей префикса или разделителя, начинается с подчеркивания. Это потому, что префикс по умолчанию равен "", а разделитель по умолчанию равен "_". Установите этот параметр в значение False, чтобы опустить начальное подчеркивание (или другой разделитель), если префикс не задан. Если имя группы получено из отображения, разделитель по-прежнему используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель для ключированной группы на пустую строку. | |
| 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 учетной записи сервиса. Не передавайте это как словарь, а строку с точным содержимым файла 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, которые используются в именах групп. | |
| use_extra_vars логическое добавлено в 2.11 ansible.builtin |
| записи в ini: [inventory_plugins] env:ANSIBLE_INVENTORY_USE_EXTRA_VARS | Слияние дополнительных переменных в доступные переменные для композиции (самый высокий приоритет). |
| 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_compute_inventory.html