Spec-Zone.ru › Ansible

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.

Настройка:

  • Переменная среды: 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. Каждый дополнительный фильтр в списке добавляется как условие И (filter1 и filter2)

folders

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

Папка, содержащая множество проектов

groups

словарь

Добавить хосты в группу на основе условных выражений Jinja2.

По умолчанию: {}

hostnames

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

Список параметров, определяющих порядок назначения имен хостов. В настоящее время поддерживаются имена хостов «public_ip», «private_ip», «name» или «labels.vm_name».

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

keyed_groups

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

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

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

default_value

строка

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

Значение по умолчанию, когда значение переменной хоста — пустая строка.

Этот параметр взаимоисключающий с keyed_groups[].trailing_separator.

key

строка

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

parent_group

строка

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

prefix

строка

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

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

separator

строка

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

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

trailing_separator

логическое

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

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

Этот параметр несовместим с keyed_groups[].default_value.

Варианты:

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

leading_separator

логическое

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

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

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

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

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

Если имя группы получено из отображения, разделитель по-прежнему используется для конкатенации элементов.

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

Варианты:

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

name_suffix

строка

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

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

plugin

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

токен, который гарантирует, что это файл исходного кода для плагина «gcp_compute».

Варианты:

  • "google.cloud.gcp_compute"
  • "gcp_compute"

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

boolean

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

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

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

Варианты:

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

use_extra_vars

boolean

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

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

Варианты:

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

Настройка:

  • Запись INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная среды: ANSIBLE_INVENTORY_USE_EXTRA_VARS

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

Spec-Zone.ru

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