модуль google.cloud.gcp_compute_forwarding_rule — создание ForwardingRule в GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в playbook, укажите: google.cloud.gcp_compute_forwarding_rule.
Краткое описание
- Ресурс ForwardingRule. Ресурс ForwardingRule указывает, в какой пул целевых виртуальных машин следует перенаправить пакет, если он соответствует заданному кортежу [IPAddress, IPProtocol, portRange].
Требования
На узле, выполняющем этот модуль, необходимы следующие компоненты.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если тип учетных данных — accesstoken. |
all_ports boolean | Для внутренней балансировки нагрузки TCP/UDP (то есть схема балансировки нагрузки — INTERNAL, а протокол — TCP/UDP) задайте значение true, чтобы пакеты, адресованные на любые порты, перенаправлялись к серверным частям, настроенным с помощью этого правила переадресации. Используется с сервисом backend. Нельзя задавать, если указаны port или portRange. Варианты:
|
allow_global_access boolean | Если значение равно true, клиенты могут обращаться к ILB из всех регионов. В противном случае доступ разрешен только из локального региона, в котором расположен ILB. Варианты:
|
auth_kind string / обязательный | Тип используемых учетных данных. Варианты:
|
backend_service dictionary | Сервис BackendService, который будет получать соответствующий трафик. Используется только для внутренней балансировки нагрузки. Это поле представляет ссылку на ресурс BackendService в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink вашего ресурса. Кроме того, можно добавить `register: name-of-resource` в задачу gcp_compute_backend_service, а затем задать этому полю backend_service значение “{{ name-of-resource }}” |
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” |
is_mirroring_collector boolean | Указывает, можно ли использовать этот балансировщик нагрузки в качестве сборщика для зеркалирования пакетов. Чтобы предотвратить циклы зеркалирования, трафик экземпляров за этим балансировщиком нагрузки зеркалироваться не будет, даже если к ним применяется правило PacketMirroring. Значение true можно задать только для балансировщиков нагрузки, у которых для loadBalancingScheme установлено значение INTERNAL. Варианты:
|
load_balancing_scheme string | Указывает назначение ForwardingRule. Возможные значения: EXTERNAL, INTERNAL или INTERNAL_MANAGED. EXTERNAL используется для классических шлюзов Cloud VPN, переадресации протоколов к виртуальным машинам с внешнего IP-адреса, а также для балансировщиков нагрузки HTTP(S), SSL Proxy, TCP Proxy и Network 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: name-of-resource` в задачу gcp_compute_network, а затем задать этому полю network значение “{{ name-of-resource }}” |
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 path | Путь к JSON-файлу учетной записи службы, если в качестве типа выбрано serviceaccount. |
service_label string | Необязательный префикс имени службы для этого правила переадресации. Если он задан, это будет первая метка полного имени службы. Метка должна содержать от 1 до 63 символов и соответствовать RFC1035. В частности, метка должна содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Это поле используется только для внутренней балансировки нагрузки. |
state string | Указывает, должен ли данный объект существовать в GCP Варианты:
|
subnetwork dictionary | Подсеть, которой должен принадлежать IP-адрес балансировки нагрузки для этого правила переадресации. Это поле используется только для внутренней балансировки нагрузки. Если для указанной сети включен автоматический режим подсетей, это поле необязательно. Однако если для сети используется пользовательский режим подсетей, необходимо указать подсеть. Это поле представляет ссылку на ресурс Subnetwork в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink вашего ресурса. Кроме того, можно добавить `register: name-of-resource` в задачу gcp_compute_subnetwork, а затем задать этому полю subnetwork значение “{{ name-of-resource }}” |
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. - Для аутентификации можно задать access_token с помощью переменной окружения
GCP_ACCESS_TOKEN. - Для аутентификации можно задать auth_kind с помощью переменной окружения
GCP_AUTH_KIND. - Для аутентификации можно задать scopes с помощью переменной окружения
GCP_SCOPES. - Значения переменных окружения используются только в том случае, если значения playbook не заданы.
- Параметры 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 | Если значение true, клиенты могут обращаться к ILB из всех регионов. В противном случае доступ разрешён только из региона, в котором находится ILB. Возвращается: при успешном выполнении |
allPorts boolean | Для внутренней балансировки нагрузки TCP/UDP (то есть схема балансировки нагрузки — INTERNAL, а протокол — TCP/UDP) задайте значение true, чтобы разрешить пересылку пакетов, адресованных на любые порты, к бэкендам, настроенным с этим правилом переадресации. Используется с сервисом бэкенда. Нельзя задать, если указаны port или portRange. Возвращается: при успешном выполнении |
backendService dictionary | BackendService, который будет принимать соответствующий трафик. Используется только для внутренней балансировки нагрузки. Возвращается: при успешном выполнении |
creationTimestamp string | Временная метка создания в текстовом формате RFC3339. Возвращается: при успешном выполнении |
description string | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. Возвращается: при успешном выполнении |
id integer | Уникальный идентификатор ресурса. Возвращается: при успешном выполнении |
IPAddress 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 . Возвращается: при успешном выполнении |
IPProtocol string | IP-протокол, к которому применяется это правило. Если схема балансировки нагрузки — INTERNAL, допустимы только TCP и UDP. Возвращается: при успешном выполнении |
isMirroringCollector boolean | Указывает, можно ли использовать этот балансировщик нагрузки в качестве сборщика для зеркалирования пакетов. Чтобы предотвратить циклы зеркалирования, трафик экземпляров за этим балансировщиком нагрузки не будет зеркалироваться, даже если к ним применяется правило PacketMirroring. Значение true можно задать только для балансировщиков нагрузки, у которых loadBalancingScheme имеет значение INTERNAL. Возвращается: при успешном выполнении |
loadBalancingScheme string | Определяет назначение ForwardingRule. Возможные значения: EXTERNAL, INTERNAL или INTERNAL_MANAGED. EXTERNAL используется для классических шлюзов Cloud VPN, переадресации протоколов на виртуальные машины с внешнего IP-адреса, а также для балансировщиков нагрузки HTTP(S), SSL Proxy, TCP Proxy и Network TCP/UDP. INTERNAL используется для переадресации протоколов на виртуальные машины с внутреннего IP-адреса и для внутренних балансировщиков нагрузки TCP/UDP. INTERNAL_MANAGED используется для внутренних балансировщиков нагрузки HTTP(S). Возвращается: при успешном выполнении |
name string | Имя ресурса, задаваемое клиентом при его создании. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Возвращается: при успешном выполнении |
network dictionary | При внутренней балансировке нагрузки это поле указывает сеть, которой должен принадлежать IP-адрес с балансировкой нагрузки для данного Forwarding Rule. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле используется только для внутренней балансировки нагрузки. Возвращается: при успешном выполнении |
networkTier string | Уровень сети, используемый при настройке этого адреса. Если это поле не указано, предполагается значение PREMIUM. Возвращается: при успешном выполнении |
portRange 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 портов. Возвращается: при успешном выполнении |
region string | Ссылка на регион, в котором находится региональное правило переадресации. Это поле не применяется к глобальным правилам переадресации. Возвращается: при успешном выполнении |
serviceLabel string | Необязательный префикс имени сервиса для этого Forwarding Rule. Если он указан, он станет первой меткой полного имени сервиса. Метка должна содержать от 1 до 63 символов и соответствовать RFC1035. В частности, метка должна содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Это поле используется только для внутренней балансировки нагрузки. Возвращается: при успешном выполнении |
serviceName string | Полное внутреннее имя сервиса для этого Forwarding Rule. Это поле используется только для внутренней балансировки нагрузки. Возвращается: при успешном выполнении |
subnetwork dictionary | Подсеть, которой должен принадлежать IP-адрес с балансировкой нагрузки для данного Forwarding Rule. Это поле используется только для внутренней балансировки нагрузки. Если указанная сеть использует режим автоматического создания подсетей, это поле необязательно. Однако если сеть использует пользовательский режим создания подсетей, необходимо указать подсеть. Возвращается: при успешном выполнении |
target string | URL целевого ресурса, который будет принимать соответствующий трафик. Целевой объект должен находиться в том же регионе, что и правило переадресации. Тип переадресуемого трафика должен соответствовать целевому объекту. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 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_forwarding_rule_module.html