модуль google.cloud.gcp_compute_global_forwarding_rule – создание GCP GlobalForwardingRule
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для работы с этим модулем требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: google.cloud.gcp_compute_global_forwarding_rule.
Краткое описание
- Представляет ресурс GlobalForwardingRule. Глобальные правила переадресации используются для передачи трафика соответствующему балансировщику нагрузки при балансировке HTTP-трафика. Глобальные правила переадресации можно использовать только для балансировки HTTP-трафика.
- Дополнительные сведения см. на странице https://cloud.google.com/compute/docs/load-balancing/http/ .
Требования
На хосте, выполняющем этот модуль, должны быть установлены следующие компоненты.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если тип учетных данных — accesstoken. |
auth_kind string / обязательный | Тип используемых учетных данных. Варианты:
|
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_SELF_MANAGED, допустим только TCP. Это поле нельзя задавать, если для глобального адреса указано назначение PRIVATE_SERVICE_CONNECT и addressType равен INTERNAL. Допустимые варианты: “TCP”, “UDP”, “ESP”, “AH”, “SCTP”, “ICMP” |
ip_version string | Версия IP, которая будет использоваться этим глобальным правилом переадресации. Допустимые варианты: “IPV4”, “IPV6” |
load_balancing_scheme string | Определяет назначение GlobalForwardingRule. Значение INTERNAL_SELF_MANAGED означает, что правило будет использоваться для внутренней глобальной балансировки HTTP(S)-нагрузки. Значение EXTERNAL означает, что правило будет использоваться для внешней глобальной балансировки нагрузки (HTTP(S) LB, External TCP/UDP LB, SSL Proxy) (только [бета-версия](https://terraform.io/docs/providers/google/guides/provider_versions.html)). Примечание: для глобального адреса с назначением PRIVATE_SERVICE_CONNECT и addressType INTERNAL это поле должно иметь значение “” . Допустимые варианты: “EXTERNAL”, “INTERNAL_SELF_MANAGED” По умолчанию: |
metadata_filters list / элементы=словарь | Непрозрачные критерии фильтрации, используемые балансировщиком нагрузки для ограничения конфигурации маршрутизации набором клиентов, совместимых с xDS. В запросах xDS к балансировщику нагрузки клиенты xDS передают метаданные узла. При совпадении соответствующая конфигурация маршрутизации становится доступна этим прокси-серверам. Для каждого metadataFilter в этом списке, если для filterMatchCriteria задано MATCH_ANY, как минимум одна из меток filterLabels должна совпадать с соответствующей меткой в метаданных. Если для filterMatchCriteria задано MATCH_ALL, все метки filterLabels должны совпадать с соответствующими метками в переданных метаданных. Указанные здесь metadataFilters можно переопределить значениями, заданными в UrlMap, на который ссылается это ForwardingRule. metadataFilters применяются только к балансировщикам нагрузки, для которых loadBalancingScheme задан как INTERNAL_SELF_MANAGED. |
|
filter_labels list / элементы=словарь / обязательный |
Список пар «метка — значение», которые должны совпадать с метками в переданных метаданных согласно filterMatchCriteria. Этот список не должен быть пустым и может содержать не более 64 элементов. |
|
name string / обязательный |
Имя метки метаданных. Длина должна составлять от 1 до 1024 символов включительно. |
|
value string / обязательный |
Значение, которому должна соответствовать метка. Максимальная длина значения — 1024 символа. |
|
filter_match_criteria string / обязательный |
Определяет, как совпадения отдельных filterLabel в списке filterLabels влияют на общее совпадение metadataFilter. MATCH_ANY — как минимум одна из меток filterLabels должна совпадать с меткой в переданных метаданных. MATCH_ALL — все метки filterLabels должны совпадать с метками в переданных метаданных. Допустимые варианты: “MATCH_ANY”, “MATCH_ALL” |
name string / обязательный | Имя ресурса, задаваемое клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной латинской буквой, а все последующие символы — дефисом, строчной латинской буквой или цифрой, за исключением последнего символа, которым не может быть дефис. |
network dictionary | Это поле не используется для внешней балансировки нагрузки. При балансировке нагрузки INTERNAL_SELF_MANAGED это поле определяет сеть, к которой должен относиться IP-адрес балансируемой нагрузки для данного глобального правила переадресации. Если поле не указано, будет использоваться сеть по умолчанию. Это поле представляет ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом ‘selfLink’ и значением selfLink ресурса. В качестве альтернативы можно добавить `register: name-of-resource` в задачу gcp_compute_network, а затем задать для этого поля network значение “{{ name-of-resource }}” |
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 . |
project string | Проект Google Cloud Platform, который следует использовать. |
scopes list / элементы=строка | Массив используемых областей действия |
service_account_contents jsonarg | Содержимое JSON-файла учетной записи службы в виде словаря или JSON-строки, представляющей его. |
service_account_email string | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file path | Путь к JSON-файлу учетной записи службы, если в качестве типа выбрано serviceaccount. |
state string | Должен ли указанный объект существовать в GCP Варианты:
|
target string / обязательный | URL целевого ресурса, которому будет передан соответствующий трафик. Тип переадресуемого трафика должен соответствовать типу целевого объекта. При балансировке нагрузки INTERNAL_SELF_MANAGED допустимы только цели HTTP и HTTPS. (Только [бета-версия](https://terraform.io/docs/providers/google/guides/provider_versions.html)) Для глобального адреса с назначением PRIVATE_SERVICE_CONNECT и addressType INTERNAL допустимы только “all-apis” и “vpc-sc”. |
Примеры
- name: create a global address
google.cloud.gcp_compute_global_address:
name: globaladdress-globalforwardingrule
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: globaladdress
- name: create a instance group
google.cloud.gcp_compute_instance_group:
name: instancegroup-globalforwardingrule
zone: us-central1-a
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: instancegroup
- name: create a HTTP health check
google.cloud.gcp_compute_http_health_check:
name: httphealthcheck-globalforwardingrule
healthy_threshold: 10
port: 8080
timeout_sec: 2
unhealthy_threshold: 5
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: healthcheck
- name: create a backend service
google.cloud.gcp_compute_backend_service:
name: backendservice-globalforwardingrule
backends:
- group: "{{ instancegroup.selfLink }}"
health_checks:
- "{{ healthcheck.selfLink }}"
enable_cdn: 'true'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: backendservice
- name: create a URL map
google.cloud.gcp_compute_url_map:
name: urlmap-globalforwardingrule
default_service: "{{ backendservice }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: urlmap
- name: create a target HTTP proxy
google.cloud.gcp_compute_target_http_proxy:
name: targethttpproxy-globalforwardingrule
url_map: "{{ urlmap }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: httpproxy
- name: create a global forwarding rule
google.cloud.gcp_compute_global_forwarding_rule:
name: test_object
ip_address: "{{ globaladdress.address }}"
ip_protocol: TCP
port_range: 80-80
target: "{{ httpproxy.selfLink }}"
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
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_SELF_MANAGED, допустим только TCP. Это поле не должно быть задано, если глобальному адресу назначено назначение PRIVATE_SERVICE_CONNECT и addressType имеет значение INTERNAL. Возвращается: при успехе |
ipVersion string | Версия IP, которая будет использоваться этим глобальным правилом перенаправления. Возвращается: при успехе |
loadBalancingScheme string | Определяет назначение GlobalForwardingRule. Значение INTERNAL_SELF_MANAGED означает, что правило будет использоваться для внутренней глобальной балансировки нагрузки HTTP(S). Значение EXTERNAL означает, что правило будет использоваться для внешней глобальной балансировки нагрузки (HTTP(S) LB, External TCP/UDP LB, SSL Proxy) (только [бета-версия](https://terraform.io/docs/providers/google/guides/provider_versions.html)). Примечание: это поле должно быть задано как «», если глобальному адресу назначено назначение PRIVATE_SERVICE_CONNECT и addressType имеет значение INTERNAL. Возвращается: при успехе |
metadataFilters complex | Непрозрачные критерии фильтрации, используемые Loadbalancer для ограничения конфигурации маршрутизации определённым набором клиентов, совместимых с xDS. В запросах xDS к Loadbalancer клиенты xDS передают метаданные узла. При совпадении соответствующая конфигурация маршрутизации становится доступна этим прокси-серверам. Для каждого metadataFilter в этом списке, если для его filterMatchCriteria задано значение MATCH_ANY, как минимум одна из меток filterLabels должна совпадать с соответствующей меткой в предоставленных метаданных. Если для его filterMatchCriteria задано значение MATCH_ALL, все его метки filterLabels должны совпадать с соответствующими метками в предоставленных метаданных. Указанные здесь metadataFilters могут быть переопределены значениями, заданными в UrlMap, на который ссылается это ForwardingRule. metadataFilters применяются только к Loadbalancer, для которых loadBalancingScheme задан как INTERNAL_SELF_MANAGED. Возвращается: при успехе |
|
filterLabels complex |
Список пар «метка — значение», которые должны совпадать с метками в предоставленных метаданных согласно filterMatchCriteria. Список не должен быть пустым и может содержать не более 64 элементов. Возвращается: при успехе |
|
name string |
Имя метки метаданных. Длина должна составлять от 1 до 1024 символов включительно. Возвращается: при успехе |
|
value string |
Значение, которому должна соответствовать метка. Максимальная длина значения — 1024 символа. Возвращается: при успехе |
|
filterMatchCriteria string |
Задаёт, как совпадения отдельных filterLabel в списке filterLabels влияют на общее совпадение metadataFilter. MATCH_ANY — как минимум одна из меток filterLabels должна совпадать с меткой в предоставленных метаданных. MATCH_ALL — все метки filterLabels должны совпадать с метками в предоставленных метаданных. Возвращается: при успехе |
name string | Имя ресурса; задаётся клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Возвращается: при успехе |
network dictionary | Это поле не используется для внешней балансировки нагрузки. При балансировке нагрузки INTERNAL_SELF_MANAGED это поле указывает сеть, которой должен принадлежать IP-адрес балансировки нагрузки для данного глобального правила перенаправления. Если поле не задано, будет использоваться сеть по умолчанию. Возвращается: при успехе |
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 . Возвращается: при успехе |
target string | URL целевого ресурса, который будет получать соответствующий трафик. Перенаправляемый трафик должен соответствовать типу целевого объекта. Для балансировки нагрузки INTERNAL_SELF_MANAGED допустимы только цели HTTP и HTTPS. (Только [бета-версия](https://terraform.io/docs/providers/google/guides/provider_versions.html)) Для глобального адреса с назначением PRIVATE_SERVICE_CONNECT и addressType со значением INTERNAL допустимы только «all-apis» и «vpc-sc». Возвращается: при успехе |
Ссылки на коллекцию
© 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_global_forwarding_rule_module.html