community.aws.ec2_vpc_vpn – Создание, изменение и удаление подключений VPN EC2.
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws
Для использования в плейбуке укажите: community.aws.ec2_vpc_vpn
Добавлена в версии 1.0.0: коллекции community.aws
Обзор
- Этот модуль создаёт, изменяет и удаляет подключения VPN. Идемпотентность достигается использованием опции фильтров или указанием идентификатора подключения 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 для проверки 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 для вывода полного списка, выполненного во время выполнения playbook. Также может использоваться переменная окружения 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-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 булево | всегда | Если соединение 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/ec2_vpc_vpn_module.html