community.aws.ec2_vpc_vpn – Создание, изменение и удаление подключений EC2 VPN.
Примечание
Этот плагин является частью коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Чтобы использовать его в книге задач, укажите: community.aws.ec2_vpc_vpn.
Новое в версии 1.0.0: of community.aws
Обзор
- Этот модуль создаёт, изменяет и удаляет VPN-подключения. Идемпотентность достигается с помощью параметра filters или указания идентификатора VPN-подключения.
Требования
Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется этот модуль.
- boto
- boto3
- botocore
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Использование параметров aws_access_key и profile одновременно устарело, и эти параметры будут взаимоисключающими после 2022-06-01. алиасы: ec2_access_key, access_key | ||
| aws_ca_bundle путь | Расположение файла CA Bundle для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: CA Bundle считывается со стороны модуля и может потребоваться явное копирование его из контроллера, если модуль не запускается локально. | ||
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. Дополнительную информацию о конфигурации boto можно найти по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto. | ||
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Использование параметров aws_secret_key и profile одновременно устарело, и эти параметры будут взаимоисключающими после 2022-06-01. алиасы: ec2_secret_key, secret_key | ||
| connection_type строка | По умолчанию: "ipsec.1" | Тип VPN-соединения. В настоящее время поддерживается только ipsec.1. | |
| customer_gateway_id строка | Идентификатор шлюза клиента. | ||
| debug_botocore_endpoint_logs логический тип |
| Использовать логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполненных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения плейбука. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
| delay целое число | По умолчанию: 15 | Время в секундах, которое нужно подождать перед повторной проверкой операции. | |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если она есть. алиасы: aws_endpoint_url, endpoint_url | ||
| filters словарь | Альтернатива использованию vpn_connection_id. Если найдено несколько совпадений, необходимо указать vpn_connection_id. Если один из следующих подпараметров является списком элементов для фильтрации, для поиска VPN необходимо соответствие только одному элементу. Например, если фильтр cidr ['194.168.2.0/24', '192.168.2.0/24'] , а маршрут VPN содержит только целевой CIDR-блок 192.168.2.0/24, этот VPN будет найден с помощью этого фильтра (если не существует нескольких VPN, соответствующих этому фильтру). Другой пример, если фильтр vpn равен ['vpn-ccf7e7ad', 'vpn-cb0ae2a2'] и один из VPN имеет состояние удалён (существует, но не может быть изменён), а другой существует и не удалён, он будет найден по этому фильтру. См. примеры. | ||
| bgp строка | Номер ASN протокола BGP, связанный с устройством BGP. Работает только если соединение подключено. Эта опция фильтрации в настоящее время не работает. | ||
| cgw строка | Идентификатор шлюза клиента в виде строки или списка таких строк. | ||
| cgw-config строка | Конфигурация шлюза клиента VPN в виде строки (в формате возвращаемого значения) или списка таких строк. | ||
| cidr строка | Целевой CIDR-блок маршрута VPN в виде строки или списка таких строк. | ||
| static-routes-only строка | Тип маршрутизации; true или false. | ||
| tag-keys строка | Ключ тега в виде строки или списка таких строк. | ||
| tag-values строка | Значение тега в виде строки или списка таких строк. | ||
| tags строка | Словарь пар ключ-значение. | ||
| vgw строка | Виртуальный шлюз частной сети в виде строки или списка таких строк. | ||
| vpn строка | Идентификатор VPN-соединения в виде строки или списка таких строк. | ||
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределяет aws_access_key, aws_secret_key и security_token. Поддержка одновременного использования с profile устарела. aws_access_key, aws_secret_key и security_token будут взаимоисключающими с profile после 2022-06-01. алиасы: aws_profile | ||
| purge_routes логический тип |
| Удалить или нет маршруты VPN-соединений, которые не указаны в задаче. | |
| purge_tags логический тип |
| Удалить или нет теги VPN-соединений, связанные с соединением, но не указанные в задаче. | |
| region строка | Регион AWS для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если она есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
алиасы: aws_region, ec2_region | ||
| routes список / элементы=строка | Маршруты, которые нужно добавить к соединению. | ||
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Использование параметров security_token и profile одновременно устарело, и эти параметры будут взаимоисключающими после 2022-06-01. алиасы: aws_security_token, access_token | ||
| state строка |
| Желаемое состояние VPN-соединения. | |
| static_only логический тип |
| Указывает, использует ли VPN-соединение только статические маршруты. Статические маршруты должны использоваться для устройств, которые не поддерживают BGP. | |
| tags словарь | Теги для добавления к VPN-соединению. | ||
| tunnel_options список / элементы=словарь | Необязательный список, содержащий не более двух элементов-словарей, каждый из которых может содержать ключи TunnelInsideCidr и/или PreSharedKey со соответствующими строковыми значениями. Значения по умолчанию AWS будут применены в случае отсутствия одного из указанных ключей. | ||
| PreSharedKey строка | Предварительно объявленный ключ (PSK) для установления начальной аутентификации между виртуальным шлюзом и шлюзом клиента. | ||
| TunnelInsideCidr строка | Диапазон внутренних IP-адресов для туннеля. | ||
| validate_certs логический тип |
| При значении "нет", SSL-сертификаты не будут проверяться для версий boto >= 2.6.0. | |
| vpn_connection_id строка | Идентификатор VPN-соединения. Требуется для изменения или удаления соединения, если опция фильтров не обеспечивает уникального соответствия. | ||
| vpn_gateway_id строка | Идентификатор виртуального шлюза. | ||
| wait_timeout целое число | По умолчанию: 600 | Время в секундах, в течение которого ожидание будет продолжено. | |
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION,AWS_CA_BUNDLE - Ansible использует конфигурационный файл boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, если требуется, но это также можно настроить в конфигурационном файле boto
Примеры
# Note: None of these examples set aws_access_key, aws_secret_key, or region.
# It is assumed that their matching environment variables are set.
- name: create a VPN connection
community.aws.ec2_vpc_vpn:
state: present
vpn_gateway_id: vgw-XXXXXXXX
customer_gateway_id: cgw-XXXXXXXX
- name: modify VPN connection tags
community.aws.ec2_vpc_vpn:
state: present
vpn_connection_id: vpn-XXXXXXXX
tags:
Name: ansible-tag-1
Other: ansible-tag-2
- name: delete a connection
community.aws.ec2_vpc_vpn:
vpn_connection_id: vpn-XXXXXXXX
state: absent
- name: modify VPN tags (identifying VPN by filters)
community.aws.ec2_vpc_vpn:
state: present
filters:
cidr: 194.168.1.0/24
tag-keys:
- Ansible
- Other
tags:
New: Tag
purge_tags: true
static_only: true
- name: set up VPN with tunnel options utilizing 'TunnelInsideCidr' only
community.aws.ec2_vpc_vpn:
state: present
filters:
vpn: vpn-XXXXXXXX
static_only: true
tunnel_options:
-
TunnelInsideCidr: '169.254.100.1/30'
-
TunnelInsideCidr: '169.254.100.5/30'
- name: add routes and remove any preexisting ones
community.aws.ec2_vpc_vpn:
state: present
filters:
vpn: vpn-XXXXXXXX
routes:
- 195.168.2.0/24
- 196.168.2.0/24
purge_routes: true
- name: remove all routes
community.aws.ec2_vpc_vpn:
state: present
vpn_connection_id: vpn-XXXXXXXX
routes: []
purge_routes: true
- name: delete a VPN identified by filters
community.aws.ec2_vpc_vpn:
state: absent
filters:
tags:
Ansible: Tag
Значения возврата
Общие значения возврата документированы здесь, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| changed boolean | всегда | Если соединение VPN изменилось. Пример: {'changed': True} | |
| customer_gateway_configuration строка | state=present | Настройка соединения VPN. | |
| customer_gateway_id строка | state=present | Идентификатор шлюза клиента, подключённого по данному соединению. Пример: {'customer_gateway_id': 'cgw-1220c87b'} | |
| options сложный | state=present | Параметры соединения VPN (в настоящее время содержит только static_routes_only). | |
| static_routes_only строка | state=present | Если соединение VPN разрешает только статические маршруты. Пример: {'static_routes_only': True} | |
| routes список / элементы=строка | state=present | Маршруты соединения VPN. Пример: {'routes': [{'destination_cidr_block': '192.168.1.0/24', 'state': 'available'}]} | |
| state строка | state=present | Состояние соединения VPN. Пример: {'state': 'available'} | |
| tags словарь | state=present | Теги, связанные с соединением. Пример: {'tags': {'name': 'ansible-test', 'other': 'tag'}} | |
| type строка | state=present | Тип соединения VPN (в настоящее время доступен только ipsec.1). Пример: {'type': 'ipsec.1'} | |
| vgw_telemetry список / элементы=строка | state=present | Телеметрия для туннеля VPN. Пример: {'vgw_telemetry': [{'accepted_route_count': 123, 'last_status_change': 'datetime(2015, 1, 1)', 'outside_ip_address': 'строка', 'status': 'up', 'status_message': 'строка'}]} | |
| vpn_connection_id строка | state=present | Идентификатор соединения VPN. Пример: {'vpn_connection_id': 'vpn-781e0e19'} | |
| vpn_gateway_id строка | state=present | Идентификатор виртуального шлюза, подключенного к соединению. Пример: {'vpn_gateway_id': 'vgw-cb0ae2a2'} | |
Авторы
- Sloane Hertel (@s-hertel)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/aws/ec2_vpc_vpn_module.html