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 для получения сопоставленного трафика. Используется для внутренней балансировки нагрузки. (не используется для внешней балансировки нагрузки). Это поле представляет ссылку на ресурс BackendService в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, можно добавить `register: имя_ресурса` в задачу gcp_compute_backend_service, а затем установить это поле backend_service на "{{ имя_ресурса }}" | |
| 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 - |
| Указывает назначение правила перенаправления и может принимать только следующие значения: 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-адрес балансировки нагрузки для этого правила перенаправления. Если это поле не указано, используется сеть по умолчанию. Это поле не используется для внешней балансировки нагрузки. Это поле представляет ссылку на ресурс Network в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, можно добавить `register: имя_ресурса` в задачу gcp_compute_network, а затем установить это поле network на "{{ имя_ресурса }}" | |
| 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 строка | Проект Google Cloud Platform, который нужно использовать. | |
| scopes список | Массив используемых областей. | |
| service_account_contents строка | Строка, представляющая содержимое файла JSON учетной записи службы. Это не должно передаваться как словарь, а как строка с точным содержимым файла json учетной записи службы (допустимый JSON). | |
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | Путь к файлу JSON учетной записи службы, если в качестве типа выбран serviceaccount. | |
| state - |
| Нужно ли существование данного объекта в GCP |
| subnetwork - | Ссылка на подсеть. Для внутренней балансировки нагрузки это поле идентифицирует подсеть, к которой должен принадлежать IP-адрес балансировки нагрузки для этого правила перенаправления. Если указанная сеть в режиме автоподсетей, это поле необязательно. Однако, если сеть в режиме пользовательских подсетей, подсеть необходимо указать. Это поле не используется для внешней балансировки нагрузки. Это поле представляет ссылку на ресурс Subnetwork в GCP. Его можно указать двумя способами. Во-первых, можно поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, можно добавить `register: имя_ресурса` в задачу gcp_compute_subnetwork, а затем установить это поле subnetwork на "{{ имя_ресурса }}" | |
| target - | Эта цель должна быть глобальным ресурсом балансировки нагрузки. Передаваемый трафик должен быть соответствующего типа для целевого объекта. Допустимые типы: HTTP_PROXY, HTTPS_PROXY, SSL_PROXY, TCP_PROXY . |
Примечания
Примечание
- Для аутентификации можно установить service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно установить 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: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backendService словарь | успех | Ссылка на BackendService для получения соответствующего трафика. Используется для внутренней балансировки нагрузки. (не используется для внешней балансировки). |
| creationTimestamp строка | успех | Маркер создания в формате RFC3339. |
| description строка | успех | Необязательное описание данного ресурса. Укажите это свойство при создании ресурса. |
| id целое число | успех | Уникальный идентификатор ресурса. |
| IPAddress строка | успех | 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 строка | успех | IP-протокол, к которому применяется данное правило. Допустимые значения: TCP, UDP, ESP, AH, SCTP или ICMP. Когда схема балансировки — INTERNAL, допустимы только TCP и UDP. |
| ipVersion строка | успех | Версия IP, которая будет использоваться этим правилом переадресации. Допустимые значения: IPV4 или IPV6. Это можно указать только для глобального правила переадресации. |
| loadBalancingScheme строка | успех | Указывает, для чего используется 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-адрес балансировки для этого правила переадресации. Если это поле не указано, используется сеть по умолчанию. Это поле не используется для внешней балансировки. |
| portRange строка | успех | Это поле используется вместе с полем 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. [сообщество]
Авторы
- 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.8/modules/gcp_compute_global_forwarding_rule_module.html