Spec-Zone.ru › Ansible 2.10

google.cloud.gcp_compute_forwarding_rule – Создаёт GCP ForwardingRule

Примечание

Этот плагин входит в коллекцию google.cloud (версия 1.0.1).

Для его установки используйте: ansible-galaxy collection install google.cloud.

Для использования в плейбуке укажите: google.cloud.gcp_compute_forwarding_rule.

  • Описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Описание

  • Ресурс ForwardingRule. Ресурс ForwardingRule указывает, к какому пулу целевых виртуальных машин следует перенаправить пакет, если он соответствует заданной кортеже [IPAddress, IPProtocol, portRange].

Требования

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

  • python >= 2.6
  • requests >= 2.18.4
  • google-auth >= 1.3.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
all_ports
boolean
    Варианты:
  • no
  • yes
Для внутреннего балансирования нагрузки TCP/UDP (т.е. схема балансировки нагрузки INTERNAL и протокол TCP/UDP), установите значение в true, чтобы разрешить пересылку пакетов, адресованных любому порту, на бэкенды, настроенные с этой правилом пересылки. Используется с сервисом бэкенда. Не может быть установлено, если заданы значения port или portRange.
allow_global_access
boolean
    Варианты:
  • no
  • yes
Если true, клиенты могут получить доступ к ILB из всех регионов.
В противном случае доступ разрешен только из локального региона, в котором находится ILB.
auth_kind
string / обязательно
    Варианты:
  • application
  • machineaccount
  • serviceaccount
Тип используемых учетных данных.
backend_service
dictionary
Сервис бэкенда для приема совпавшего трафика. Используется только для внутреннего балансирования нагрузки.
Это поле представляет ссылку на ресурс BackendService в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя_ресурса` в задачу gcp_compute_backend_service, а затем установить это поле backend_service в "{{ имя_ресурса }}"
description
string
Необязательное описание этого ресурса. Укажите это свойство при создании ресурса.
env_type
string
Указывает, в какой среде Ansible вы выполняете этот модуль.
Это не следует устанавливать, если вы не знаете, что делаете.
Это влияет только на строку User Agent для любых запросов к API.
ip_address
string
IP-адрес, который обслуживает это правило пересылки от имени.
Адреса ограничены схемой балансировки нагрузки правила пересылки (EXTERNAL или INTERNAL) и областью (глобальной или региональной).
Когда схема балансировки EXTERNAL, для глобальных правил пересылки адрес должен быть глобальным IP-адресом, а для региональных правил пересылки — адрес должен находиться в том же регионе, что и правило пересылки. Если это поле пустое, будет назначен временный IPv4-адрес из той же области (глобальной или региональной). Региональное правило пересылки поддерживает только IPv4. Глобальное правило пересылки поддерживает IPv4 или IPv6.
Когда схема балансировки INTERNAL, это может быть только IP-адрес RFC 1918, принадлежащий сети/подсети, настроенной для правила пересылки. По умолчанию, если это поле пустое, будет автоматически выделен временный внутренний IP-адрес из диапазона IP-адресов подсети или сети, настроенной для данного правила пересылки.
Адрес может быть указан либо как буква IP-адрес, либо как ссылка URL на существующий ресурс Address. Следующие примеры допустимы: * 100.1.2.3 * https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address * projects/project/regions/region/addresses/address * regions/region/addresses/address * global/addresses/address * address .
ip_protocol
string
IP-протокол, к которому применяется это правило.
При схеме балансировки INTERNAL только TCP и UDP являются допустимыми.
Некоторые допустимые варианты включают: "TCP", "UDP", "ESP", "AH", "SCTP", "ICMP"
load_balancing_scheme
string
Это указывает, для чего будет использоваться ForwardingRule, и может быть EXTERNAL, INTERNAL или INTERNAL_MANAGED. EXTERNAL используется для шлюзов Classic Cloud VPN, пересылки протоколов на ВМ с внешнего IP-адреса и HTTP(S), SSL Proxy, TCP Proxy и балансировщиков сети TCP/UDP.
INTERNAL используется для пересылки протоколов на ВМ с внутреннего IP-адреса и внутренних балансировщиков TCP/UDP.
INTERNAL_MANAGED используется для внутренних балансировщиков HTTP(S).
Некоторые допустимые варианты включают: "EXTERNAL", "INTERNAL", "INTERNAL_MANAGED"
name
string / обязательно
Имя ресурса; предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. Конкретно, имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире.
network
dictionary
Для внутреннего балансирования нагрузки это поле определяет сеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для данного правила пересылки. Если это поле не указано, используется сеть по умолчанию.
Это поле используется только для внутреннего балансирования нагрузки.
Это поле представляет ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя_ресурса` в задачу gcp_compute_network, а затем установить это поле network в "{{ имя_ресурса }}"
network_tier
string
Уровень сети, используемый для настройки этого адреса. Если это поле не указано, предполагается, что оно PREMIUM.
Некоторые допустимые варианты включают: "PREMIUM", "STANDARD"
port_range
string
Это поле используется вместе с полем target для TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
Применимо только в том случае, если IPProtocol — TCP, UDP или SCTP; только пакеты, адресованные портам в указанном диапазоне, будут пересылаться на целевой объект.
Правила пересылки с одинаковой парой [IPAddress, IPProtocol] должны иметь непересекающиеся диапазоны портов.
Некоторые типы целевых объектов пересылки имеют ограничения на допустимые порты: * TargetHttpProxy: 80, 8080 * TargetHttpsProxy: 443 * TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetVpnGateway: 500, 4500 .
ports
list / elements=string
Это поле используется вместе с полем backend_service для внутреннего балансирования нагрузки.
При схеме балансировки INTERNAL можно настроить отдельный порт или список портов, разделенных запятыми. Только пакеты, адресованные этим портам, будут пересылаться на бэкенды, настроенные с этим правилом пересылки.
Вы можете указать не более 5 портов.
project
string
Проект Google Cloud Platform, который нужно использовать.
region
string / обязательно
Ссылка на регион, в котором находится региональное правило пересылки.
Это поле не применимо к глобальным правилам пересылки.
scopes
list / elements=string
Массив используемых областей
service_account_contents
jsonarg
Содержимое JSON-файла учетной записи сервиса, либо в виде словаря, либо как JSON-строка, его представляющая.
service_account_email
string
Необязательный адрес электронной почты учетной записи сервиса, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию.
service_account_file
путь
Путь к JSON-файлу учетной записи сервиса, если в качестве типа выбран serviceaccount.
service_label
string
Необязательный префикс имени сервиса для данного правила пересылки.
Если указан, будет первым тегом полностью квалифицированного имени сервиса.
Тег должен иметь длину от 1 до 63 символов и соответствовать RFC1035.
Конкретно, тег должен иметь длину от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире.
Это поле используется только для внутреннего балансирования нагрузки.
state
string
    Варианты:
  • present ←
  • absent
Требуется ли наличие данного объекта в GCP
subnetwork
dictionary
Подсеть, к которой должен принадлежать сбалансированный по нагрузке IP-адрес для данного правила пересылки. Это поле используется только для внутреннего балансирования нагрузки.
Если указанная сеть находится в режиме автоматической подсети, это поле необязательно. Однако, если сеть находится в режиме настраиваемой подсети, подсеть необходимо указать.
Это поле представляет ссылку на ресурс Subnetwork в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя_ресурса` в задачу gcp_compute_subnetwork, а затем установить это поле subnetwork в "{{ имя_ресурса }}"
target
string
URL целевого ресурса для приема совпавшего трафика.
Целевой ресурс должен находиться в том же регионе, что и правило пересылки.
Пересылаемый трафик должен быть подходящего типа для целевого объекта.

Примечания

Примечание

  • Ссылка на API: https://cloud.google.com/compute/docs/reference/v1/forwardingRules
  • Официальная документация: https://cloud.google.com/compute/docs/load-balancing/network/forwarding-rules
  • для аутентификации можно установить service_account_file с помощью переменной среды gcp_service_account_file.
  • для аутентификации можно установить service_account_contents с помощью переменной среды GCP_SERVICE_ACCOUNT_CONTENTS.
  • Для аутентификации можно установить service_account_email с помощью переменной среды GCP_SERVICE_ACCOUNT_EMAIL.
  • Для аутентификации можно установить auth_kind с помощью переменной среды GCP_AUTH_KIND.
  • Для аутентификации можно установить scopes с помощью переменной среды GCP_SCOPES.
  • Значения переменных среды будут использоваться только в том случае, если значения в плейбуке не заданы.
  • Параметры service_account_email и service_account_file взаимоисключающие.

Примеры

- name: create a address
  google.cloud.gcp_compute_address:
    name: address-forwardingrule
    region: us-west1
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: address

- name: create a target pool
  google.cloud.gcp_compute_target_pool:
    name: targetpool-forwardingrule
    region: us-west1
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: targetpool

- name: create a forwarding rule
  google.cloud.gcp_compute_forwarding_rule:
    name: test_object
    region: us-west1
    target: "{{ targetpool }}"
    ip_protocol: TCP
    port_range: 80-80
    ip_address: "{{ address.address }}"
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

Значения возврата

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

Ключ Возвращаемое значение Описание
allowGlobalAccess
boolean
success
Если true, клиенты могут получить доступ к ILB из всех регионов.
В противном случае доступ разрешен только из локального региона, в котором находится ILB.

allPorts
boolean
success
Для внутренней балансировки нагрузки TCP/UDP (т.е. схема балансировки нагрузки INTERNAL, протокол TCP/UDP), установите значение true, чтобы разрешить передачу пакетов, адресованных любым портам, на бэкенды, настроенные с помощью данного правила маршрутизации. Используется с back-end сервисом. Не может быть установлено, если заданы port или portRange.

backendService
dictionary
success
BackendService для приема сопоставленного трафика. Используется только для внутренней балансировки нагрузки.

creationTimestamp
string
success
Дата и время создания в формате RFC3339.

description
string
success
Необязательное описание этого ресурса. Укажите это свойство при создании ресурса.

id
integer
success
Уникальный идентификатор ресурса.

IPAddress
string
success
IP-адрес, на котором это правило маршрутизации обслуживает трафик.
Адреса ограничены схемой балансировки нагрузки правила маршрутизации (EXTERNAL или INTERNAL) и областью (глобальной или региональной).
При схеме балансировки EXTERNAL для глобальных правил маршрутизации адрес должен быть глобальным IP-адресом, а для региональных правил маршрутизации - в том же регионе, что и правило маршрутизации. Если это поле пустое, будет назначен временный IPv4-адрес из той же области (глобальной или региональной). Региональное правило маршрутизации поддерживает только IPv4. Глобальное правило маршрутизации поддерживает IPv4 или IPv6.
При схеме балансировки INTERNAL это может быть только IP-адрес RFC 1918, принадлежащий сети/подсети, настроенной для правила маршрутизации. По умолчанию, если это поле пустое, будет автоматически выделен временный внутренний IP-адрес из диапазона IP-адресов подсети или сети, настроенной для данного правила маршрутизации.
Адрес можно указать как литеральный IP-адрес или ссылкой на существующий ресурс Address. Следующие примеры являются допустимыми: * 100.1.2.3 * https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address * projects/project/regions/region/addresses/address * regions/region/addresses/address * global/addresses/address * address .

IPProtocol
string
success
IP-протокол, к которому применяется это правило.
При схеме балансировки INTERNAL допустимы только TCP и UDP.

loadBalancingScheme
string
success
Это указывает, для чего будет использоваться ForwardingRule, и может быть EXTERNAL, INTERNAL или INTERNAL_MANAGED. EXTERNAL используется для классических шлюзов VPN Cloud, проксирования протоколов на виртуальные машины с внешнего IP-адреса и HTTP(S), SSL Proxy, TCP Proxy и балансировщиками сети TCP/UDP.
INTERNAL используется для проксирования протоколов на виртуальные машины с внутреннего IP-адреса и внутренних балансировщиков TCP/UDP.
INTERNAL_MANAGED используется для внутренних балансировщиков HTTP(S).

name
string
success
Имя ресурса; предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. Конкретно, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире.

network
dictionary
success
Для внутренней балансировки нагрузки это поле определяет сеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для данного правила маршрутизации. Если это поле не указано, будет использоваться сеть по умолчанию.
Это поле используется только для внутренней балансировки нагрузки.

networkTier
string
success
Уровень сети, используемый для настройки этого адреса. Если это поле не указано, предполагается, что это PREMIUM.

portRange
string
success
Это поле используется вместе с полем target для TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance.
Применимо только когда IPProtocol равен TCP, UDP или SCTP, только пакеты, адресованные портам в указанном диапазоне, будут пересылаться целевым устройствам.
Правила маршрутизации с одинаковой парой [IPAddress, IPProtocol] должны иметь непересекающиеся диапазоны портов.
Некоторые типы целевых устройств имеют ограничения по допустимым портам: * TargetHttpProxy: 80, 8080 * TargetHttpsProxy: 443 * TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 5222 * TargetVpnGateway: 500, 4500 .

ports
list / elements=string
success
Это поле используется вместе с полем backend_service для внутренней балансировки нагрузки.
При схеме балансировки INTERNAL можно настроить один порт или список портов, разделенных запятыми. Только пакеты, адресованные этим портам, будут пересылаться бэкендам, настроенным с помощью данного правила маршрутизации.
Можно указать не более 5 портов.

region
string
success
Ссылка на регион, в котором находится региональное правило маршрутизации.
Это поле не применимо к глобальным правилам маршрутизации.

serviceLabel
string
success
Необязательный префикс к имени службы для этого правила маршрутизации.
Если указано, будет первым меткой полностью квалифицированного имени службы.
Метка должна быть длиной от 1 до 63 символов и соответствовать RFC1035.
Конкретно, метка должна быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире.
Это поле используется только для внутренней балансировки нагрузки.

serviceName
string
success
Внутреннее полное имя службы для данного правила маршрутизации.
Это поле используется только для внутренней балансировки нагрузки.

subnetwork
dictionary
success
Подсеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для данного правила маршрутизации. Это поле используется только для внутренней балансировки нагрузки.
Если указанная сеть находится в режиме автоматической подсети, это поле необязательно. Однако, если сеть находится в режиме подсети с пользовательской настройкой, подсеть необходимо указать.

target
string
success
URL целевого ресурса для приема сопоставленного трафика.
Целевой ресурс должен находиться в том же регионе, что и правило маршрутизации.
Пересылаемый трафик должен соответствовать типу целевого объекта.



Авторы

  • Google Inc. (@googlecloudplatform)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/google/cloud/gcp_compute_forwarding_rule_module.html

Spec-Zone.ru

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