haproxy
Роль HAProxy
:warning: Этот проект архивирован! :warning:
Эта роль была перемещена в нашу коллекцию hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
Роль для настройки HAProxy в качестве балансировщика нагрузки в условиях высокой доступности и масштабируемости.
В настоящее время поддерживаемые платформы:
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
Эта роль протестирована на двух последних версиях LTS HAProxy. На данный момент это обеспечивает официальную поддержку выпусков HAProxy:
2.6
2.4
Другие версии, известные как работающие, но не проходят автоматическое тестирование.
Требования
Нет.
Переменные роли
Обязательные переменные, которые не установлены по умолчанию
IP-адреса бэкендов GitLab
Укажите список бэкендов с именем и IP-адресом (порт необязателен, по умолчанию 80
):
haproxy_backends:
- backend_name: 'backend_server_1'
backend_ip: '192.168.33.10'
backend_port: '80'
Плавающий IP-адрес фронтенда
Укажите плавающий IP-адрес фронтенда:
haproxy_frontend_ip: '192.168.33.100'
Обязательные переменные, которые установлены по умолчанию, но нуждаются в адаптации
Количество процессоров, используемых HAProxy
Задает количество процессоров, используемых HAProxy:
haproxy_nbproc: '1'
Количество потоков, используемых HAProxy
Задает количество потоков, используемых HAProxy:
haproxy_nbthread: '2'
Сопоставление CPU для многопоточности HAProxy
Сопоставление потоков с ядрами процессоров:
haproxy_cpumap: 'auto:1/1-2 0-1'
Включение/выключение статистики
Переменная для включения или выключения статистики:
haproxy_stats_enable: 'enable'
Имя пользователя администратора статистики
Переменная для хранения имени пользователя администратора статистики:
haproxy_stats_admin_user: 'admin'
Пароль пользователя администратора статистики
Переменная для хранения пароля пользователя администратора статистики:
haproxy_stats_admin_user_password: 'changeme'
Все другие переменные по умолчанию
Путь к исполняемому файлу HAProxy
Путь к исполняемому файлу HAProxy:
haproxy_executable_path: '/usr/sbin/haproxy'
Версия PPA HAProxy
Переменная для указания определенной версии PPA:
haproxy_ppa_version: 'ppa:vbernat/haproxy-2.6'
Версия HAProxy
Переменная для указания определенной версии HAProxy:
haproxy_version: '2.6.*'
Пользователь HAProxy
Переменная для указания системного пользователя HAProxy:
haproxy_user: 'haproxy'
Группа HAProxy
Переменная для указания системной группы HAProxy:
haproxy_group: 'haproxy'
Установочные зависимости HAProxy
Список зависимостей HAProxy, которые необходимо установить:
haproxy_dependencies:
- 'software-properties-common'
Имя бинарного файла HAProxy
Имя бинарного файла HAProxy:
haproxy_name: 'haproxy'
Шаблон конфигурации HAProxy
Укажите путь к шаблону конфигурации HAProxy:
haproxy_config_template: 'haproxy.cfg.j2'
Путь к каталогу конфигурации HAProxy
Укажите путь к каталогу конфигурации HAProxy:
haproxy_conf_dir: '/etc/haproxy/'
Путь к файлу конфигурации HAProxy
Укажите путь к файлу конфигурации HAProxy:
haproxy_conf_file_path: "/etc/haproxy/haproxy.cfg"
Путь к сокету логирования HAProxy
Укажите путь к сокету логирования HAProxy:
haproxy_log_socket: '/dev/log'
Уровень логирования HAProxy
Укажите уровень логирования HAProxy. Возможные значения: emerg, alert, crit, err, warning, notice, info, debug
.
haproxy_log_level: 'info'
Путь к файлу сокета HAProxy
Укажите путь к файлу сокета HAProxy:
haproxy_socket: '/run/haproxy/admin.sock'
Создание самоподписанного SSL-сертификата HAProxy
Создавать ли самоподписанный SSL-сертификат:
haproxy_create_self_signed_cert: true
Название страны для SSL-сертификата
Укажите страну для SSL-сертификата:
haproxy_country_name: 'DE'
Название региона для SSL-сертификата
Укажите регион для SSL-сертификата:
haproxy_state_or_province_name: 'Саксония'
Название населенного пункта для SSL-сертификата
Укажите населенный пункт для SSL-сертификата:
haproxy_locality_name: 'Дрезден'
Название организации для SSL-сертификата
Укажите название организации для SSL-сертификата:
haproxy_organization_name: 'Гельмгольц-Центр Дрезден-Россендорф (HZDR)'
Название подразделения организации для SSL-сертификата
Укажите название подразделения для SSL-сертификата:
haproxy_organizational_unit_name: 'FWCC / Компьютерные науки'
Электронный адрес для SSL-сертификата
Укажите электронный адрес для SSL-сертификата:
haproxy_email_address: '[email protected]'
Общее название для SSL-сертификата
Укажите общее название для SSL-сертификата:
haproxy_common_name: 'Ассоциация Гельмгольца'
Путь к каталогу SSL для HAProxy
Укажите путь к каталогу SSL для HAProxy:
haproxy_ssl_certificate_dir: '/etc/haproxy/ssl'
Путь к файлу закрытого ключа HAProxy
Укажите путь к файлу закрытого ключа HAProxy:
haproxy_ssl_certificate_key_file: "/etc/haproxy/ssl/haproxy.key"
Путь к файлу запроса на подписку сертификата HAProxy
Укажите путь к файлу запроса на подписку сертификата HAProxy:
haproxy_ssl_certificate_csr_file: '/etc/haproxy/ssl/haproxy.csr'
Путь к файлу сертификата HAProxy
Укажите путь к файлу сертификата HAProxy:
haproxy_ssl_certificate_crt_file: "/etc/haproxy/ssl/haproxy.crt"
Путь к файлу PKCS12 HAProxy
Укажите путь к файлу PKCS12 HAProxy:
haproxy_ssl_certificate_pkcs12_file: "/etc/haproxy/ssl/haproxy.p12"
Путь к файлу цепочки сертификатов HAProxy
Укажите путь к файлу цепочки сертификатов HAProxy:
haproxy_ssl_certificate_chain_file: "/etc/haproxy/ssl/haproxy.pem"
Путь к исходному файлу цепочки сертификатов HAProxy
Укажите путь к исходному файлу цепочки сертификатов на управляющем узле, который будет скопирован на удаленный хост:
haproxy_ssl_cert_chain_src_file_path: "haproxy.pem"
Примечание: Эта переменная обязательна, когда haproxy_create_self_signed_cert
установлен на false
. Файл должен быть в формате PEM и содержать как минимум публичный сертификат и закрытый ключ.
Путь к файлу параметров DH HAProxy
Укажите путь к файлу параметров DH:
haproxy_ssl_dhparam_file: "/etc/haproxy/ssl/dhparam.pem"
Размер параметров DH HAProxy
Размер (в битах) генерируемых параметров DH:
haproxy_ssl_dhparam_size: 4096
Зависимости
Нет.
Примечание: Эта роль предназначена для использования вместе с, но не ограничена, ролью hifis.keepalived.
Пример плейбука
- hosts: loadbalancers
roles:
- role: hifis.haproxy
vars:
haproxy_frontend_ip: '192.168.33.100'
haproxy_backends:
- backend_name: 'backend_server_1'
backend_ip: '192.168.33.10'
backend_port: 80
Лицензия
Информация об авторе
Команда программного обеспечения HIFIS
Участники
Мы хотели бы поблагодарить и отметить следующих участников этого проекта:
Install and configure HAProxy to be used for load-balancing in a high availability and scalability context.
ansible-galaxy install hifis-net/ansible-role-haproxy