vpn_gateway
Ansible Роль: VPN Gateway
Это Ansible роль, которая управляет настройкой VPN-туннеля между двумя узлами на основе IPsec / strongSwan и предоставляет конфигурацию маршрутизации, связанную с шлюзом.
Переменные роли
Доступные переменные перечислены ниже, вместе с их значениями по умолчанию (см. defaults/main.yml
):
vpn_gateway_configs:
- name: default
psk: secret
Конфигурационные наборы должны быть определены с использованием переменной vpn_gateway_configs
. Название конфигурационного набора обязательно для идентификации. Предварительный общий ключ может быть указан с помощью psk
.
vpn_gateway_configs:
- name: default
state: absent
Конкретную конфигурацию шлюза можно удалить с помощью state: absent
.
vpn_gateway_configs:
- name: default
psk: secret
params:
lifetime: 8h
Общие параметры подключения, такие как lifetime
, могут быть заданы в разделе params
(см. ipsec.conf для полного описания параметров).
vpn_gateway_configs:
- name: default
psk: secret
local:
public: 1.1.1.1
networks:
- 172.4.0.0/21
remote:
public: 1.2.3.4
networks:
- 172.240.0.0/21
- 10.2.0.0/16
Конфигурационный набор содержит части конфигурации local
и remote
узлов.
vpn_gateway_default_config_params:
type: tunnel
keyingtries: 0
ikelifetime: 1h
lifetime: 8h
dpddelay: 300s
dpdtimeout: 120
dpdaction: clear
authby: secret
auto: start
esp: aes256-sha256-modp3072
ike: aes256-sha256-modp3072
keyexchange: ikev2
leftfirewall: 'yes'
compress: 'no'
rekey: 'no'
fragmentation: 'yes'
forceencaps: 'yes'
Параметры params
внутри vpn_gateway_configs
расширяют/переопределяют параметры подключения по умолчанию, указанные выше.
vpn_gateway_config_dir: "/etc/ipsec.d/{{ role_name }}"
Определяет пользовательский каталог конфигурации IPsec для изоляции.
Теги
Теги могут быть использованы для ограничения выполнения роли до определенного модуля задачи. Доступные теги:
vpn_gateway
: Обхватывает весь жизненный цикл роли.vpn_gateway_validate
,validate
: Проверяет заданную конфигурацию.vpn_gateway_install
,install
: Устанавливает необходимые пакеты.vpn_gateway_config
,config
: Настраивает необходимые пакеты.
Зависимости
Нет.
Пример плейбука
- hosts: all
roles:
- nl2go.vpn_gateway
Разработка
Используйте docker-molecule согласно инструкциям для запуска Molecule или установите Molecule локально (не рекомендуется, могут возникнуть конфликты версий).
Введите токен Hetzner Cloud:
export HCLOUD_TOKEN=123abc456efg
Используйте следующее для запуска тестов:
molecule test --all
Поддержка
Лицензия
Смотрите файл LICENSE.md для получения подробной информации.
Информация об авторе
Эта роль была создана в 2020 году компанией Newsletter2Go GmbH.
Manages a VPN tunnel setup between two peers based on IPsec/strongSwanand provides gateway related routing configuration.
ansible-galaxy install nl2go/ansible-role-vpn-gateway