gcp_compute – Google Cloud Compute Engine инвентаризация источника
Обзор
- Получение хостов инвентаризации из 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 | Тип используемых учетных данных. |
| 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) | ||
| 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 |
| Заполнение факта хоста image для возвращаемых экземпляров именем изображения GCPПо умолчанию этот плагин не пытается определить загрузку изображения экземпляра в каталог каталогов GCP из-за накладных расходов на задачу. Если эта опция не включена, переменная хоста image будет null | |
| scopes список | По умолчанию: ["https://www.googleapis.com/auth/compute"] | env:GCP_SCOPES | Список областей аутентификации |
| service_account_contents строка добавлен в 2.8.2 | env:GCP_SERVICE_ACCOUNT_CONTENTS | Строка, представляющая содержимое файла JSON учетной записи службы. Не следует передавать этот параметр как словарь, а строку с точным содержимым файла JSON учетной записи службы (валидный JSON). | |
| service_account_email - | env:GCP_SERVICE_ACCOUNT_EMAIL | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | env:GCP_SERVICE_ACCOUNT_FILE env:GCE_CREDENTIALS_FILE_PATH | Путь к файлу JSON учетной записи службы, если тип выбран serviceaccount. | |
| strict логический |
| Если yes сделать неверные записи ошибкой, иначе пропустить и продолжить.Поскольку в выражениях можно использовать факты, они могут не всегда быть доступны, и мы игнорируем эти ошибки по умолчанию. | |
| use_contrib_script_compatible_sanitization логический добавлен в 2.8 |
| По умолчанию этот плагин использует стандартную очистку имени группы для создания безопасных и пригодных для использования имен групп в Ansible. Эта опция позволяет переопределить это, чтобы позволить миграцию со старого скрипта инвентаризации. Для этого также нужно отключить настройку TRANSFORM_INVALID_GROUP_CHARS, в противном случае ядро просто использует стандартную очистку поверх неё. Это не по умолчанию, поскольку такие имена нарушают определенную функциональность, так как не все символы являются допустимыми идентификаторами Python, которые используются в именах групп. | |
| vars_prefix - | По умолчанию: "" | Префикс, применяемый к переменным хоста, не включает факты и параметры | |
| zones список | Список регионов, в которых необходимо описать экземпляры GCE. Если не указано, по умолчанию используются все доступные зоны для данного проекта. |
Примеры
plugin: 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
Статус
- Этот инвентарь не гарантирует обратной совместимости. [preview]
- Этот инвентарь поддерживается сообществом Ansible. [community]
Авторы
- UNKNOWN
Подсказка
Если вы обнаружите какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
Подсказка
Элементы конфигурации для каждого типа имеют порядок приоритета от низкого к высокому. Например, переменная, которая находится ниже в списке, переопределит переменную, которая находится выше.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/inventory/gcp_compute.html