google.cloud.gcp_compute_route модуль – Создает GCP маршрут
Примечание
Этот модуль входит в состав коллекции google.cloud (версия 1.4.1).
Эта коллекция, возможно, уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Для использования в книге задач укажите: google.cloud.gcp_compute_route.
Обзор
- Представляет собой ресурс маршрута.
- Маршрут — это правило, определяющее, как должны обрабатываться определенные пакеты виртуальной сетью. Маршруты ассоциируются с виртуальными машинами по меткам, а набор маршрутов для конкретной виртуальной машины называется её таблицей маршрутизации. Для каждого пакета, покидающего виртуальную машину, система ищет в таблице маршрутизации этой виртуальной машины единственный лучший соответствующий маршрут.
- Маршруты сопоставляют пакеты по адресу назначения IP, отдавая предпочтение более узким или более конкретным диапазонам перед более широкими. Если имеется ничья, система выбирает маршрут с наименьшим значением приоритета. Если всё ещё есть ничья, она использует заголовки пакета уровня 3 и 4, чтобы выбрать только один из оставшихся соответствующих маршрутов. Затем пакет пересылается в соответствии с полем next_hop выигрышного маршрута — либо к другой виртуальной машине-назначению, шлюзу виртуальной машины или шлюзу, управляемому Compute Engine. Пакеты, которые не соответствуют ни одному маршруту в таблице маршрутизации отправляющей виртуальной машины, будут отброшены.
- Ресурс маршрута должен иметь ровно одно указание nextHopGateway, nextHopInstance, nextHopIp, nextHopVpnTunnel или nextHopIlb.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если тип учетных данных — accesstoken. |
auth_kind string / required | Тип используемых учетных данных. Варианты:
|
description string | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
dest_range string / required | Диапазон назначения исходящих пакетов, к которым применяется этот маршрут. Поддерживается только IPv4. |
env_type string | Указывает, в какой среде Ansible вы запускаете этот модуль. Это не должно быть установлено, если вы не знаете, что делаете. Это только изменяет строку User Agent для любых запросов API. |
name string / required | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. |
network dictionary / required | Сеть, к которой применяется этот маршрут. Это поле представляет собой ссылку на ресурс сети в GCP. Его можно указать двумя способами. Во-первых, вы можете разместить словарь с ключом «selfLink» и значением selfLink вашего ресурса. В качестве альтернативы вы можете добавить `register: name-of-resource` к задаче gcp_compute_network, а затем установить это поле сети в «{{ name-of-resource }}» |
next_hop_gateway string | 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 . |
next_hop_ilb dictionary | URL правила переадресации типа loadBalancingScheme=INTERNAL, которое должно обрабатывать соответствующие пакеты. Вы можете указать правило переадресации только как частичный или полный URL. Например, следующие URL-адреса являются допустимыми: https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule regions/region/forwardingRules/forwardingRule Обратите внимание, что это можно использовать только тогда, когда destinationRange является общедоступным (не RFC 1918) IP-диапазоном CIDR. Это поле представляет собой ссылку на ресурс ForwardingRule в GCP. Его можно указать двумя способами. Во-первых, вы можете разместить словарь с ключом «selfLink» и значением selfLink вашего ресурса. В качестве альтернативы вы можете добавить `register: name-of-resource` к задаче gcp_compute_forwarding_rule, а затем установить это поле next_hop_ilb в «{{ name-of-resource }}» |
next_hop_instance dictionary | URL экземпляра, который должен обрабатывать соответствующие пакеты. Вы можете указать это как полный или частичный 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: name-of-resource` к задаче gcp_compute_instance, а затем установить это поле next_hop_instance в «{{ name-of-resource }}» |
next_hop_ip string | Сетевой IP-адрес экземпляра, который должен обрабатывать соответствующие пакеты. |
next_hop_vpn_tunnel dictionary | URL VPN-туннеля, который должен обрабатывать соответствующие пакеты. Это поле представляет собой ссылку на ресурс VpnTunnel в GCP. Его можно указать двумя способами. Во-первых, вы можете разместить словарь с ключом «selfLink» и значением selfLink вашего ресурса. В качестве альтернативы вы можете добавить `register: name-of-resource` к задаче gcp_compute_vpn_tunnel, а затем установить это поле next_hop_vpn_tunnel в «{{ name-of-resource }}» |
priority integer | Приоритет этого маршрута. Приоритет используется для устранения совпадений в случаях, когда существует несколько совпадающих маршрутов одинаковой длины префикса. В случае двух маршрутов с одинаковой длиной префикса выигрывает тот, у которого значение приоритета с меньшим номером. Значение по умолчанию — 1000. Допустимый диапазон — от 0 до 65535. |
project string | Проект Google Cloud Platform для использования. |
scopes list / elements=string | Массив областей, которые будут использоваться |
service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо в виде JSON-строки, которая его представляет. |
service_account_email string | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес электронной почты по умолчанию. |
service_account_file path | Путь к файлу JSON учетной записи сервиса, если тип учетной записи выбран как serviceaccount. |
state string | Определяет, должен ли объект существовать в GCP. Варианты:
|
tags list / elements=string | Список тегов экземпляров, к которым применяется данная маршрутизация. |
Примечания
Примечание
- Ссылка на 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. - Для аутентификации можно задать access_token с помощью переменной среды
GCP_ACCESS_TOKEN. - Для аутентификации можно задать 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 строка | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. Возвращается: успех |
destRange строка | Диапазон назначения исходящих пакетов, к которому применяется данная маршрутизация. Поддерживается только IPv4. Возвращается: успех |
name строка | Имя ресурса. Предоставляется клиентом при создании ресурса. Имя должно быть длиной от 1 до 63 символов и соответствовать RFC1035. Конкретно, имя должно быть длиной от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть тире, строчной буквой или цифрой, за исключением последнего символа, который не может быть тире. Возвращается: успех |
network словарь | Сеть, к которой применяется данная маршрутизация. Возвращается: успех |
nextHopGateway строка | 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 словарь | 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 словарь | 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 строка | IP-адрес сети экземпляра, который должен обрабатывать соответствующие пакеты. Возвращается: успех |
nextHopNetwork строка | URL сети, которая должна обрабатывать соответствующие пакеты. Возвращается: успех |
nextHopVpnTunnel словарь | URL туннеля VPN, который должен обрабатывать соответствующие пакеты. Возвращается: успех |
priority целое число | Приоритет этой маршрутизации. Приоритет используется для разрешения конфликтов в случаях, когда существует более одной соответствующей маршрутизации с одинаковой длиной префикса. В случае двух маршрутов с одинаковой длиной префикса выигрывает маршрут с наименьшим значением приоритета. Значение по умолчанию — 1000. Допустимый диапазон — от 0 до 65535. Возвращается: успех |
tags список / элементы=строка | Список тегов экземпляров, к которым применяется данная маршрутизация. Возвращается: успех |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/google/cloud/gcp_compute_route_module.html