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 строка / обязательно |
| Тип используемых учетных данных. |
| 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-протокол, к которому применяется это правило. Допустимые значения: TCP, UDP, ESP, AH, SCTP или ICMP. При схеме балансировки INTERNAL_SELF_MANAGED допустимо только TCP. Некоторые допустимые значения: "TCP", "UDP", "ESP", "AH", "SCTP", "ICMP" | |
| ip_version строка | Версия IP, которая будет использоваться этим глобальным правилом переадресации. Допустимые значения: IPV4 или IPV6. Некоторые допустимые значения: "IPV4", "IPV6" | |
| load_balancing_scheme строка | По умолчанию: "EXTERNAL" | Указывает, для чего используется GlobalForwardingRule. Значение INTERNAL_SELF_MANAGED означает, что это будет использоваться для внутренней глобальной HTTP(S) балансировки нагрузки. Значение EXTERNAL означает, что это будет использоваться для внешней глобальной балансировки нагрузки (HTTP(S) LB, внешняя TCP/UDP балансировка нагрузки, SSL-прокси) ПРИМЕЧАНИЕ: В настоящее время глобальные правила переадресации не могут использоваться для внутренней балансировки нагрузки. Некоторые допустимые значения: "INTERNAL_SELF_MANAGED", "EXTERNAL" |
| name строка / обязательно | Имя ресурса; предоставляется клиентом при создании ресурса. Длина имени должна быть от 1 до 63 символов и соответствовать RFC1035. То есть, длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| network словарь | Это поле не используется для внешней балансировки нагрузки. Для балансировки нагрузки INTERNAL_SELF_MANAGED это поле идентифицирует сеть, к которой должен принадлежать IP-адрес балансировки нагрузки для этого глобального правила переадресации. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле представляет ссылку на ресурс сети в 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 . | |
| project строка | Проект Google Cloud Platform, который нужно использовать. | |
| scopes список | Массив областей, которые нужно использовать. | |
| service_account_contents jsonarg | Содержание файла JSON учетной записи службы, либо в словаре, либо в виде JSON-строки, представляющей его. | |
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | Путь к файлу JSON учетной записи службы, если в качестве типа выбран serviceaccount. | |
| state строка |
| Указывает, должен ли данный объект существовать в GCP. |
| target строка / обязательно | URL целевого ресурса, который должен получать соответствующий трафик. Перенаправляемый трафик должен быть подходящего типа для целевого объекта. |
Примечания
Примечание
- для аутентификации можно установить service_account_file, используя переменную среды c(gcp_service_account_file).
- для аутентификации можно установить service_account_contents, используя переменную среды c(GCP_SERVICE_ACCOUNT_CONTENTS).
- Для аутентификации можно установить 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.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
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
Возвращаемые значения
Общие возвращаемые значения описаны в разделе здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| 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_SELF_MANAGED допустимо только TCP. |
| ipVersion строка | успех | Версия IP, которая будет использоваться этим глобальным правилом переадресации. Допустимые значения: IPV4 или IPV6. |
| loadBalancingScheme строка | успех | Указывает назначение GlobalForwardingRule. Значение INTERNAL_SELF_MANAGED означает, что это будет использоваться для внутренней глобальной HTTP(S) LB. Значение EXTERNAL означает, что это будет использоваться для внешней глобальной балансировки нагрузки (HTTP(S) LB, внешняя TCP/UDP LB, SSL-прокси) ПРИМЕЧАНИЕ: в настоящее время глобальные правила переадресации не могут использоваться для внутренней балансировки нагрузки. |
| name строка | успех | Имя ресурса; предоставляется клиентом при создании ресурса. Имя должно иметь длину от 1 до 63 символов и соответствовать RFC1035. То есть, имя должно иметь длину от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. |
| network словарь | успех | Этот параметр не используется для внешней балансировки нагрузки. Для балансировки нагрузки INTERNAL_SELF_MANAGED этот параметр указывает сеть, к которой должен принадлежать 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 . |
| target строка | успех | URL целевого ресурса для получения соответствующего трафика. Перенаправляемый трафик должен соответствовать типу целевого объекта. |
Состояние
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом 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.9/modules/gcp_compute_global_forwarding_rule_module.html