Модуль google.cloud.gcp_compute_network_endpoint_group – создание NetworkEndpointGroup в GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните команду ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для работы с этим модулем требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: google.cloud.gcp_compute_network_endpoint_group.
Обзор
- Группы сетевых конечных точек (NEG) — это зональные ресурсы, представляющие собой наборы комбинаций IP-адресов и портов для ресурсов GCP в пределах одной подсети. Каждая комбинация IP-адреса и порта называется сетевой конечной точкой.
- Группы сетевых конечных точек можно использовать в качестве серверных частей сервисов для балансировщиков нагрузки HTTP(S), TCP-прокси и SSL-прокси. Нельзя использовать NEG в качестве серверной части внутренних балансировщиков нагрузки. Поскольку серверные части NEG позволяют указывать IP-адреса и порты, трафик можно распределять с высокой точностью между приложениями или контейнерами, работающими в экземплярах виртуальных машин.
- Повторное создание группы сетевых конечных точек, используемой другим ресурсом, приведёт к ошибке `resourceInUseByAnotherResource`. Используйте `lifecycle.create_before_destroy`, чтобы избежать ошибки этого типа.
Требования
На узле, выполняющем этот модуль, необходимы следующие компоненты.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если тип учётных данных — accesstoken. |
auth_kind string / обязательный | Тип используемых учётных данных. Варианты:
|
default_port integer | Порт по умолчанию, используемый, если номер порта не указан в сетевой конечной точке. |
description string | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
env_type string | Указывает, в какой среде Ansible выполняется этот модуль. Не задавайте это значение, если не знаете, что делаете. Это значение влияет только на строку User Agent во всех запросах API. |
name string / обязательный | Имя ресурса, задаваемое клиентом при его создании. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, кроме последнего символа, которым не может быть дефис. |
network dictionary / обязательный | Сеть, к которой относятся все сетевые конечные точки в NEG. Если значение не задано, используется сеть проекта «default». Это поле представляет ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом ‘selfLink’ и значением selfLink ресурса. Также можно добавить `register: name-of-resource` в задачу gcp_compute_network, а затем задать для этого поля network значение “{{ name-of-resource }}” |
network_endpoint_type string | Тип сетевых конечных точек в этой группе сетевых конечных точек. Допустимые варианты: “GCE_VM_IP_PORT” По умолчанию: |
project string | Проект Google Cloud Platform, который следует использовать. |
scopes list / элементы=string | Массив используемых областей доступа |
service_account_contents jsonarg | Содержимое JSON-файла учётной записи службы в виде словаря или JSON-строки, представляющей его. |
service_account_email string | Необязательный адрес электронной почты учётной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file path | Путь к JSON-файлу учётной записи службы, если в качестве типа выбрано serviceaccount. |
state string | Должен ли указанный объект существовать в GCP Варианты:
|
subnetwork dictionary | Необязательная подсеть, к которой относятся все сетевые конечные точки в NEG. Это поле представляет ссылку на ресурс Subnetwork в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом ‘selfLink’ и значением selfLink ресурса. Также можно добавить `register: name-of-resource` в задачу gcp_compute_subnetwork, а затем задать для этого поля subnetwork значение “{{ name-of-resource }}” |
zone string / обязательный | Зона, в которой находится группа сетевых конечных точек. |
Примечания
Примечание
- Справочник API: https://cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups
- Официальная документация: https://cloud.google.com/load-balancing/docs/negs/
- для аутентификации можно задать service_account_file с помощью переменной окружения
GCP_SERVICE_ACCOUNT_FILE. - для аутентификации можно задать service_account_contents с помощью переменной окружения
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно задать service_account_email с помощью переменной окружения
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно задать access_token с помощью переменной окружения
GCP_ACCESS_TOKEN. - Для аутентификации можно задать auth_kind с помощью переменной окружения
GCP_AUTH_KIND. - Для аутентификации можно задать scopes с помощью переменной окружения
GCP_SCOPES. - Значения переменных окружения используются только в том случае, если значения не заданы в плейбуке.
- Параметры service_account_email и service_account_file являются взаимоисключающими.
Примеры
- name: create a network
google.cloud.gcp_compute_network:
name: "{{ resource_name }}"
auto_create_subnetworks: 'false'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a subnetwork
google.cloud.gcp_compute_subnetwork:
name: "{{ resource_name }}"
ip_cidr_range: 10.0.0.0/16
region: us-central1
network: "{{ network }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: subnetwork
- name: create a network endpoint group
google.cloud.gcp_compute_network_endpoint_group:
name: test_object
network: "{{ network }}"
subnetwork: "{{ subnetwork }}"
default_port: 90
zone: us-central1-a
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
defaultPort integer | Порт по умолчанию, используемый, если номер порта не указан в сетевой конечной точке. Возвращается: при успешном выполнении |
description string | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. Возвращается: при успешном выполнении |
id integer | Уникальный идентификатор ресурса. Возвращается: при успешном выполнении |
name string | Имя ресурса, задаваемое клиентом при его создании. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, кроме последнего символа, которым не может быть дефис. Возвращается: при успешном выполнении |
network dictionary | Сеть, к которой относятся все сетевые конечные точки в NEG. Если значение не задано, используется сеть проекта «default». Возвращается: при успешном выполнении |
networkEndpointType string | Тип сетевых конечных точек в этой группе сетевых конечных точек. Возвращается: при успешном выполнении |
size integer | Количество сетевых конечных точек в группе сетевых конечных точек. Возвращается: при успешном выполнении |
subnetwork dictionary | Необязательная подсеть, к которой относятся все сетевые конечные точки в NEG. Возвращается: при успешном выполнении |
zone string | Зона, в которой находится группа сетевых конечных точек. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 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_network_endpoint_group_module.html