gcp_compute_forwarding_rule – Создаёт GCP ForwardingRule
Новая версия с 2.6.
Описание
- Ресурс ForwardingRule. Ресурс ForwardingRule определяет, на какой пул целевых виртуальных машин перенаправить пакет, если он соответствует заданной кортеже [IPAddress, IPProtocol, portRange].
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| all_ports boolean добавлен в 2.8 |
| Для внутренней балансировки нагрузки TCP/UDP (т.е. схема балансировки нагрузки — INTERNAL, и протокол — TCP/UDP), установите значение в true, чтобы разрешить перенаправление пакетов, адресованных любым портам, на бэкенды, настроенные с этой правилом перенаправления. Используется с backend service. Не может быть задано, если заданы port или portRange. |
| auth_kind строка / обязательно |
| Тип используемых учетных данных. |
| backend_service словарь | BackendService для приема соответствующего трафика. Используется только для внутренней балансировки нагрузки. Это поле представляет ссылку на ресурс BackendService в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` в задачу gcp_compute_backend_service и затем установить это поле backend_service на "{{ имя-ресурса }}" | |
| 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 допустимы только TCP и UDP. Некоторые допустимые значения включают: "TCP", "UDP", "ESP", "AH", "SCTP", "ICMP" | |
| ip_version строка | ipVersion не является допустимым полем для региональных правил перенаправления. Некоторые допустимые значения включают: "IPV4", "IPV6" | |
| load_balancing_scheme строка | Это указывает, для чего будет использоваться правило перенаправления, и может принимать только следующие значения: INTERNAL, EXTERNAL. Значение INTERNAL означает, что это будет использоваться для внутренней балансировки сети (TCP, UDP). Значение EXTERNAL означает, что это будет использоваться для внешней балансировки (HTTP(S) LB, внешняя балансировка TCP/UDP, SSL-прокси). Некоторые допустимые значения включают: "INTERNAL", "EXTERNAL" | |
| name строка / обязательно | Имя ресурса; предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| network словарь | Для внутренней балансировки нагрузки это поле идентифицирует сеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для данного правила перенаправления. Если это поле не указано, используется сеть по умолчанию. Это поле используется только для внутренней балансировки нагрузки. Это поле представляет ссылку на ресурс сети в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` в задачу gcp_compute_network и затем установить это поле network на "{{ имя-ресурса }}" | |
| network_tier строка добавлен в 2.8 | Уровень сети, используемый для настройки этого адреса. Это поле может принимать следующие значения: PREMIUM или STANDARD. Если это поле не указано, предполагается значение PREMIUM. Некоторые допустимые значения включают: "PREMIUM", "STANDARD" | |
| 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. | |
| region строка / обязательно | Ссылка на регион, в котором находится региональное правило перенаправления. Это поле не применимо к глобальным правилам перенаправления. | |
| scopes список | Массив используемых областей. | |
| service_account_contents jsonarg | Содержимое файла Service Account в формате JSON, либо в виде словаря, либо как строка JSON, его представляющая. | |
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | Путь к файлу Service Account в формате JSON, если выбран тип serviceaccount. | |
| service_label строка добавлен в 2.8 | Необязательный префикс к имени службы для данного правила перенаправления. Если указано, будет первым меткой в полном имени службы. Метка должна быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, метка должна быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Это поле используется только для внутренней балансировки нагрузки. | |
| state строка |
| Указывает, должен ли данный объект существовать в GCP |
| Подсеть словарь | Подсеть, к которой должен принадлежать IP-адрес с балансировкой нагрузки для этого Правила переадресации. Это поле используется только для ВНУТРЕННЕЙ балансировки нагрузки. Если указанная сеть находится в режиме автоматической подсети, это поле является необязательным. Однако, если сеть находится в режиме пользовательской подсети, подсеть необходимо указать. Это поле представляет ссылку на ресурс Подсети в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` в задачу gcp_compute_subnetwork и затем установить это поле подсети на "{{ имя-ресурса }}" | |
| Целевой ресурс словарь добавлен в 2.7 | Это поле используется только для ВНЕШНЕЙ балансировки нагрузки. Ссылка на ресурс TargetPool для приема совпавшего трафика. Этот целевой ресурс должен находиться в том же регионе, что и правило переадресации. Переадресованный трафик должен быть соответствующего типа для целевого объекта. Это поле представляет ссылку на ресурс TargetPool в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` в задачу gcp_compute_target_pool и затем установить это поле целевого ресурса на "{{ имя-ресурса }}" |
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/v1/forwardingRule
- Официальная документация: https://cloud.google.com/compute/docs/load-balancing/network/forwarding-rules
- для аутентификации можно установить 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. - Значения переменных среды будут использоваться только в том случае, если значения в книге сценария не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a address
gcp_compute_address:
name: address-forwardingrule
region: us-west1
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: address
- name: create a target pool
gcp_compute_target_pool:
name: targetpool-forwardingrule
region: us-west1
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: targetpool
- name: create a forwarding rule
gcp_compute_forwarding_rule:
name: test_object
region: us-west1
target: "{{ targetpool }}"
ip_protocol: TCP
port_range: 80-80
ip_address: "{{ address.address }}"
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| allPorts boolean | успех | Для внутренней балансировки нагрузки TCP/UDP (т.е. схема балансировки — INTERNAL, а протокол — TCP/UDP), установите это значение в true, чтобы разрешить пересылку пакетов, адресованных любым портам, на бэкенды, настроенные с этой правилом пересылки. Используется с сервисом бэкенда. Не может быть установлено, если заданы порт или диапазон портов. |
| backendService словарь | успех | Сервис бэкенда для приема соответствующего трафика. Используется только для внутренней балансировки нагрузки. |
| creationTimestamp строка | успех | Дата и время создания в формате RFC3339. |
| description строка | успех | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
| id целое число | успех | Уникальный идентификатор ресурса. |
| IPAddress строка | успех | 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 строка | успех | IP-протокол, к которому применяется это правило. Допустимые значения: TCP, UDP, ESP, AH, SCTP или ICMP. Если схема балансировки — INTERNAL, допустимы только TCP и UDP. |
| ipVersion строка | успех | ipVersion — некорректное поле для региональных правил пересылки. |
| loadBalancingScheme строка | успех | Это указывает, для чего будет использоваться правило пересылки, и может принимать следующие значения: 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-адрес, сбалансированный по нагрузке, для этого правила пересылки. Если это поле не указано, используется сеть по умолчанию. Это поле используется только для внутренней балансировки нагрузки. |
| networkTier строка | успех | Уровень сети, используемый для настройки этого адреса. Это поле может принимать следующие значения: PREMIUM или STANDARD. Если это поле не указано, предполагается, что это PREMIUM. |
| 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 строка | успех | Ссылка на регион, где находится региональное правило пересылки. Это поле не применимо к глобальным правилам пересылки. |
| serviceLabel строка | успех | Необязательный префикс к имени сервиса для этого правила пересылки. Если указано, будет первым меткой полному имени сервиса. Метка должна содержать 1-63 символа и соответствовать RFC1035. В частности, метка должна содержать 1-63 символа и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. Это поле используется только для внутренней балансировки нагрузки. |
| serviceName строка | успех | Внутреннее полное имя сервиса для этого правила пересылки. Это поле используется только для внутренней балансировки нагрузки. |
| subnetwork словарь | успех | Подсеть, к которой должен принадлежать IP-адрес, сбалансированный по нагрузке, для этого правила пересылки. Это поле используется только для внутренней балансировки нагрузки. Если указанная сеть находится в режиме автоматической подсети, это поле необязательно. Однако, если сеть находится в режиме пользовательской подсети, подсеть необходимо указать. |
| target словарь | успех | Это поле используется только для внешней балансировки нагрузки. Ссылка на ресурс TargetPool для приема соответствующего трафика. Этот целевой сервер должен находиться в том же регионе, что и правило пересылки. Пересылаемый трафик должен быть соответствующего типа для целевого объекта. |
Состояние
- Этот модуль не гарантирует обратную совместимость интерфейса. [бета-версия]
- Этот модуль поддерживается сообществом 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_forwarding_rule_module.html