gcp_compute_global_forwarding_rule – Создаёт GCP GlobalForwardingRule
Новая версия с 2.6.
Описание
- Представляет ресурс 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 - / обязательно |
| Тип используемых учетных данных. |
| backend_service - | Ссылка на BackendService для получения соответствующего трафика. Используется для внутренней балансировки нагрузки. (не используется для внешней балансировки нагрузки) . | |
| description - | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |
| 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-протокол, к которому применяется это правило. Допустимые варианты: TCP, UDP, ESP, AH, SCTP или ICMP. При схеме балансировки нагрузки INTERNAL допустимы только TCP и UDP. |
| ip_version - |
| Версия IP, которая будет использоваться этим правилом переадресации. Допустимые варианты: IPV4 или IPV6. Это можно указать только для глобального правила переадресации. |
| load_balancing_scheme - |
| Определяет, для чего будет использоваться ForwardingRule, и может принимать только следующие значения: INTERNAL, EXTERNAL Значение INTERNAL означает, что это будет использоваться для внутренней балансировки сети (TCP, UDP). Значение EXTERNAL означает, что это будет использоваться для внешней балансировки нагрузки (HTTP(S) LB, внешняя балансировка TCP/UDP, SSL-прокси) . |
| name - / обязательно | Имя ресурса; предоставляется клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| network - | Для внутренней балансировки нагрузки это поле идентифицирует сеть, к которой должен принадлежать IP-адрес балансировки нагрузки для этого правила переадресации. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле не используется для внешней балансировки нагрузки. | |
| 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 . | |
| ports - | Это поле используется вместе с полем backend_service для внутренней балансировки нагрузки. При схеме балансировки нагрузки INTERNAL можно настроить один порт или список портов, разделенных запятыми. Только пакеты, адресованные этим портам, будут переадресованы конечным точкам, настроенным с этим правилом переадресации. Можно указать не более 5 портов. | |
| project - | По умолчанию: null | Проект Google Cloud Platform, который нужно использовать. |
| scopes - | Массив используемых областей. | |
| service_account_email - | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file - | Путь к файлу JSON учетной записи службы, если выбран тип serviceaccount. | |
| state - |
| Существует ли данный объект в GCP |
| subnetwork - | Ссылка на подсеть. Для внутренней балансировки нагрузки это поле идентифицирует подсеть, к которой должен принадлежать IP-адрес балансировки нагрузки для этого правила переадресации. Если указанная сеть находится в режиме автоматической подсети, это поле необязательно. Однако, если сеть находится в режиме настраиваемой подсети, необходимо указать подсеть. Это поле не используется для внешней балансировки нагрузки. | |
| target - | Этот целевой объект должен быть глобальным ресурсом балансировки нагрузки. Переадресовываемый трафик должен соответствовать типу целевого объекта. Допустимые типы: HTTP_PROXY, HTTPS_PROXY, SSL_PROXY, TCP_PROXY . |
Примечания
Примечание
- Для аутентификации можно установить service_account_file с помощью переменной окружения
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно установить service_account_email с помощью переменной окружения
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить auth_kind с помощью переменной окружения
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной окружения
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в playbook не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a global address
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
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
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
gcp_compute_backend_service:
name: "backendservice-globalforwardingrule"
backends:
- group: "{{ instancegroup }}"
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
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
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
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: "service_account"
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backend_service словарь | успех | Ссылка на BackendService для получения соответствующего трафика. Используется для внутренней балансировки нагрузки. (не используется для внешней балансировки). |
| creation_timestamp строка | успех | Дата и время создания в формате RFC3339. |
| description строка | успех | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
| id целое число | успех | Уникальный идентификатор ресурса. |
| 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-протокол, к которому применяется это правило. Допустимые значения: TCP, UDP, ESP, AH, SCTP или ICMP. При схеме балансировки нагрузки INTERNAL допустимы только TCP и UDP. |
| ip_version строка | успех | Версия IP, которая будет использоваться этим правилом перенаправления. Допустимые значения: IPV4 или IPV6. Это может быть указано только для глобального правила перенаправления. |
| load_balancing_scheme строка | успех | Указывает, для чего будет использоваться правило перенаправления ForwardingRule, и может принимать только следующие значения: INTERNAL, EXTERNAL. Значение INTERNAL означает, что оно будет использоваться для внутренней балансировки сетевого трафика (TCP, UDP). Значение EXTERNAL означает, что оно будет использоваться для внешней балансировки (HTTP(S) LB, внешняя балансировка TCP/UDP, SSL-прокси). |
| name строка | успех | Имя ресурса, предоставляемое клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. Точнее, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. |
| network словарь | успех | Для внутренней балансировки нагрузки это поле идентифицирует сеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для этого правила перенаправления Forwarding Rule. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле не используется для внешней балансировки нагрузки. |
| 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 . |
| ports список | успех | Это поле используется вместе с полем backend_service для внутренней балансировки нагрузки. При схеме балансировки нагрузки INTERNAL можно настроить один порт или список портов, разделенных запятыми. Только пакеты, адресованные этим портам, будут перенаправлены на бэкэнды, настроенные с этим правилом перенаправления. Можно указать максимум 5 портов. |
| region строка | успех | Ссылка на регион, в котором находится региональное правило перенаправления. Это поле не применимо к глобальным правилам перенаправления. |
| subnetwork словарь | успех | Ссылка на подсеть. Для внутренней балансировки нагрузки это поле идентифицирует подсеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для этого правила перенаправления. Если указанная сеть находится в режиме автоматической подсети, это поле необязательно. Однако, если сеть находится в режиме пользовательской подсети, подсеть необходимо указать. Это поле не используется для внешней балансировки нагрузки. |
| target строка | успех | Этот целевой объект должен быть глобальным ресурсом балансировки нагрузки. Передаваемый трафик должен соответствовать типу объекта-цели. Допустимые типы: HTTP_PROXY, HTTPS_PROXY, SSL_PROXY, TCP_PROXY . |
Статус
- Данный модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.7/modules/gcp_compute_global_forwarding_rule_module.html