hetzner_vswitch
Ansible Роль: Hetzner vSwitch
Ansible роль, которая управляет Hetzner Robot vSwitch.
Предварительные требования
- Существующая учетная запись Hetzner Online GmbH.
- Настроенная учетная запись Hetzner Robot Webservice.
Требования
Название | Тип | Версия | Местоположение |
---|---|---|---|
ansible-filter | Python пакет | 1.0.1 | Узел управления |
Переменные роли
Доступные переменные перечислены ниже с значениями по умолчанию (см. defaults/main.yml
):
hetzner_vswitch_webservice_base_url: https://robot-ws.your-server.de
Базовый URL, указывающий на Hetzner Robot API. Эта переменная в основном используется для тестирования, нет необходимости менять значение по умолчанию.
hetzner_vswitch_webservice_username: robot
Имя пользователя для входа в веб-сервис. Может быть установлено/изменено, как описано в разделе Изменение данных доступа (Hetzner Wiki).
hetzner_vswitch_webservice_password: secret
Пароль для веб-сервиса. Может быть установлен/изменен, как описано в разделе Изменение данных доступа (Hetzner Wiki).
hetzner_vswitch_instances:
- name: Новый vSwitch
vlan: 1234
Можно управлять несколькими экземплярами vSwitch с помощью переменной hetzner_vswitch_instances
. vSwitch определяется по атрибуту name
. Имя должно быть уникальным, чтобы избежать коллизий и неожиданных ошибок. Значение по умолчанию для атрибута state
для vSwitch — present
.
hetzner_vswitch_instances:
- name: Новый vSwitch
interface: vlan1
Имя виртуального интерфейса для сети, основанной на vSwitch, может быть указано с помощью ключевого слова interface
. С eth0
как физическим интерфейсом и 1234
как VLAN ID, это по умолчанию будет eth0.1234
, если не указано.
hetzner_vswitch_instances:
- name: Новый vSwitch
state: absent
Чтобы гарантировать удаление vSwitch, добавьте state: absent
. Атрибут name
остается обязательным для идентификации текущего состояния.
hetzner_vswitch_host:
- name: Новый vSwitch
Каждый хост может быть связан с одним или несколькими vSwitch, определенными в hetzner_vswitch_instances
, с помощью переменной hetzner_vswitch_host
. vSwitch ссылается на атрибут name
.
Хосты с неопределенной переменной hetzner_vswitch_host
игнорируются ролью.
hetzner_vswitch_host:
- name: Новый vSwitch
state: absent
Добавьте state: absent
, чтобы отвязать хост от vSwitch.
hetzner_vswitch_instances:
- name: Новый vSwitch
vlan: 4001
ipv4_address: 192.168.100.0
ipv4_netmask: 255.255.255.0
hetzner_vswitch_host:
- name: Новый vSwitch
ipv4_address: 192.168.100.1
Чтобы управлять базовой сетевой конфигурацией, ipv4_address
и ipv4_netmask
должны присутствовать в hetzner_vswitch_instances
.
Необходимый IP-адрес хоста должен быть указан как ipv4_address
в переменной hetzner_vswitch_host
.
hetzner_vswitch_webservice_concurrent_requests: 1
hetzner_vswitch_webservice_concurrent_poll: 1
Чтобы ускорить выполнение роли при обработке конфигурации vSwitch с несколькими vSwitch, количество параллельных запросов к Hetzner Robot API можно контролировать с помощью переменной hetzner_vswitch_webservice_concurrent_requests
. Интервал опроса для обработки результатов асинхронных запросов устанавливается с помощью hetzner_vswitch_webservice_concurrent_poll
. Ознакомьтесь с официальной документацией по
Асинхронным действиям и опросу для получения дополнительной информации.
Теги
Теги могут использоваться для ограничения выполнения роли на конкретном модуле задачи. Доступные теги:
hetzner_vswitch
: Охватывает полный жизненный цикл роли.hetzner_vswitch_install
,install
: Устанавливает необходимые пакеты.hetzner_vswitch_config
,config
: Конфигурирует связанные пакеты и ресурсы.hetzner_vswitch_vswitch
,config
: Управляет конфигурацией vswitch с использованием Hetzner Robot API.hetzner_vswitch_vswitch_server
,config
: Добавляет/удаляет сервера в/из vswitch с использованием Hetzner Robot API.hetzner_vswitch_host
,config
: Настраивает сетевые параметры на целевых хостах.hetzner_vswitch_handle
,handle
: Выполняет обработчики, когда это необходимо.
Зависимости
Нет.
Пример плейбука
- hosts: all
roles:
- nl2go.hetzner_vswitch
Разработка
Используйте docker-molecule согласно инструкциям для запуска Molecule или установите Molecule локально (не рекомендуется, могут возникнуть конфликты версий).
Используйте следующее для запуска тестов:
molecule test --all
Содержатели
Лицензия
См. файл LICENSE.md для получения подробностей.
Информация об авторе
Эта роль была создана в 2019 году компанией Newsletter2Go GmbH.
Manage Hetzner Robot vSwitch (https://wiki.hetzner.de/index.php/Vswitch/en) using Ansible.
ansible-galaxy install nl2go/ansible-role-hetzner-vswitch