gcp_compute_route – Создаёт маршрут GCP
Новая версия с 2.6.
Описание
- Представляет ресурс Маршрут.
- Маршрут — это правило, определяющее, как должны обрабатываться определённые пакеты виртуальной сетью. Маршруты ассоциируются с виртуальными машинами по тегу, и набор маршрутов для конкретной виртуальной машины называется её таблицей маршрутизации. Для каждого пакета, покидающего виртуальную машину, система ищет в таблице маршрутизации этой виртуальной машины единственный наиболее соответствующий маршрут.
- Маршруты сопоставляют пакеты по IP-адресу назначения, отдавая предпочтение меньшим или более конкретным диапазонам перед большими. Если возникает ничья, система выбирает маршрут с наименьшим значением приоритета. Если всё ещё есть ничья, она использует заголовки пакета уровня 3 и 4, чтобы выбрать только один из оставшихся соответствующих маршрутов. Затем пакет передаётся в соответствии с полем next_hop выигрышного маршрута — либо на другое виртуальное устройство назначения, виртуальный шлюз или шлюз Compute Engine. Пакеты, которые не соответствуют ни одному маршруту в таблице маршрутизации отправляющей виртуальной машины, будут отброшены.
- Ресурс Маршрута должен иметь ровно одну спецификацию nextHopGateway, nextHopInstance, nextHopIp или nextHopVpnTunnel.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| auth_kind строка / обязательно |
| Тип используемых учетных данных. |
| description строка добавлен в 2.7 | Необязательное описание этого ресурса. Укажите это свойство при создании ресурса. | |
| 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 шлюза, который должен обрабатывать соответствующие пакеты. В настоящее время вы можете указать только интернет-шлюз, используя полный или частичный допустимый 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_instance словарь | 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: имя-ресурса` к задаче gcp_compute_instance, а затем установить это поле next_hop_instance в "{{ имя-ресурса }}" | |
| next_hop_ip строка | Сеть IP-адрес экземпляра, который должен обрабатывать соответствующие пакеты. | |
| next_hop_vpn_tunnel словарь | URL 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 учетной записи службы, если выбран тип serviceaccount. | |
| 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, используя переменную среды c(gcp_service_account_file).
- для аутентификации можно установить service_account_contents, используя переменную среды c(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
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
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 . |
| 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 список | успех | Список меток экземпляров, к которым применяется эта маршрутизация. |
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом 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.9/modules/gcp_compute_route_module.html