gcp_compute_route – Создаёт маршрут GCP
Новая версия с 2.6.
Описание
- Представляет ресурс маршрута.
- Маршрут — это правило, определяющее, как должны обрабатываться определённые пакеты виртуальной сетью. Маршруты ассоциируются с виртуальными машинами по тегу, и набор маршрутов для конкретной виртуальной машины называется её таблицей маршрутизации. Для каждого пакета, покидающего виртуальную машину, система ищет в таблице маршрутизации этой виртуальной машины единственный наилучший совпадающий маршрут.
- Маршруты сопоставляют пакеты по IP-адресу назначения, отдавая предпочтение более мелким или более конкретным диапазонам по сравнению с более крупными. Если есть ничья, система выбирает маршрут с наименьшим значением приоритета. Если всё ещё есть ничья, она использует заголовки пакета уровня три и четыре, чтобы выбрать только один из оставшихся совпадающих маршрутов. Затем пакет пересылается в соответствии с полем next_hop победившего маршрута — либо в другое место назначения виртуальной машины, либо в шлюз виртуальной машины или в управляемый Google 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. | |
| name - / обязательно | Имя ресурса. Указывается клиентом при создании ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. То есть, оно должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает: первая буква должна быть строчной буквой, а все последующие символы – дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| network - / обязательно | Сеть, к которой применяется этот маршрут. Это поле представляет ссылку на ресурс 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 VPN-тоннеля, который должен обрабатывать соответствующие пакеты. Это поле представляет ссылку на ресурс 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 строка | Строка, представляющая содержимое файла JSON учетной записи службы. Это не должно передаваться как словарь, а как строка с точным содержимым файла 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 с использованием переменной среды
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. - Значения переменных среды будут использоваться только в том случае, если значения в плейбуке не заданы.
- Параметры 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.8/modules/gcp_compute_route_module.html