Spec-Zone.ru › Ansible

Инвентаризация 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.

Конфигурация:

  • Переменная окружения: GCP_ACCESS_TOKEN

auth_kind

строка / обязательный

Тип используемых учётных данных.

Варианты:

  • "application"
  • "serviceaccount"
  • "machineaccount"
  • "accesstoken"

Конфигурация:

  • Переменная окружения: GCP_AUTH_KIND

cache

логическое значение

Включение или отключение кэширования исходных данных инвентаризации. Для работы требуется настроенный плагин кэша.

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Запись INI:

    [inventory]
    cache = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE

cache_connection

строка

Данные подключения к кэшу или путь к нему. Подробности см. в документации плагина кэша.

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching_connection = VALUE
    
    [inventory]
    cache_connection = VALUE
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_CONNECTION
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_CONNECTION

cache_plugin

строка

Плагин кэша для исходных данных инвентаризации.

По умолчанию: "memory"

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching = memory
    
    [inventory]
    cache_plugin = memory
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN

cache_prefix

строка

Префикс для файлов/таблиц плагина кэша.

По умолчанию: "ansible_inventory_"

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching_prefix = ansible_inventory_
    
    [inventory]
    cache_prefix = ansible_inventory_
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_PREFIX
  • Переменная окружения: ANSIBLE_INVENTORY_CACHE_PLUGIN_PREFIX

cache_timeout

целое число

Длительность хранения кэша в секундах.

По умолчанию: 3600

Конфигурация:

  • Записи INI:

    [defaults]
    fact_caching_timeout = 3600
    
    [inventory]
    cache_timeout = 3600
    
  • Переменная окружения: ANSIBLE_CACHE_PLUGIN_TIMEOUT
  • Переменная окружения: ANSIBLE_INVENTORY_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’.

По умолчанию: ["public_ip", "private_ip", "name"]

keyed_groups

список / элементы=словарь

Добавление узлов в группы на основе значений переменной.

По умолчанию: []

default_value

строка

добавлено в ansible-core 2.12

Значение по умолчанию, если значение переменной узла равно None или является пустой строкой.

Этот параметр нельзя использовать одновременно с keyed_groups[].trailing_separator.

key

строка

Ключ входного словаря, используемый для создания групп.

parent_group

строка

Родительская группа для группы по ключу.

prefix

строка

Имя группы по ключу будет начинаться с этого префикса.

По умолчанию: ""

separator

строка

Разделитель, используемый при формировании имени группы по ключу.

По умолчанию: "_"

trailing_separator

логическое значение

добавлено в ansible-core 2.12

Установите для этого параметра значение false, чтобы опустить keyed_groups[].separator после переменной узла, если её значение равно None или является пустой строкой.

Этот параметр нельзя использовать одновременно с keyed_groups[].default_value.

Варианты:

  • false
  • true ← (по умолчанию)

leading_separator

логическое значение

добавлено в ansible-core 2.11

Используется совместно с keyed_groups.

По умолчанию имя группы по ключу, для которой не заданы префикс или разделитель, начинается с подчёркивания.

Это связано с тем, что префикс по умолчанию — "", а разделитель по умолчанию — "_".

Установите для этого параметра значение false, чтобы опустить начальное подчёркивание (или другой разделитель), если префикс не задан.

Если имя группы формируется из соответствия, разделитель всё равно используется для объединения элементов.

Чтобы совсем не использовать разделитель в имени группы, задайте для группы по ключу пустую строку в качестве разделителя.

Варианты:

  • false
  • true ← (по умолчанию)

name_suffix

строка

Пользовательский суффикс домена. Если задан, эта строка добавляется ко всем узлам.

По умолчанию: ""

projects

список / элементы=строки

Список проектов, в которых следует описать экземпляры GCE.

retrieve_image_info

логическое значение

Заполнение факта узла image именем образа GCP для возвращённых экземпляров.

По умолчанию этот плагин не пытается сопоставить загрузочный образ экземпляра с именем образа в каталоге GCP, поскольку эта операция увеличивает нагрузку.

Если этот параметр не включён, переменная узла image будет иметь значение null.

Варианты:

  • false ← (по умолчанию)
  • true

scopes

список / элементы=строки

Список областей действия аутентификации.

По умолчанию: ["https://www.googleapis.com/auth/compute"]

Конфигурация:

  • Переменная окружения: GCP_SCOPES

service_account_contents

строка

Строка с содержимым JSON-файла учётной записи службы. Значение следует передавать не в виде словаря, а в виде строки с точным содержимым JSON-файла учётной записи службы (корректный JSON).

Конфигурация:

  • Переменная окружения: GCP_SERVICE_ACCOUNT_CONTENTS

service_account_email

строка

Необязательный адрес электронной почты учётной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию.

Конфигурация:

  • Переменная окружения: GCP_SERVICE_ACCOUNT_EMAIL

service_account_file

путь

Путь к JSON-файлу учётной записи службы, если в качестве типа выбрано serviceaccount.

Конфигурация:

  • Переменная окружения: GCP_SERVICE_ACCOUNT_FILE
  • Переменная окружения: GCE_CREDENTIALS_FILE_PATH

strict

логическое значение

Если yes, недопустимые записи вызывают критическую ошибку; в противном случае они пропускаются, а выполнение продолжается.

Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются.

Варианты:

  • false ← (по умолчанию)
  • true

use_contrib_script_compatible_sanitization

логическое значение

По умолчанию этот плагин использует общую очистку имён групп, чтобы создавать безопасные и пригодные для Ansible имена. Этот параметр позволяет изменить такое поведение, чтобы упростить переход со старого скрипта инвентаризации.

Для этого также следует отключить настройку TRANSFORM_INVALID_GROUP_CHARS, иначе ядро Ansible дополнительно применит стандартную очистку.

Это не является поведением по умолчанию, поскольку такие имена нарушают работу некоторых функций: не все символы допустимы в идентификаторах Python, которыми становятся имена групп.

Варианты:

  • false ← (по умолчанию)
  • true

use_extra_vars

логическое значение

добавлено в ansible-core 2.11

Объединение дополнительных переменных с доступными переменными для композиции (наивысший приоритет).

Варианты:

  • false ← (по умолчанию)
  • true

Конфигурация:

  • Запись INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная окружения: ANSIBLE_INVENTORY_USE_EXTRA_VARS

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API