google.cloud.gcp_compute инвентаризация – Источник инвентаризации Google Cloud Compute Engine
Примечание
Этот плагин инвентаризации входит в состав коллекции google.cloud (версия 1.4.1).
Возможно, эта коллекция уже установлена, если вы используете пакет 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. Каждый дополнительный фильтр в списке добавляется как условие И (filter1 и filter2) |
folders список / элементы=строка | Папка, содержащая множество проектов |
groups словарь | Добавить хосты в группу на основе условных выражений Jinja2. По умолчанию: |
hostnames список / элементы=строка | Список параметров, определяющих порядок назначения имен хостов. В настоящее время поддерживаются имена хостов «public_ip», «private_ip», «name» или «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 | Используйте вместе с keyed_groups. По умолчанию группа с ключами, для которой не задан префикс или разделитель, будет иметь имя, начинающееся с подчеркивания. Это связано с тем, что по умолчанию префикс — «», а разделитель — «_». Установите этот параметр в значение False, чтобы опустить ведущий символ подчеркивания (или другой разделитель), если префикс не задан. Если имя группы получено из отображения, разделитель по-прежнему используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель для группы с ключами в пустую строку. Варианты:
|
name_suffix строка | Пользовательский суффикс домена. Если задано, эта строка будет добавляться ко всем хостам. По умолчанию: |
plugin строка / обязательно | токен, который гарантирует, что это файл исходного кода для плагина «gcp_compute». Варианты:
|
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 boolean | По умолчанию этот плагин использует общую санэтилизацию имени группы для создания безопасных и удобных имён групп для использования в Ansible. Этот параметр позволяет переопределить это, чтобы разрешить миграцию со старого скрипта инвентаризации. Для этого необходимо также отключить настройку TRANSFORM_INVALID_GROUP_CHARS, в противном случае ядро использует стандартную санэтилизацию поверх. Это не по умолчанию, так как такие имена нарушают определённую функциональность, поскольку не все символы являются допустимыми идентификаторами Python, которыми в конечном итоге являются имена групп. Варианты:
|
use_extra_vars boolean добавлен в ansible-core 2.11 | Объединяет дополнительные переменные в доступные переменные для композиции (с наивысшим приоритетом). Варианты:
Настройка:
|
vars_prefix string | Префикс, применяемый к переменным хоста, не включает факты и параметры По умолчанию: |
zones list / элементы=string | Список регионов, в которых необходимо описать экземпляры 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:
- 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/google/cloud/gcp_compute_inventory.html