модуль google.cloud.gcp_compute_vpn_tunnel – создание VpnTunnel в GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install google.cloud. Для использования этого модуля необходимы дополнительные требования. Подробнее см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: google.cloud.gcp_compute_vpn_tunnel.
Краткое описание
- Ресурс VPN-туннеля.
Требования
Следующие требования должны быть выполнены на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если тип учётных данных — accesstoken. |
auth_kind string / обязательный | Тип используемых учётных данных. Варианты:
|
description string | Необязательное описание этого ресурса. |
env_type string | Указывает, в какой среде Ansible выполняется этот модуль. Не следует задавать этот параметр, если вы не знаете, что делаете. Этот параметр изменяет только строку User Agent для любых запросов к API. |
ike_version integer | Версия протокола IKE, используемая при установлении VPN-туннеля с одноранговым VPN-шлюзом. Допустимые версии IKE — 1 или 2. Версия по умолчанию — 2. По умолчанию: |
local_traffic_selector list / элементы=string | Локальный селектор трафика, используемый при установлении VPN-туннеля с одноранговым VPN-шлюзом. Значение должно быть строкой в формате CIDR, например `192.168.0.0/16`. Диапазоны не должны пересекаться. Поддерживается только IPv4. |
name string / обязательный | Имя ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой; последний символ не может быть дефисом. |
peer_external_gateway dictionary | URL внешнего VPN-шлюза на стороне узла-партнёра, к которому подключён этот VPN-туннель. Это поле представляет ссылку на ресурс ExternalVpnGateway в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink ресурса. Или можно добавить `register: name-of-resource` в задачу gcp_compute_external_vpn_gateway, а затем задать для поля peer_external_gateway значение “{{ name-of-resource }}” |
peer_external_gateway_interface integer | Идентификатор интерфейса внешнего VPN-шлюза, к которому подключён этот VPN-туннель. |
peer_gcp_gateway dictionary | URL HA VPN-шлюза GCP на стороне узла-партнёра, к которому подключён этот VPN-туннель. Если этот параметр задан, VPN-туннель автоматически использует тот же идентификатор vpn_gateway_interface, что и VPN-шлюз GCP узла-партнёра. Это поле представляет ссылку на ресурс VpnGateway в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink ресурса. Или можно добавить `register: name-of-resource` в задачу gcp_compute_vpn_gateway, а затем задать для поля peer_gcp_gateway значение “{{ name-of-resource }}” |
peer_ip string | IP-адрес однорангового VPN-шлюза. Поддерживается только IPv4. |
project string | Проект Google Cloud Platform, который будет использоваться. |
region string / обязательный | Регион, в котором находится туннель. |
remote_traffic_selector list / элементы=string | Удалённый селектор трафика, используемый при установлении VPN-туннеля с одноранговым VPN-шлюзом. Значение должно быть строкой в формате CIDR, например `192.168.0.0/16`. Диапазоны не должны пересекаться. Поддерживается только IPv4. |
router dictionary | URL ресурса маршрутизатора, используемого для динамической маршрутизации. Это поле представляет ссылку на ресурс Router в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink ресурса. Или можно добавить `register: name-of-resource` в задачу gcp_compute_router, а затем задать для поля router значение “{{ name-of-resource }}” |
scopes list / элементы=string | Массив используемых областей доступа |
service_account_contents jsonarg | Содержимое JSON-файла учётной записи службы — в виде словаря или JSON-строки, представляющей его. |
service_account_email string | Необязательный адрес электронной почты учётной записи службы. Используется, если выбран machineaccount, а пользователь не хочет использовать адрес по умолчанию. |
service_account_file path | Путь к JSON-файлу учётной записи службы, если в качестве типа выбрано serviceaccount. |
string / обязательный | Общий секрет, используемый для установления защищённого сеанса между шлюзом Cloud VPN и одноранговым VPN-шлюзом. |
state string | Должен ли указанный объект существовать в GCP Варианты:
|
target_vpn_gateway dictionary | URL целевого VPN-шлюза, с которым связан этот VPN-туннель. Это поле представляет ссылку на ресурс TargetVpnGateway в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink ресурса. Или можно добавить `register: name-of-resource` в задачу gcp_compute_target_vpn_gateway, а затем задать для поля target_vpn_gateway значение “{{ name-of-resource }}” |
vpn_gateway dictionary | URL VPN-шлюза, с которым связан этот VPN-туннель. Этот параметр необходимо использовать, если создан ресурс VPN-шлюза высокой доступности. Это поле представляет ссылку на ресурс VpnGateway в GCP. Его можно задать двумя способами. Во-первых, можно указать словарь с ключом ‘selfLink’ и значением selfLink ресурса. Или можно добавить `register: name-of-resource` в задачу gcp_compute_vpn_gateway, а затем задать для поля vpn_gateway значение “{{ name-of-resource }}” |
vpn_gateway_interface integer | Идентификатор интерфейса VPN-шлюза, с которым связан этот VPN-туннель. |
Примечания
Примечание
- Справочник API: https://cloud.google.com/compute/docs/reference/rest/v1/vpnTunnels
- Обзор Cloud VPN: https://cloud.google.com/vpn/docs/concepts/overview
- Сети и маршрутизация туннелей: https://cloud.google.com/vpn/docs/concepts/choosing-networks-routing
- Для аутентификации можно задать 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-vpn-tunnel
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a router
google.cloud.gcp_compute_router:
name: router-vpn-tunnel
network: "{{ network }}"
bgp:
asn: 64514
advertise_mode: CUSTOM
advertised_groups:
- ALL_SUBNETS
advertised_ip_ranges:
- range: 1.2.3.4
- range: 6.7.0.0/16
region: us-central1
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: router
- name: create a target vpn gateway
google.cloud.gcp_compute_target_vpn_gateway:
name: gateway-vpn-tunnel
region: us-west1
network: "{{ network }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: gateway
- name: create a vpn tunnel
google.cloud.gcp_compute_vpn_tunnel:
name: test_object
region: us-west1
target_vpn_gateway: "{{ gateway }}"
router: "{{ router }}"
shared_secret: super secret
project: test_project
auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem"
state: present
Возвращаемые значения
Общие возвращаемые значения описаны здесь. Ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
creationTimestamp string | Время создания в текстовом формате RFC3339. Возвращается: при успешном выполнении |
description string | Необязательное описание этого ресурса. Возвращается: при успешном выполнении |
id string | Уникальный идентификатор ресурса. Этот идентификатор назначается сервером. Возвращается: при успешном выполнении |
ikeVersion integer | Версия протокола IKE, используемая при установлении VPN-туннеля с одноранговым VPN-шлюзом. Допустимые версии IKE — 1 или 2. Версия по умолчанию — 2. Возвращается: при успешном выполнении |
localTrafficSelector list / элементы=string | Локальный селектор трафика, используемый при установлении VPN-туннеля с одноранговым VPN-шлюзом. Значение должно быть строкой в формате CIDR, например `192.168.0.0/16`. Диапазоны не должны пересекаться. Поддерживается только IPv4. Возвращается: при успешном выполнении |
name string | Имя ресурса. Имя должно содержать от 1 до 63 символов и соответствовать RFC1035. В частности, имя должно содержать от 1 до 63 символов и соответствовать регулярному выражению `[a-z]([-a-z0-9]*[a-z0-9])?`: первый символ должен быть строчной буквой, а все последующие символы — дефисом, строчной буквой или цифрой; последний символ не может быть дефисом. Возвращается: при успешном выполнении |
peerExternalGateway dictionary | URL внешнего VPN-шлюза на стороне узла-партнёра, к которому подключён этот VPN-туннель. Возвращается: при успешном выполнении |
peerExternalGatewayInterface integer | Идентификатор интерфейса внешнего VPN-шлюза, к которому подключён этот VPN-туннель. Возвращается: при успешном выполнении |
peerGcpGateway dictionary | URL HA VPN-шлюза GCP на стороне узла-партнёра, к которому подключён этот VPN-туннель. Если этот параметр задан, VPN-туннель автоматически использует тот же идентификатор vpn_gateway_interface, что и VPN-шлюз GCP узла-партнёра. Возвращается: при успешном выполнении |
peerIp string | IP-адрес однорангового VPN-шлюза. Поддерживается только IPv4. Возвращается: при успешном выполнении |
region string | Регион, в котором находится туннель. Возвращается: при успешном выполнении |
remoteTrafficSelector list / элементы=string | Удалённый селектор трафика, используемый при установлении VPN-туннеля с одноранговым VPN-шлюзом. Значение должно быть строкой в формате CIDR, например `192.168.0.0/16`. Диапазоны не должны пересекаться. Поддерживается только IPv4. Возвращается: при успешном выполнении |
router dictionary | URL ресурса маршрутизатора, используемого для динамической маршрутизации. Возвращается: при успешном выполнении |
string | Общий секрет, используемый для установления защищённого сеанса между шлюзом Cloud VPN и одноранговым VPN-шлюзом. Возвращается: при успешном выполнении |
string | Хеш общего секрета. Возвращается: при успешном выполнении |
targetVpnGateway dictionary | URL целевого VPN-шлюза, с которым связан этот VPN-туннель. Возвращается: при успешном выполнении |
vpnGateway dictionary | URL VPN-шлюза, с которым связан этот VPN-туннель. Этот параметр необходимо использовать, если создан ресурс VPN-шлюза высокой доступности. Возвращается: при успешном выполнении |
vpnGatewayInterface integer | Идентификатор интерфейса VPN-шлюза, с которым связан этот VPN-туннель. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 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_vpn_tunnel_module.html