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
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| 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-адрес балансирования для этого 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 портов. | |
| project - | По умолчанию: null | Проект Google Cloud Platform, который следует использовать. |
| region - / обязательно | Ссылка на регион, в котором находится региональный маршрут перенаправления. Это поле не применимо к глобальным маршрутам перенаправления. | |
| scopes - | Массив используемых областей. | |
| service_account_email - | Необязательный адрес электронной почты учетной записи сервиса, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file - | Путь к файлу JSON учетной записи сервиса, если в качестве типа выбран serviceaccount. | |
| state - |
| Указывает, должен ли данный объект существовать в GCP |
| subnetwork - | Ссылка на подсеть. Для внутреннего балансирования нагрузки это поле идентифицирует подсеть, к которой должен принадлежать IP-адрес балансирования для данного Forwarding Rule. Если указанная сеть настроена в режиме автоматической подсети, это поле необязательно. Однако, если сеть настроена в режиме пользовательской подсети, подсеть необходимо указать. Это поле не используется для внешнего балансирования нагрузки. | |
| target - добавлен в 2.7 | Ссылка на TargetPool для получения соответствующего трафика. Для региональных маршрутов перенаправления этот целевой ресурс должен находиться в том же регионе, что и маршрут перенаправления. Для глобальных маршрутов перенаправления этот целевой ресурс должен быть ресурсом глобального балансирования нагрузки. Пересылаемый трафик должен быть подходящего типа для целевого объекта. Это поле не используется для внутреннего балансирования нагрузки. |
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/latest/forwardingRule
- Официальная документация: https://cloud.google.com/compute/docs/load-balancing/network/forwarding-rules
- Для аутентификации можно установить 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 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: "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-адрес балансировки нагрузки для данного правила перенаправления. Если это поле не указано, будет использоваться сеть по умолчанию. Это поле не используется для внешней балансировки нагрузки. |
| 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 словарь | успех | Ссылка на ресурс 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.7/modules/gcp_compute_forwarding_rule_module.html