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 |
| При схеме балансировки нагрузки INTERNAL и протоколе TCP/UDP, опустить `port`/`port_range` и указать это поле как `true`, чтобы разрешить передачу пакетов, адресованных любому порту, бэкендам, настроенным с этим правилом перенаправления. |
| 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 в "{{ имя_ресурса }}" | |
| network_tier - добавлено в 2.8 |
| Уровень сети, используемый для настройки этого адреса. Это поле может принимать следующие значения: PREMIUM или STANDARD. Если это поле не указано, предполагается, что оно равно PREMIUM. |
| port_range - | Это поле используется вместе с полем target для TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway, TargetPool, TargetInstance. Применимо только при IPProtocol TCP, UDP или SCTP, только пакеты, адресованные портам в указанном диапазоне, будут перенаправлены на target. Правила перенаправления с одинаковой парой [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 строка | Строка, представляющая содержимое файла JSON учетной записи службы. Это не должно передаваться как словарь, а как строка, содержащая точное содержимое файла JSON учетной записи службы (валидный JSON). | |
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | Путь к файлу 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 с помощью переменной среды
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 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, опустите `port`/`port_range` и укажите это поле как `true`, чтобы разрешить пересылку пакетов, адресованных любым портам, на бэкенды, настроенные с этим правилом пересылки. |
| backendService словарь | успех | Ссылка на BackendService для получения соответствующего трафика. Используется для внутренней балансировки нагрузки. (не используется для внешней балансировки). |
| creationTimestamp строка | успех | Дата и время создания в формате RFC3339. |
| description строка | успех | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
| id целое число | успех | Уникальный идентификатор ресурса. |
| IPAddress строка | успех | IP-адрес, на котором это правило пересылки предоставляет обслуживание. Адреса ограничены схемой балансировки нагрузки (ВНЕШНЯЯ или ВНУТРЕННЯЯ) и областью (глобальная или региональная). Когда схема балансировки — ВНЕШНЯЯ, для глобальных правил пересылки адрес должен быть глобальным IP-адресом, а для региональных правил пересылки — адрес должен находиться в том же регионе, что и правило пересылки. Если это поле пустое, будет назначен временный IPv4-адрес из той же области (глобальной или региональной). Региональное правило пересылки поддерживает только IPv4. Глобальное правило пересылки поддерживает IPv4 или IPv6. Когда схема балансировки — ВНУТРЕННЯЯ, это может быть только 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. При использовании схемы балансировки ВНУТРЕННЯЯ, допустимы только TCP и UDP. |
| ipVersion строка | успех | Версия IP, которая будет использоваться этим правилом пересылки. Допустимые значения: IPV4 или IPV6. Это может быть указано только для глобального правила пересылки. |
| loadBalancingScheme строка | успех | Указывает, для чего будет использоваться ForwardingRule, и может принимать только следующие значения: ВНУТРЕННЯЯ, ВНЕШНЯЯ. Значение ВНУТРЕННЯЯ означает, что это будет использоваться для внутренней балансировки сети (TCP, UDP). Значение ВНЕШНЯЯ означает, что это будет использоваться для внешней балансировки (HTTP(S) LB, внешняя балансировка TCP/UDP, SSL-прокси). |
| name строка | успех | Имя ресурса; предоставляется клиентом при создании ресурса. Длина имени должна составлять от 1 до 63 символов и соответствовать RFC1035. То есть, длина имени должна составлять от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. |
| network словарь | успех | Для внутренней балансировки нагрузки это поле идентифицирует сеть, к которой должен принадлежать IP-адрес балансировки для данного правила пересылки. Если это поле не указано, будет использована сеть по умолчанию. Это поле не используется для внешней балансировки. |
| networkTier строка | успех | Уровень сетевой инфраструктуры, используемый для настройки этого адреса. Это поле может принимать следующие значения: ПРЕМИУМ или СТАНДАРТ. Если это поле не указано, предполагается ПРЕМИУМ. |
| 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 для внутренней балансировки нагрузки. При схеме балансировки ВНУТРЕННЯЯ можно настроить один порт или список портов, разделённых запятыми. Только пакеты, адресованные этим портам, будут пересылаться на бэкенды, настроенные с этим правилом пересылки. Вы можете указать не более 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.8/modules/gcp_compute_forwarding_rule_module.html