модуль google.cloud.gcp_compute_route — создание маршрута GCP
Примечание
Этот модуль входит в состав коллекции google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в состав ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для работы с этим модулем требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в сценарии, укажите: google.cloud.gcp_compute_route.
Краткое описание
- Представляет ресурс маршрута.
- Маршрут — это правило, определяющее, как виртуальная сеть должна обрабатывать определённые пакеты. Маршруты связываются с виртуальными машинами с помощью тегов, а набор маршрутов для конкретной виртуальной машины называется её таблицей маршрутизации. Для каждого пакета, отправляемого виртуальной машиной, система ищет в таблице маршрутизации этой виртуальной машины единственный наиболее подходящий маршрут.
- Маршруты сопоставляют пакеты по IP-адресу назначения, отдавая предпочтение меньшим или более конкретным диапазонам перед большими. Если несколько маршрутов совпадают, система выбирает маршрут с наименьшим значением приоритета. Если совпадение сохраняется, для выбора одного из оставшихся подходящих маршрутов используются заголовки пакетов третьего и четвёртого уровней. Затем пакет пересылается в соответствии со значением поля next_hop выбранного маршрута — либо другому адресу назначения виртуальной машины, либо шлюзу виртуальной машины, либо шлюзу, управляемому Compute Engine. Пакеты, не соответствующие ни одному маршруту в таблице маршрутизации отправляющей виртуальной машины, отбрасываются.
- Ресурс Route должен содержать ровно одно из указаний: 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 / обязательный | Тип используемых учётных данных. Варианты:
|
description string | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. |
dest_range string / обязательный | Диапазон адресов назначения исходящих пакетов, к которым применяется этот маршрут. Поддерживается только IPv4. |
env_type string | Указывает среду Ansible, в которой выполняется этот модуль. Не задавайте это значение, если не знаете, что делаете. Это значение изменяет только строку User Agent для любых запросов API. |
name string / обязательный | Имя ресурса. Указывается клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой; последний символ не может быть дефисом. |
network dictionary / обязательный | Сеть, к которой применяется этот маршрут. Это поле представляет ссылку на ресурс Network в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink вашего ресурса. Кроме того, можно добавить `register: name-of-resource` в задачу gcp_compute_network, а затем задать для этого поля 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 — общедоступный диапазон IP-адресов CIDR (не RFC 1918). Это поле представляет ссылку на ресурс 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 VpnTunnel, который должен обрабатывать соответствующие пакеты. Это поле представляет ссылку на ресурс 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 string | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. Возвращается: при успехе |
destRange string | Диапазон адресов назначения исходящих пакетов, к которым применяется этот маршрут. Поддерживается только IPv4. Возвращается: при успехе |
name string | Имя ресурса. Указывается клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой; последний символ не может быть дефисом. Возвращается: при успехе |
network dictionary | Сеть, к которой применяется этот маршрут. Возвращается: при успехе |
nextHopGateway 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 . Возвращается: при успехе |
nextHopIlb dictionary | URL правила переадресации типа loadBalancingScheme=INTERNAL, которое должно обрабатывать соответствующие пакеты. Правило переадресации можно указать только с помощью частичного или полного URL. Например, все следующие URL допустимы: https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule regions/region/forwardingRules/forwardingRule Обратите внимание, что этот параметр можно использовать только в том случае, если destinationRange — общедоступный диапазон IP-адресов CIDR (не RFC 1918). Возвращается: при успехе |
nextHopInstance 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 . Возвращается: при успехе |
nextHopIp string | IP-адрес в сети экземпляра, который должен обрабатывать соответствующие пакеты. Возвращается: при успехе |
nextHopNetwork string | URL сети, которая должна обрабатывать соответствующие пакеты. Возвращается: при успехе |
nextHopVpnTunnel dictionary | URL VpnTunnel, который должен обрабатывать соответствующие пакеты. Возвращается: при успехе |
priority integer | Приоритет этого маршрута. Приоритет используется для разрешения неоднозначности, если найдено несколько подходящих маршрутов с одинаковой длиной префикса. Если два маршрута имеют одинаковую длину префикса, выбирается маршрут с наименьшим числовым значением приоритета. Значение по умолчанию — 1000. Допустимый диапазон — от 0 до 65535. Возвращается: при успехе |
tags list / elements=string | Список тегов экземпляров, к которым применяется этот маршрут. Возвращается: при успехе |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_route_module.html