google.cloud.gcp_compute_route – Создаёт маршрут GCP
Примечание
Этот плагин входит в состав коллекции google.cloud (версия 1.0.2).
Для его установки используйте: ansible-galaxy collection install google.cloud.
Для использования в книге задач укажите: google.cloud.gcp_compute_route.
Описание
- Представляет ресурс Маршрута.
- Маршрут — это правило, которое определяет, как следует обрабатывать определённые пакеты в виртуальной сети. Маршруты ассоциируются с виртуальными машинами по тегу, и набор маршрутов для конкретной виртуальной машины называется таблицей маршрутизации. Для каждого пакета, покидающего виртуальную машину, система ищет в таблице маршрутизации этой виртуальной машины единственный наилучший соответствующий маршрут.
- Маршруты сопоставляют пакеты по IP-адресу назначения, отдавая предпочтение меньшим или более конкретным диапазонам по сравнению с большими. Если есть ничья, система выбирает маршрут с наименьшим значением приоритета. Если всё ещё есть ничья, она использует заголовки пакетов третьего и четвёртого уровней, чтобы выбрать только один из оставшихся соответствующих маршрутов. Пакет затем пересылается в соответствии с полем next_hop выигрышного маршрута — либо другому виртуальному компьютеру назначения, шлюзу виртуальной машины или шлюзу, управляемому Compute Engine. Пакеты, которые не соответствуют ни одному маршруту в таблице маршрутизации отправляющей виртуальной машины, будут отклонены.
- Ресурс Маршрута должен иметь ровно одну спецификацию из следующих: nextHopGateway, nextHopInstance, nextHopIp, nextHopVpnTunnel или nextHopIlb.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. |
| description строка | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |
| dest_range строка / обязательно | Диапазон адресов назначения исходящих пакетов, к которому применяется этот маршрут. Поддерживается только IPv4. | |
| env_type строка | Указывает, в какой среде Ansible выполняется этот модуль. Не следует устанавливать, если вы не знаете, что делаете. Это изменяет только строку User-Agent для всех запросов к API. | |
| name строка / обязательно | Имя ресурса. Указывается клиентом при создании ресурса. Длина имени должна быть от 1 до 63 символов и соответствовать RFC1035. То есть длина имени должна быть от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы — дефис, строчная буква или цифра, за исключением последнего символа, который не может быть дефисом. | |
| network словарь / обязательно | Сеть, к которой применяется этот маршрут. Это поле представляет ссылку на ресурс Сети в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` к задаче gcp_compute_network, а затем установить это поле network в "{{ имя-ресурса }}" | |
| next_hop_gateway строка | Ссылка на шлюз, который должен обрабатывать соответствующие пакеты. В настоящее время вы можете указать только интернет-шлюз, используя полный или частичный допустимый URL: * https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway * projects/project/global/gateways/default-internet-gateway * global/gateways/default-internet-gateway . | |
| next_hop_ilb словарь | Ссылка на правило переадресации типа loadBalancingScheme=INTERNAL, которое должно обрабатывать соответствующие пакеты. Вы можете указать только правило переадресации как частичный или полный URL. Например, следующие URL-адреса являются допустимыми: https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule regions/region/forwardingRules/forwardingRule Обратите внимание, что это может быть использовано только тогда, когда dest_range — это общедоступный диапазон IP-адресов (не диапазон RFC 1918). Это поле представляет ссылку на ресурс ForwardingRule в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` к задаче gcp_compute_forwarding_rule, а затем установить это поле next_hop_ilb в "{{ имя-ресурса }}" | |
| next_hop_instance словарь | Ссылка на виртуальную машину, которая должна обрабатывать соответствующие пакеты. Вы можете указать это как полный или частичный URL. Например: * https://www.googleapis.com/compute/v1/projects/project/zones/zone/ instances/instance * projects/project/zones/zone/instances/instance * zones/zone/instances/instance . Это поле представляет ссылку на ресурс Instance в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` к задаче gcp_compute_instance, а затем установить это поле next_hop_instance в "{{ имя-ресурса }}" | |
| next_hop_ip строка | IP-адрес сети виртуальной машины, которая должна обрабатывать соответствующие пакеты. | |
| next_hop_vpn_tunnel словарь | Ссылка на VpnTunnel, который должен обрабатывать соответствующие пакеты. Это поле представляет ссылку на ресурс VpnTunnel в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'selfLink' и значением selfLink вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` к задаче gcp_compute_vpn_tunnel, а затем установить это поле next_hop_vpn_tunnel в "{{ имя-ресурса }}" | |
| priority целое число | Приоритет этого маршрута. Приоритет используется для разрыва ничьих в тех случаях, когда существует более одного соответствующего маршрута с одинаковой длиной префикса. В случае двух маршрутов с одинаковой длиной префикса маршрут с наименьшим значением приоритета побеждает. Значение по умолчанию 1000. Допустимый диапазон от 0 до 65535. | |
| project строка | Проект Google Cloud Platform для использования. | |
| scopes список / элементы=строка | Массив используемых областей видимости | |
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо в виде JSON-строки, которая его представляет. | |
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file путь | Путь к файлу JSON учетной записи службы, если тип service_account выбран. | |
| state строка |
| Указывает, должен ли заданный объект существовать в GCP |
| tags список / элементы=строка | Список тегов виртуальной машины, к которым применяется этот маршрут. |
Примечания
Примечание
- Ссылка на API: https://cloud.google.com/compute/docs/reference/rest/v1/routes
- Использование маршрутов: https://cloud.google.com/vpc/docs/using-routes
- для аутентификации можно установить service_account_file используя переменную окружения
gcp_service_account_file. - для аутентификации можно установить service_account_contents используя переменную окружения
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 network
google.cloud.gcp_compute_network:
name: network-route
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a route
google.cloud.gcp_compute_route:
name: test_object
dest_range: 192.168.6.0/24
next_hop_gateway: global/gateways/default-internet-gateway
network: "{{ network }}"
tags:
- backends
- databases
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| description string | success | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
| destRange string | success | Диапазон назначения исходящих пакетов, к которому применяется этот маршрут. Поддерживается только IPv4. |
| name string | success | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. То есть, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. |
| network dictionary | success | Сеть, к которой применяется этот маршрут. |
| nextHopGateway string | success | URL шлюза, который должен обрабатывать соответствующие пакеты. В настоящее время вы можете указать только интернет-шлюз, используя полный или частичный допустимый URL: * https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway * projects/project/global/gateways/default-internet-gateway * global/gateways/default-internet-gateway . |
| nextHopIlb dictionary | success | URL правила маршрутизации типа loadBalancingScheme=INTERNAL, которое должно обрабатывать соответствующие пакеты. Вы можете указать правило маршрутизации только как частичный или полный URL. Например, следующие URL являются допустимыми: https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule regions/region/forwardingRules/forwardingRule Обратите внимание, что это может быть использовано только тогда, когда destRange является общедоступным (не RFC 1918) IP-диапазоном CIDR. |
| nextHopInstance dictionary | success | URL экземпляра, который должен обрабатывать соответствующие пакеты. Вы можете указать его как полный или частичный URL. Например: * https://www.googleapis.com/compute/v1/projects/project/zones/zone/ instances/instance * projects/project/zones/zone/instances/instance * zones/zone/instances/instance . |
| nextHopIp string | success | IP-адрес сети экземпляра, который должен обрабатывать соответствующие пакеты. |
| nextHopNetwork string | success | URL сети, которая должна обрабатывать соответствующие пакеты. |
| nextHopVpnTunnel dictionary | success | URL туннеля VPN, который должен обрабатывать соответствующие пакеты. |
| priority integer | success | Приоритет этого маршрута. Приоритет используется для развязки связей в тех случаях, когда существует более одного соответствующего маршрута с одинаковой длиной префикса. В случае двух маршрутов с одинаковой длиной префикса маршрут с более низким значением приоритета выигрывает. Значение по умолчанию - 1000. Допустимый диапазон - от 0 до 65535. |
| tags list / elements=string | success | Список тегов экземпляра, к которым применяется этот маршрут. |
Авторы
- Google Inc. (@googlecloudplatform)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_compute_route_module.html