gcp_compute_route - Создаёт маршрут GCP
Новая версия с 2.6.
Обзор
- Представляет ресурс маршрута.
- Маршрут — это правило, которое определяет, как должны обрабатываться определённые пакеты виртуальной сетью. Маршруты ассоциируются с виртуальными машинами по тегу, а набор маршрутов для конкретной виртуальной машины называется её таблицей маршрутизации. Для каждого пакета, покидающего виртуальную машину, система ищет в таблице маршрутизации этой виртуальной машины единственный наилучший соответствующий маршрут.
- Маршруты сопоставляют пакеты по адресу назначения IP-адреса, отдавая предпочтение более мелким или более специфичным диапазонам по сравнению с более широкими. Если есть ничья, система выбирает маршрут с наименьшим значением приоритета. Если всё ещё есть ничья, она использует заголовки пакета уровня три и четыре, чтобы выбрать только один из оставшихся соответствующих маршрутов. Затем пакет передаётся так, как указано в поле next_hop выигрышного маршрута — либо в другое место назначения виртуальной машины, шлюз виртуальной машины или шлюз, управляемый Compute Engine.
- Ресурс маршрута должен содержать ровно одну спецификацию для nextHopGateway, nextHopInstance, nextHopIp или nextHopVpnTunnel.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| auth_kind обязательно |
| Тип используемых учетных данных. |
| dest_range | Диапазон адресов назначения исходящих пакетов, к которому применяется этот маршрут. Поддерживается только IPv4. | |
| name | Имя ресурса. Предоставляется клиентом при создании ресурса. Длина имени должна составлять от 1 до 63 символов и соответствовать RFC1035. То есть длина имени должна составлять от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. | |
| 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 . | |
| next_hop_ip | Сеть IP-адрес экземпляра, который должен обрабатывать соответствующие пакеты. | |
| next_hop_vpn_tunnel | URL туннеля VPN, который должен обрабатывать соответствующие пакеты. | |
| priority | Приоритет этого маршрута. Приоритет используется для разрешения ничьих в тех случаях, когда существует более одного соответствующего маршрута с одинаковой длиной префикса. В случае двух маршрутов с одинаковой длиной префикса выигрывает тот, у которого значение приоритета меньше. Значение по умолчанию — 1000. Допустимый диапазон — от 0 до 65535. | |
| project | Проект Google Cloud Platform, который необходимо использовать. | |
| scopes обязательно | Массив используемых областей. | |
| service_account_email | Дополнительный адрес электронной почты учетной записи сервиса, если выбран machineaccount, и пользователь не хочет использовать адрес по умолчанию. | |
| service_account_file | Путь к файлу JSON учетной записи сервиса, если в качестве типа выбран serviceaccount. | |
| state обязательно |
| Определяет, должен ли указанный объект существовать в GCP |
| tags | Список тегов экземпляров, к которым относится этот маршрут. |
Примечания
Примечание
- Для аутентификации можно установить service_account_file с помощью переменной среды
GCP_SERVICE_ACCOUNT_FILE. - Для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в playbook не заданы.
- Параметры 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 }}"
scopes:
- https://www.googleapis.com/auth/compute
state: present
register: network
- name: create a route
gcp_compute_route:
name: testObject
dest_range: '192.168.6.0/24'
next_hop_gateway: 'global/gateways/default-internet-gateway'
network: "{{ network }}"
tags:
- backends
- databases
project: testProject
auth_kind: service_account
service_account_file: /tmp/auth.pem
scopes:
- https://www.googleapis.com/auth/compute
state: present
Значения возврата
Общие значения возврата описаны в здесь, а следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| dest_range строка | успех | Диапазон адресов назначения исходящих пакетов, к которому применяется этот маршрут. Поддерживается только IPv4. |
| name строка | успех | Имя ресурса. Предоставляется клиентом при создании ресурса. Длина имени должна составлять от 1 до 63 символов и соответствовать RFC1035. То есть длина имени должна составлять от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`, что означает, что первый символ должен быть строчной буквой, а все последующие символы должны быть дефисом, строчной буквой или цифрой, за исключением последнего символа, который не может быть дефисом. |
| 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 . |
| next_hop_ip строка | успех | Сеть IP-адрес экземпляра, который должен обрабатывать соответствующие пакеты. |
| next_hop_vpn_tunnel строка | успех | URL туннеля VPN, который должен обрабатывать соответствующие пакеты. |
| priority целое число | успех | Приоритет этого маршрута. Приоритет используется для разрешения ничьих в тех случаях, когда существует более одного соответствующего маршрута с одинаковой длиной префикса. В случае двух маршрутов с одинаковой длиной префикса выигрывает тот, у которого значение приоритета меньше. Значение по умолчанию — 1000. Допустимый диапазон — от 0 до 65535. |
| tags список | успех | Список тегов экземпляров, к которым относится этот маршрут. |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратной совместимости интерфейса.
Техническое обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. Дополнительную информацию см. в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- 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.6/modules/gcp_compute_route_module.html