hifis.haproxy
Rol de HAProxy
:warning: ¡Este proyecto está archivado! :warning:
Este rol ha sido migrado a nuestra colección hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
Un rol para configurar HAProxy para ser utilizado como un equilibrador de carga en un contexto de alta disponibilidad y escalabilidad.
Las plataformas soportadas actualmente son:
- Ubuntu 22.04 LTS
- Ubuntu 20.04 LTS
Este rol se prueba con las dos últimas versiones LTS de HAProxy. Actualmente, esto resulta en soporte oficial para las series de lanzamiento de HAProxy:
2.6
2.4
Otras versiones también funcionan, pero no se prueban automáticamente.
Requisitos
Ninguno.
Variables del Rol
Variables obligatorias que no están establecidas por defecto
Direcciones IP de los backends de GitLab
Especifique una lista de backends con nombre y dirección IP (el puerto es opcional, por defecto es 80
):
haproxy_backends:
- backend_name: 'backend_server_1'
backend_ip: '192.168.33.10'
backend_port: '80'
Dirección IP flotante del frontend
Especifique la dirección IP flotante del frontend:
haproxy_frontend_ip: '192.168.33.100'
Variables obligatorias que están establecidas por defecto pero necesitan ser adaptadas
Número de procesadores utilizados por HAProxy
Establece el número de procesadores utilizados por HAProxy:
haproxy_nbproc: '1'
Número de hilos utilizados por HAProxy
Establece el número de hilos utilizados por HAProxy:
haproxy_nbthread: '2'
Mapa de CPUs de HAProxy para Multihilos
Asignación de hilos a núcleos de CPU:
haproxy_cpumap: 'auto:1/1-2 0-1'
Habilitar/deshabilitar estadísticas
Variable para habilitar o deshabilitar las estadísticas:
haproxy_stats_enable: 'enable'
Nombre de usuario de administración de estadísticas
Variable para almacenar el nombre de usuario de administración de estadísticas:
haproxy_stats_admin_user: 'admin'
Contraseña del usuario de administración de estadísticas
Variable para almacenar la contraseña del usuario de administración de estadísticas:
haproxy_stats_admin_user_password: 'changeme'
Otras variables por defecto
Ruta al ejecutable de HAProxy
Variable de ruta que señala la ubicación del ejecutable de HAProxy:
haproxy_executable_path: '/usr/sbin/haproxy'
Versión de PPA de HAProxy
Variable para fijar la versión de PPA a un cierto valor:
haproxy_ppa_version: 'ppa:vbernat/haproxy-2.6'
Versión de HAProxy
Variable para fijar la versión de HAProxy a un cierto valor:
haproxy_version: '2.6.*'
Usuario de HAProxy
Variable para especificar el usuario del sistema de HAProxy:
haproxy_user: 'haproxy'
Grupo de HAProxy
Variable para especificar el grupo del sistema de HAProxy:
haproxy_group: 'haproxy'
Dependencias de HAProxy a instalar
Lista de dependencias de HAProxy a instalar:
haproxy_dependencies:
- 'software-properties-common'
Nombre del binario de HAProxy
Nombre del binario de HAProxy:
haproxy_name: 'haproxy'
Plantilla de configuración de HAProxy
Proporcione la ruta a la plantilla de configuración de HAProxy:
haproxy_config_template: 'haproxy.cfg.j2'
Ruta al directorio de configuración de HAProxy
Dé la ruta al directorio de configuración de HAProxy:
haproxy_conf_dir: '/etc/haproxy/'
Ruta al archivo de configuración de HAProxy
Dé la ruta al archivo de configuración de HAProxy:
haproxy_conf_file_path: "/etc/haproxy/haproxy.cfg"
Ruta al socket de registro de HAProxy
Dé la ruta al socket de registro de HAProxy:
haproxy_log_socket: '/dev/log'
Nivel de registro de HAProxy
Especifique el nivel de registro de HAProxy.
Los valores posibles son:
emerg, alert, crit, err, warning, notice, info, debug
.
haproxy_log_level: 'info'
Ruta al archivo de socket de HAProxy
Dé la ruta al archivo de socket de HAProxy:
haproxy_socket: '/run/haproxy/admin.sock'
Creación de certificado SSL autofirmado
Si se debe crear un certificado SSL autofirmado:
haproxy_create_self_signed_cert: true
Nombre del país para el certificado SSL
Establezca el país que se utilizará para el certificado SSL:
haproxy_country_name: 'DE'
Nombre del estado para el certificado SSL
Establezca el estado que se utilizará para el certificado SSL:
haproxy_state_or_province_name: 'Saxony'
Nombre de localidad para el certificado SSL
Establezca la localidad que se utilizará para el certificado SSL:
haproxy_locality_name: 'Dresden'
Nombre de organización para el certificado SSL
Establezca la organización que se utilizará para el certificado SSL:
haproxy_organization_name: 'Helmholtz-Zentrum Dresden-Rossendorf (HZDR)'
Nombre de unidad organizacional para el certificado SSL
Establezca la unidad organizacional que se utilizará para el certificado SSL:
haproxy_organizational_unit_name: 'FWCC / Computational Science'
Dirección de correo electrónico para el certificado SSL
Establezca la dirección de correo electrónico que se utilizará para el certificado SSL:
haproxy_email_address: '[email protected]'
Nombre común para el certificado SSL
Establezca el nombre común que se utilizará para el certificado SSL:
haproxy_common_name: 'Helmholtz Association'
Ruta al directorio SSL de HAProxy
Dé la ruta al directorio SSL de HAProxy:
haproxy_ssl_certificate_dir: '/etc/haproxy/ssl'
Ruta al archivo de clave privada de HAProxy
Dé la ruta al archivo de clave privada de HAProxy:
haproxy_ssl_certificate_key_file: "/etc/haproxy/ssl/haproxy.key"
Ruta al archivo de solicitud de firma de certificado de HAProxy
Dé la ruta al archivo de solicitud de firma de certificado de HAProxy:
haproxy_ssl_certificate_csr_file: '/etc/haproxy/ssl/haproxy.csr'
Ruta al archivo de certificado de HAProxy
Dé la ruta al archivo de certificado de HAProxy:
haproxy_ssl_certificate_crt_file: "/etc/haproxy/ssl/haproxy.crt"
Ruta al archivo PKCS12 de HAProxy
Dé la ruta al archivo PKCS12 de HAProxy:
haproxy_ssl_certificate_pkcs12_file: "/etc/haproxy/ssl/haproxy.p12"
Ruta al archivo de cadena de certificados de HAProxy
Dé la ruta al archivo de cadena de certificados de HAProxy:
haproxy_ssl_certificate_chain_file: "/etc/haproxy/ssl/haproxy.pem"
Ruta al archivo fuente de cadena de certificados de HAProxy
Dé la ruta al archivo fuente de cadena de certificados de HAProxy en el nodo de control que se copiará al host remoto:
haproxy_ssl_cert_chain_src_file_path: "haproxy.pem"
Nota: Esta variable es obligatoria cuando haproxy_create_self_signed_cert
está configurado como false
. El archivo debe estar en formato PEM e incluir al menos el certificado público y la clave privada.
Ruta al archivo de parámetros DH de HAProxy
Dé la ruta al archivo de parámetros DH:
haproxy_ssl_dhparam_file: "/etc/haproxy/ssl/dhparam.pem"
Tamaño de parámetros DH de HAProxy
Tamaño (en bits) de los parámetros DH generados:
haproxy_ssl_dhparam_size: 4096
Dependencias
Ninguna.
Nota: Este rol está destinado para usar, pero no limitado a, el rol de hifis.keepalived.
Ejemplo de playbook
- 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
Licencia
Información del Autor
Colaboradores
Nos gustaría agradecer y dar créditos a los siguientes colaboradores de este proyecto:
Install and configure HAProxy to be used for load-balancing in a high availability and scalability context.
ansible-galaxy install hifis.haproxy