google.cloud.gcp_compute_global_forwarding_rule – Создаёт GCP GlobalForwardingRule
Примечание
Этот плагин входит в коллекцию google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud
Чтобы использовать его в playbook, укажите: 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
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | ||
|---|---|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | ||
| description строка | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |||
| env_type строка | Указывает, в какой среде Ansible вы запускаете этот модуль. Не следует устанавливать, если вы не знаете, что делаете. Это изменяет только строку User Agent для любых запросов к API. | |||
| ip_address строка | 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 строка | IP-протокол, на который распространяется это правило. Когда схема балансировки INTERNAL_SELF_MANAGED, допустим только TCP. Некоторые допустимые значения: "TCP", "UDP", "ESP", "AH", "SCTP", "ICMP" | |||
| ip_version строка | Версия IP, которая будет использоваться этим глобальным правилом переадресации. Некоторые допустимые значения: "IPV4", "IPV6" | |||
| load_balancing_scheme строка | По умолчанию: "EXTERNAL" | Указывает, для чего будет использоваться GlobalForwardingRule. Значение INTERNAL_SELF_MANAGED означает, что это будет использоваться для внутреннего глобального HTTP(S) LB. Значение EXTERNAL означает, что это будет использоваться для внешней глобальной балансировки нагрузки (HTTP(S) LB, внешняя TCP/UDP LB, SSL-прокси) ПРИМЕЧАНИЕ: В настоящее время глобальные правила переадресации нельзя использовать для внутренней балансировки нагрузки. Некоторые допустимые значения: "EXTERNAL", "INTERNAL_SELF_MANAGED" | ||
| metadata_filters список / элементы=словарь | Непрозрачные критерии фильтрации, используемые Loadbalancer для ограничения конфигурации маршрутизации до ограниченного набора клиентов, совместимых с xDS. В своих запросах xDS к Loadbalancer клиенты xDS предоставляют метаданные узла. Если совпадение произошло, соответствующая конфигурация маршрутизации становится доступной для этих прокси. Для каждого metadataFilter в этом списке, если его filterMatchCriteria имеет значение MATCH_ANY, по крайней мере одно из filterLabels должно совпадать с соответствующей меткой, предоставленной в метаданных. Если его filterMatchCriteria имеет значение MATCH_ALL, то все его filterLabels должны совпадать с соответствующими метками в предоставленных метаданных. metadataFilters, указанные здесь, могут быть переопределены теми, которые указаны в UrlMap, на который ссылается это правило переадресации. metadataFilters применяются только к Loadbalancer, у которых loadBalancingScheme установлено в INTERNAL_SELF_MANAGED. | |||
| filter_labels список / элементы=словарь / обязательно | Список пар значений меток, которые должны совпадать с метками в предоставленных метаданных на основе filterMatchCriteria. Этот список не должен быть пустым и может содержать не более 64 записей. | |||
| name строка / обязательно | Имя метки метаданных. Длина должна быть от 1 до 1024 символов включительно. | |||
| value строка / обязательно | Значение, с которым должна совпадать метка. Значение имеет максимальную длину 1024 символа. | |||
| filter_match_criteria строка / обязательно | Указывает, как отдельные соответствия filterLabel в списке filterLabels вносят вклад в общее соответствие metadataFilter. MATCH_ANY - По крайней мере одна из filterLabels должна иметь соответствующую метку в предоставленных метаданных. MATCH_ALL - Все filterLabels должны иметь соответствующие метки в предоставленных метаданных. Некоторые допустимые значения: "MATCH_ANY", "MATCH_ALL" | |||
| name строка / обязательно | Имя ресурса; предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. То есть, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. | |||
| network словарь | Это поле не используется для внешней балансировки нагрузки. Для балансировки нагрузки INTERNAL_SELF_MANAGED это поле определяет сеть, к которой должен принадлежать IP-адрес балансировки нагрузки для этого глобального правила переадресации. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле представляет ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` к задаче gcp_compute_network, а затем установить это поле network в "{{ name-of-resource }}" | |||
| port_range строка | Это поле используется вместе с полем 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 строка | Проект Google Cloud Platform, который использовать. | |||
| scopes список / элементы=строка | Массив используемых областей. | |||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо в виде JSON-строки, которая его представляет. | |||
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если как тип выбран serviceaccount. | |||
| state строка |
| Требуется ли существование данного объекта в GCP | ||
| target строка / обязательно | URL целевого ресурса, который должен получить соответствующий трафик. Переадресовываемый трафик должен быть подходящего типа для целевого объекта. Для балансировки нагрузки INTERNAL_SELF_MANAGED допустимы только целевые объекты HTTP и HTTPS. | |||
Примеры
- 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 | 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-адреса, либо в виде 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 | success | IP-протокол, к которому относится это правило. Когда схема балансировки — INTERNAL_SELF_MANAGED, допустим только TCP. | ||
| ipVersion string | success | Версия IP, которая будет использоваться этим глобальным правилом переадресации. | ||
| loadBalancingScheme string | success | Указывает, для чего будет использоваться GlobalForwardingRule. Значение INTERNAL_SELF_MANAGED означает, что это будет использоваться для внутренней глобальной HTTP(S) LB. Значение EXTERNAL означает, что это будет использоваться для внешнего глобального балансирования нагрузки (HTTP(S) LB, внешнего TCP/UDP LB, SSL Proxy) ПРИМЕЧАНИЕ: В настоящее время глобальные правила переадресации не могут использоваться для внутренней балансировки нагрузки. | ||
| metadataFilters complex | success | Непрозрачные критерии фильтрации, используемые Loadbalancer для ограничения конфигурации маршрутизации для ограниченного набора клиентов, совместимых с xDS. В своих запросах xDS к Loadbalancer клиенты xDS представляют метаданные узла. Если произойдет совпадение, соответствующая конфигурация маршрутизации будет доступна этим прокси. Для каждого metadataFilter в этом списке, если его filterMatchCriteria установлено в MATCH_ANY, хотя бы одна из filterLabels должна совпадать с соответствующей меткой, предоставленной в метаданных. Если его filterMatchCriteria установлено в MATCH_ALL, все его filterLabels должны совпадать с соответствующими метками в предоставленных метаданных. metadataFilters, указанные здесь, могут быть переопределены теми, что указаны в UrlMap, на который ссылается это правило переадресации. metadataFilters применяются только к Loadbalancer, у которых loadBalancingScheme установлено в INTERNAL_SELF_MANAGED. | ||
| filterLabels complex | success | Список пар значений меток, которые должны совпадать с метками в предоставленных метаданных на основе filterMatchCriteria. Этот список не должен быть пустым и может содержать не более 64 элементов. | ||
| name string | success | Имя метки метаданных. Длина должна быть от 1 до 1024 символов включительно. | ||
| value string | success | Значение, с которым должна совпасть метка. Максимальная длина значения — 1024 символа. | ||
| filterMatchCriteria string | success | Указывает, как индивидуальные соответствия filterLabel в списке filterLabels влияют на общее соответствие metadataFilter. MATCH_ANY — хотя бы одна из filterLabels должна иметь соответствующую метку в предоставленных метаданных. MATCH_ALL — все filterLabels должны иметь соответствующие метки в предоставленных метаданных. | ||
| name string | success | Имя ресурса, предоставляемое клиентом при создании ресурса. Длина имени должна быть 1-63 символа и соответствовать RFC1035. То есть, длина имени должна быть 1-63 символа и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | ||
| network dictionary | success | Это поле не используется для внешнего балансирования нагрузки. Для балансировки нагрузки INTERNAL_SELF_MANAGED это поле идентифицирует сеть, к которой должен принадлежать IP-адрес сбалансированной нагрузки для этого глобального правила переадресации. Если это поле не указано, будет использоваться сеть по умолчанию. | ||
| 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 . | ||
| target string | success | URL целевого ресурса для получения соответствующего трафика. Переадресованный трафик должен быть подходящего типа для целевого объекта. Для балансировки нагрузки INTERNAL_SELF_MANAGED допустимы только HTTP и HTTPS цели. | ||
Авторы
- Google Inc. (@googlecloudplatform)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_compute_global_forwarding_rule_module.html