Spec-Zone.ru › Ansible

Модуль community.aws.ec2_vpc_vpn — Создание, изменение и удаление подключений EC2 VPN

Примечание

Этот модуль является частью коллекции community.aws (версия 8.0.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.

Чтобы использовать его в плейбуке, укажите: community.aws.ec2_vpc_vpn.

Новая функция в community.aws 1.0.0

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Значения возврата

Обзор

  • Этот модуль создаёт, изменяет и удаляет VPN-соединения. Идемпотентность достигается с помощью параметра filters или указания идентификатора VPN-соединения.

Требования

Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.

  • python >= 3.6
  • boto3 >= 1.26.0
  • botocore >= 1.29.0

Параметры

Параметр

Комментарии

access_key

псевдонимы: aws_access_key_id, aws_access_key, ec2_access_key

строка

Идентификатор ключа доступа AWS.

См. документацию AWS для получения дополнительной информации об маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также могут быть использованы переменные среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY в порядке убывания приоритета.

Параметры aws_access_key и profile взаимоисключающие.

Псевдоним aws_access_key_id был добавлен в релизе 5.1.0 для согласованности с SDK AWS botocore.

Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_ACCESS_KEY устарела и будет удалена в релизе после 2024-12-01.

aws_ca_bundle

путь

Расположение пакета CA, используемого для проверки сертификатов SSL.

Также может быть использована переменная среды AWS_CA_BUNDLE.

aws_config

словарь

Словарь для изменения конфигурации botocore.

Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

connection_type

строка

Тип подключения VPN.

В настоящее время поддерживается только ipsec.1.

По умолчанию: "ipsec.1"

customer_gateway_id

строка

Идентификатор шлюза клиента.

debug_botocore_endpoint_logs

логический

Использовать botocore.endpoint логгер для анализа уникальных (а не общих) "resource:action" API-вызовов, сделанных во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте aws_resource_action обратный вызов для вывода в общий список, сделанный во время выполнения playbook.

Также может быть использована переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS.

Варианты:

  • false ← (по умолчанию)
  • true

delay

целое число

Время в секундах, которое нужно подождать перед повторной проверкой операции.

По умолчанию: 15

endpoint_url

псевдонимы: ec2_url, aws_endpoint_url, s3_url

строка

URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS службам, коллекции amazon.aws и community.aws протестированы только для AWS.

Также могут быть использованы переменные среды AWS_URL или EC2_URL в порядке убывания приоритета.

Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменной среды EC2_URL устарела и будет удалена в релизе после 2024-12-01.

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

string

Идентификатор VPN-соединения в виде строки или списка таких строк.

profile

aliases: aws_profile

string

Используемый именованный профиль AWS для аутентификации.

См. документацию AWS для получения дополнительной информации об именованных профилях https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную среды AWS_PROFILE.

Параметр profile несовместим с параметрами aws_access_key, aws_secret_key и security_token.

purge_routes

boolean

Удалить ли маршруты VPN-соединений, не указанные в задаче.

Варианты:

  • false ← (по умолчанию)
  • true

purge_tags

boolean

Если purge_tags=true и задан параметр tags, существующие метки будут удалены из ресурса, чтобы точно соответствовать тому, что определено параметром tags.

Если параметр tags не задан, метки не будут изменены, даже если purge_tags=True.

Ключи меток, начинающиеся с aws:, зарезервированы Amazon и не могут быть изменены. Таким образом, они будут игнорироваться для целей параметра purge_tags. Дополнительную информацию см. в документации Amazon https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html#tag-conventions.

Варианты:

  • false
  • true ← (по умолчанию)

region

aliases: aws_region, ec2_region

string

AWS регион для использования.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, region игнорируется.

Также можно использовать переменные среды AWS_REGION или EC2_REGION.

Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

Псевдоним ec2_region устарел и будет удален в релизе после 2024-12-01

Поддержка переменной среды EC2_REGION устарела и будет удалена в релизе после 2024-12-01.

routes

list / elements=string

Маршруты для добавления к соединению.

По умолчанию: []

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_secret_key

string

Секретный ключ доступа AWS.

См. документацию AWS для получения дополнительной информации о маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, или EC2_SECRET_KEY в порядке убывания приоритета.

Параметры secret_key и profile взаимоисключающие.

Псевдоним aws_secret_access_key был добавлен в релизе 5.1.0 для соответствия SDK AWS botocore.

Псевдоним ec2_secret_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной среды EC2_SECRET_KEY устарела и будет удалена в релизе после 2024-12-01.

session_token

aliases: aws_session_token, security_token, aws_security_token, access_token

string

Токен сессии AWS STS для использования с временными учетными данными.

См. документацию AWS для получения дополнительной информации о маркерах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные среды AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN, или EC2_SECURITY_TOKEN в порядке убывания приоритета.

Параметры security_token и profile взаимоисключающие.

Псевдонимы aws_session_token и session_token были добавлены в релизе 3.2.0, а параметр был переименован из security_token в session_token в релизе 6.0.0.

Псевдонимы security_token, aws_security_token и access_token устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменных среды EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена в релизе после 2024-12-01.

state

string

Желаемое состояние VPN-соединения.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

static_only

boolean

Указывает, использует ли VPN-соединение только статические маршруты. Статические маршруты должны использоваться для устройств, не поддерживающих BGP.

Варианты:

  • false ← (по умолчанию)
  • true

tags

aliases: resource_tags

dictionary

Словарь, представляющий метки, которые будут применены к ресурсу.

Если параметр tags не задан, метки не будут изменены.

transit_gateway_id

string

added in community.aws 6.2.0

Идентификатор шлюза транзита.

Взаимоисключительно с vpn_gateway_id.

tunnel_options

список / элементы=словарь

Необязательный список, содержащий не более двух элементов-словаря, каждый из которых может содержать ключи TunnelInsideCidr и/или PreSharedKey со соответствующими строковыми значениями. Значения по умолчанию AWS будут применяться в случае отсутствия указанных ключей.

По умолчанию: []

PreSharedKey

строка

Предварительно объявленный ключ (PSK) для установления начальной аутентификации между виртуальным частным шлюзом и шлюзом клиента.

TunnelInsideCidr

строка

Диапазон внутренних IP-адресов для туннеля.

validate_certs

логическое

При установке в false, сертификаты SSL не будут проверяться при общении с API AWS.

Настройка validate_certs=false категорически не рекомендуется. В качестве альтернативы, рассмотрите установку aws_ca_bundle вместо этого.

Варианты:

  • false
  • true ← (по умолчанию)

vpn_connection_id

строка

Идентификатор VPN-соединения. Требуется для изменения или удаления соединения, если опция фильтров не обеспечивает уникального соответствия.

vpn_gateway_id

строка

Идентификатор виртуального частного шлюза.

Взаимоисключительно с transit_gateway_id.

wait_timeout

целое число

Время в секундах, после которого ожидание прекращается.

По умолчанию: 600

Примечания

Примечание

  • Внимание: Для модулей переменные среды и конфигурационные файлы считываются из контекста хоста Ansible, а не из контекста контроллера. Поэтому файлы могут потребоваться скопировать на хост. Для плагинов поиска и соединения переменные среды и конфигурационные файлы считываются из контекста контроллера Ansible, а не из контекста хоста.
  • AWS SDK (boto3), используемый Ansible, также может считывать значения по умолчанию для учетных данных и других настроек, таких как регион, из своих конфигурационных файлов в контексте хоста Ansible (обычно ~/.aws/credentials). Дополнительную информацию см. на https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.

Примеры

# Note: These examples do not set authentication details, see the AWS Guide for details.

- name: create a VPN connection with vpn_gateway_id
  community.aws.ec2_vpc_vpn:
    state: present
    vpn_gateway_id: vgw-XXXXXXXX
    customer_gateway_id: cgw-XXXXXXXX

- name: Attach a vpn connection to transit gateway
  community.aws.ec2_vpc_vpn:
    state: present
    transit_gateway_id: tgw-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

string

Настройка VPN-соединения.

Возвращаемое значение: state=present

customer_gateway_id

string

Идентификатор шлюза клиента, подключенного через соединение.

Возвращаемое значение: state=present

Пример: "{'customer_gateway_id': 'cgw-1220c87b'}"

options

complex

Параметры VPN-соединения (в настоящее время содержит только static_routes_only).

Возвращаемое значение: state=present

static_routes_only

string

Если VPN-соединение позволяет только статические маршруты.

Возвращаемое значение: state=present

Пример: "{'static_routes_only': True}"

routes

list / elements=string

Маршруты VPN-соединения.

Возвращаемое значение: state=present

Пример: {"routes": [{"destination_cidr_block": "192.168.1.0/24", "state": "available"}]}

state

string

Состояние VPN-соединения.

Возвращаемое значение: state=present

Пример: "{'state': 'available'}"

tags

dictionary

Теги, связанные с соединением.

Возвращаемое значение: state=present

Пример: {"tags": {"name": "ansible-test", "other": "tag"}}

transit_gateway_id

string

Идентификатор транзитного шлюза, к которому можно подключить VPN-соединение.

Возвращаемое значение: state=present

Пример: "{'transit_gateway_id': 'tgw-cb0ae2a2'}"

type

string

Тип VPN-соединения (в настоящее время доступен только ipsec.1).

Возвращаемое значение: state=present

Пример: "{'type': 'ipsec.1'}"

vgw_telemetry

list / elements=string

Телеметрия VPN-туннеля.

Возвращаемое значение: state=present

Пример: {"vgw_telemetry": [{"accepted_route_count": 123, "last_status_change": "datetime(2015, 1, 1)", "outside_ip_address": "string", "status": "up", "status_message": "string"}]}

vpn_connection_id

string

Идентификатор VPN-соединения.

Возвращаемое значение: state=present

Пример: "{'vpn_connection_id': 'vpn-781e0e19'}"

vpn_gateway_id

string

Идентификатор виртуального шлюза, подключенного через соединение.

Возвращаемое значение: state=present

Пример: "{'vpn_gateway_id': 'vgw-cb0ae2a2'}"

Авторы

  • Sloane Hertel (@s-hertel)

Ссылки на коллекцию

  • Отслеживание ошибок
  • Репозиторий (источники)
  • Общение

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/ec2_vpc_vpn_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API