haproxy
haproxy
Роль Ansible для установки и настройки HAProxy для одного или нескольких приложений с балансировкой нагрузки.
Эта роль исходит из того, что вместо того, чтобы заботиться о конфигурации фронтенд и бэкенд серверов в HAProxy, пользователь должен сосредоточиться на настройке приложений с балансировкой нагрузки. Поэтому использование этой роли предполагает, что пользователь указывает приложения, которые он или она хочет балансировать, а роль берет на себя настройку фронтенд и бэкенд серверов HAProxy.
Требования
Требования, чтобы эта роль работала.
Пакеты
Пакеты, которые должны быть доступны для установки роли.
- haproxy
Сервисы
Сервисы, которые должны быть включены, чтобы роль могла их настроить.
- firewalld
Переменные роли
Информация о ожидаемых параметрах роли.
параметр | требуется | по умолчанию | варианты | комментарии |
---|---|---|---|---|
haproxy_applications | да | Список хэшей, определяющих приложения для балансировки нагрузки |
haproxy_applications
Параметр haproxy_applications
— это список хэшей, определяющих приложения для балансировки нагрузки. Каждый элемент списка может содержать следующие параметры.
параметр | требуется | по умолчанию | варианты | комментарии |
---|---|---|---|---|
name | да | Имя приложения. Используется для определения фронтенд и бэкенд серверов. Должно быть понятным, так как появится в статистике HAProxy. Должно соответствовать /a-zA-Z0-9-_/ |
||
domain | да | Полное доменное имя (FQDN), которое будет разрешаться в сервер HAProxy для балансировки нагрузки servers . Может быть простым FQDN или регулярным выражением для сопоставления домена. |
||
domain_is_regex | нет | false | true, false | true , если данный domain является регулярным выражением, false , чтобы рассматривать как обычный FQDN. |
expose_http | нет | false | true, false | true , чтобы открыть это приложение по http, false , чтобы не открывать по http. |
expose_https | нет | false | true, false | true , чтобы открыть это приложение по https, false , чтобы не открывать по https. |
redirect_http_to_https | нет | false | true, false | true , чтобы автоматически перенаправлять http на https, false , чтобы не перенаправлять. |
servers | да | Список хэшей, определяющих серверы для балансировки нагрузки. |
servers
Каждый элемент списка haproxy_applications
должен содержать ключ servers
, который является списком хэшей, определяющих серверы для балансировки нагрузки для соответствующего приложения. Каждый элемент в списке может содержать следующие параметры.
параметр | требуется | по умолчанию | варианты | комментарии |
---|---|---|---|---|
name | да | Имя, используемое для ссылки на сервер. Будет отображаться в статистике HAProxy. Должно соответствовать `/a-zA-Z0-9-_/ | ||
address | да | Полное доменное имя (FQDN) или IP-адрес сервера для балансировки нагрузки. | ||
port_http | нет | 80 | Порт сервера по адресу address для балансировки нагрузки, когда expose_http равен true . |
|
port_https | нет | 443 | Порт сервера по адресу address для балансировки нагрузки, когда expose_https равен true . |
Примеры Playbooks
Балансировка нагрузки для Ansible Tower
- name: HAProxy
hosts: haproxy
roles:
- role: haproxy
haproxy_applications:
- name: ansible-tower
domain: tower.example.com
expose_https: True
redirect_http_to_https: True
servers:
- name: tower0002
address: tower0002.example.com
- name: tower0003
address: tower0003.example.com
- name: tower0004
address: tower0004.example.com
Балансировка нагрузки для мастер-серверов и маршрутизаторов OpenShift Container Platform (OCP)
- name: HAProxy
hosts: haproxy
roles:
- role: haproxy
haproxy_applications:
- name: ocp-admin
domain: ocp.example.com
expose_https: True
redirect_http_to_https: True
servers:
- name: ocp0002-master
address: ocp0002.example.com
- name: ocp0003-master
address: ocp0003.example.com
- name: ocp0004-master
address: ocp0004.example.com
- name: ocp-router
domain: .*.apps.example.com
domain_is_regex: True
expose_https: True
expose_http: True
redirect_http_to_https: False
servers:
- name: ocp0005-infra
address: ocp0005.example.com
- name: ocp0006-infra
address: ocp0006.example.com
- name: ocp0007-infra
address: ocp0007.example.com
Информация об авторе
- Red Hat Consulting
- Ian Tewksbury (itewk@redhat.com)
Ansible role for installing and configuring HAProxy for one or many frontend and backend servers.
ansible-galaxy install rhtconsulting/ansible-role_haproxy