keepalived
Роль Keepalived
:warning: Этот проект архивирован! :warning:
Эта роль была перенесена в нашу коллекцию hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
Роль Ansible для настройки Keepalived в контексте высокой доступности и масштабируемости.
В настоящее время поддерживаемые платформы:
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
Требования
Отсутствуют.
Переменные роли
Обязательные переменные, значение которых не задано по умолчанию
IP-адреса одноадресных пиров экземпляра Keepalived
Установите IP-адреса одноадресных пиров экземпляра Keepalived:
keepalived_unicast_peers:
- '192.168.33.15'
- '192.168.33.16'
Виртуальный IP-адрес экземпляра Keepalived
Установите виртуальный IP-адрес экземпляра Keepalived:
keepalived_virtual_ip_address: '192.168.33.100'
Необязательный: Список конфигураций виртуальных IP-адресов
Если необходимо настроить несколько виртуальных IP-адресов, вы можете определить эту
необязательную переменную. Она имеет приоритет над keepalived_virtual_ip_address
.
keepalived_virtual_ipaddress_configs:
- "10.0.10.15 dev eth0"
- "10.0.11.15 dev eht1"
Все остальные переменные по умолчанию
Версия Keepalived
Переменная для установки версии Keepalived на определенное значение:
keepalived_version: '2.2.8'
Список зависимостей Keepalived
Список зависимостей Keepalived, которые будут установлены:
keepalived_dependencies:
- 'build-essential'
- 'curl'
- 'gcc'
- 'libssl-dev'
- 'libnl-3-dev'
- 'libnl-genl-3-dev'
- 'libsnmp-dev'
Путь к исполняемому файлу Keepalived
Путь к исполняемому файлу Keepalived:
keepalived_executable_path: '/usr/local/sbin/keepalived'
URL для загрузки Keepalived
URL, с которого можно загрузить Keepalived:
keepalived_download_url: 'https://www.keepalived.org/software/keepalived-{{ keepalived_version }}.tar.gz'
Имя шаблона конфигурационного файла Keepalived
Имя файла шаблона для конфигурационного файла Keepalived:
keepalived_conf_template: 'keepalived.conf.j2'
Директория конфигурации Keepalived
Директория, содержащая конфигурационные файлы Keepalived:
keepalived_conf_dir: '/etc/keepalived'
Путь к конфигурационному файлу Keepalived
Путь к конфигурационному файлу Keepalived:
keepalived_conf_file_path: '/etc/keepalived/keepalived.conf'
Путь к файлу sysconfig Keepalived
Путь к файлу sysconfig Keepalived:
keepalived_sysconfig_file_path: "/etc/keepalived/keepalived.sysconfig"
Имя файла шаблона сервиса systemd
Имя файла шаблона для сервиса systemd:
keepalived_service_template: 'keepalived.service.j2'
Путь к файлу сервиса Keepalived
Путь к файлу сервиса Keepalived:
keepalived_service_file_path: '/etc/systemd/system/keepalived.service'
Путь к файлу PID Keepalived
Путь к файлу PID Keepalived:
keepalived_pid_file_path: "/run/keepalived/keepalived.pid"
Настройка адреса электронной почты для уведомлений
Настройка получателя уведомлений по электронной почте:
keepalived_notification_email: 'name@localhost'
Настройка отправителя уведомлений
Настройка отправителя уведомлений по электронной почте:
keepalived_notification_email_from: 'keepalived@localhost'
Настройка SMTP-сервера
Настройка IP-адреса или FQDN SMTP-сервера:
keepalived_smtp_server: '127.0.0.1'
Состояние экземпляра Keepalived MASTER или BACKUP
Установите состояние экземпляра Keepalived на MASTER или BACKUP:
keepalived_state: 'BACKUP'
Приоритет экземпляра Keepalived
Установите приоритет экземпляра Keepalived:
keepalived_priority: '99'
Максимальный увеличенный автоматический приоритет
Максимальный приоритет, до которого Keepalived может автоматически увеличиваться (должен быть в диапазоне [0, 99] или -1 для отключения):
keepalived_max_auto_priority: '99'
Идентификатор маршрутизатора экземпляра Keepalived
Установите уникальное имя маршрутизатора Keepalived:
keepalived_router_id: 'KEEPALIVED_2'
Вес экземпляра Keepalived
Настройте приоритет по этому весу:
keepalived_weight: '0'
Одноадресный IP-адрес источника экземпляра Keepalived
Установите одноадресный IP-адрес источника экземпляра Keepalived:
keepalived_unicast_src_ip: '{{ ansible_default_ipv4.address }}'
Сетевая интерфейс экземпляра Keepalived
Установите сетевой интерфейс, с которым связан плавающий IP-адрес:
keepalived_interface: "{{ ansible_default_ipv4.interface }}"
Виртуальный IP-адрес и сетевой интерфейс экземпляра Keepalived
Установите виртуальный IP-адрес и сетевой интерфейс экземпляра Keepalived:
keepalived_virtual_ipaddress_config: "{{ keepalived_virtual_ip_address }} dev {{ keepalived_interface }}"
Пароль для аутентификации экземпляра Keepalived
Установите пароль аутентификации экземпляра Keepalived:
keepalived_auth_pass: 'changeme'
Включить безопасность скриптов
Флаг для включения безопасности скриптов, чтобы предотвратить выполнение скрипта пользователем root, если любая часть пути доступна для записи не-root пользователем:
keepalived_set_script_security_flag: true
Пользователь для выполнения скрипта Keepalived
Укажите имя пользователя для запуска скрипта Keepalived:
keepalived_script_user: 'haproxy'
Группа для выполнения скрипта Keepalived
Укажите имя группы для запуска скрипта Keepalived:
keepalived_script_group: 'haproxy'
Флаг для активации отслеживания процессов
Активируйте отслеживание процессов в конфигурации Keepalived:
keepalived_enable_process_tracking: true
Определите, какой процесс должен отслеживаться
keepalived_track_process: 'haproxy'
Флаг для активации скрипта для выполнения
Активируйте скрипт, который выполняется Keepalived:
keepalived_activate_script: false
Имя скрипта для выполнения
Укажите имя скрипта, который будет выполнен Keepalived:
keepalived_script_name: 'chk_haproxy_process'
Команда скрипта для выполнения
Укажите команду, которая будет выполнена Keepalived:
keepalived_script_command: '/usr/bin/killall -0 haproxy'
Зависимости
Отсутствуют.
Примечание: Эта роль предназначена для использования с ролью, но не ограничивается ролью hifis.haproxy.
Пример плейбука
- hosts: loadbalancers
roles:
- role: hifis.keepalived
vars:
keepalived_virtual_ip_address: '192.168.33.100'
keepalived_unicast_peers:
- '192.168.33.15'
- '192.168.33.16'
Лицензия
Информация об авторе
A role to set up Keepalived in a high availability and scalability context.
ansible-galaxy install hifis-net/ansible-role-keepalived