hifis.haproxy

Rôle HAProxy

:warning: Ce projet est archivé ! :warning:

Ce rôle a été transféré dans notre collection hifis.toolkit :

Statut CI Rôle Ansible : hifis.haproxy Téléchargements du rôle Ansible Licence Apache-2.0 Dernière version DOI

Un rôle pour configurer HAProxy comme un répartiteur de charge dans un contexte de haute disponibilité et de scalabilité.

Les plateformes actuellement supportées sont :

  • Ubuntu 22.04 LTS
  • Ubuntu 20.04 LTS

Ce rôle est testé avec les deux dernières versions LTS de HAProxy. Cela donne un support officiel pour les séries de versions HAProxy :

  • 2.6
  • 2.4

D'autres versions fonctionnent aussi, mais ne sont pas testées automatiquement.

Exigences

Aucune.

Variables du Rôle

Variables obligatoires non définies par défaut

Adresses IP des serveurs GitLab en backend

Spécifiez une liste de serveurs backend avec le nom et l'adresse IP (le port est optionnel, par défaut 80) :

haproxy_backends:
  - backend_name: 'backend_server_1'
    backend_ip: '192.168.33.10'
    backend_port: '80'

Adresse IP flottante en frontend

Spécifiez l'adresse IP flottante du frontend :

haproxy_frontend_ip: '192.168.33.100'

Variables obligatoires définies par défaut mais à adapter

Nombre de processeurs utilisés par HAProxy

Définit le nombre de processeurs utilisés par HAProxy :

haproxy_nbproc: '1'

Nombre de threads utilisés par HAProxy

Définit le nombre de threads utilisés par HAProxy :

haproxy_nbthread: '2'

HAProxy CPU Map pour le multi-threading

Mapping des threads aux cœurs de CPU :

haproxy_cpumap: 'auto:1/1-2 0-1'

Activer/désactiver les statistiques

Variable pour activer ou désactiver les statistiques :

haproxy_stats_enable: 'enable'

Nom d'utilisateur admin pour les statistiques

Variable pour le nom d'utilisateur admin des statistiques :

haproxy_stats_admin_user: 'admin'

Mot de passe de l'utilisateur admin pour les statistiques

Variable pour le mot de passe de l'utilisateur admin des statistiques :

haproxy_stats_admin_user_password: 'changeme'

Toutes les autres variables par défaut

Chemin vers l'exécutable de HAProxy

Variable de chemin pointant vers l'emplacement de l'exécutable de HAProxy :

haproxy_executable_path: '/usr/sbin/haproxy'

Version du PPA de HAProxy

Variable pour définir la version du PPA à une certaine valeur :

haproxy_ppa_version: 'ppa:vbernat/haproxy-2.6'

Version de HAProxy

Variable pour définir la version de HAProxy à une certaine valeur :

haproxy_version: '2.6.*'

Utilisateur HAProxy

Variable pour spécifier l'utilisateur système de HAProxy :

haproxy_user: 'haproxy'

Groupe HAProxy

Variable pour spécifier le groupe système de HAProxy :

haproxy_group: 'haproxy'

Dépendances de HAProxy à installer

Liste des dépendances de HAProxy à installer :

haproxy_dependencies:
  - 'software-properties-common'

Nom du binaire HAProxy

Nom du binaire de HAProxy :

haproxy_name: 'haproxy'

Modèle de configuration HAProxy

Fournissez le chemin vers le modèle de configuration de HAProxy :

haproxy_config_template: 'haproxy.cfg.j2'

Chemin du répertoire de configuration de HAProxy

Donnez le chemin vers le répertoire de configuration de HAProxy :

haproxy_conf_dir: '/etc/haproxy/'

Chemin du fichier de configuration de HAProxy

Donnez le chemin vers le fichier de configuration de HAProxy :

haproxy_conf_file_path: "/etc/haproxy/haproxy.cfg"

Chemin du socket de journalisation de HAProxy

Donnez le chemin vers le socket de journalisation de HAProxy :

haproxy_log_socket: '/dev/log'

Niveau de journalisation de HAProxy

Spécifiez le niveau de journalisation de HAProxy. Les valeurs possibles sont : emerg, alert, crit, err, warning, notice, info, debug.

haproxy_log_level: 'info'

Chemin du fichier de socket HAProxy

Donnez le chemin vers le fichier de socket HAProxy :

haproxy_socket: '/run/haproxy/admin.sock'

Création de certificat SSL auto-signé avec HAProxy

Indique si un certificat SSL auto-signé doit être créé :

haproxy_create_self_signed_cert: true

Nom du pays pour le certificat SSL

Définissez le pays à utiliser pour le certificat SSL :

haproxy_country_name: 'DE'

Nom de l'état pour le certificat SSL

Définissez l'état à utiliser pour le certificat SSL :

haproxy_state_or_province_name: 'Saxe'

Nom de la localité pour le certificat SSL

Définissez la localité à utiliser pour le certificat SSL :

haproxy_locality_name: 'Dresden'

Nom de l'organisation pour le certificat SSL

Définissez l'organisation à utiliser pour le certificat SSL :

haproxy_organization_name: 'Helmholtz-Zentrum Dresden-Rossendorf (HZDR)'

Nom de l'unité d'organisation pour le certificat SSL

Définissez l'unité d'organisation à utiliser pour le certificat SSL :

haproxy_organizational_unit_name: 'FWCC / Science Computationnelle'

Adresse e-mail pour le certificat SSL

Définissez l'adresse e-mail à utiliser pour le certificat SSL :

haproxy_email_address: '[email protected]'

Nom commun pour le certificat SSL

Définissez le nom commun à utiliser pour le certificat SSL :

haproxy_common_name: 'Association Helmholtz'

Chemin du répertoire SSL de HAProxy

Donnez le chemin vers le répertoire SSL de HAProxy :

haproxy_ssl_certificate_dir: '/etc/haproxy/ssl'

Chemin du fichier de clé privée HAProxy

Donnez le chemin vers le fichier de clé privée HAProxy :

haproxy_ssl_certificate_key_file: "/etc/haproxy/ssl/haproxy.key"

Chemin du fichier de demande de signature de certificat HAProxy

Donnez le chemin vers le fichier de demande de signature de certificat HAProxy :

haproxy_ssl_certificate_csr_file: '/etc/haproxy/ssl/haproxy.csr'

Chemin du fichier de certificat HAProxy

Donnez le chemin vers le fichier de certificat HAProxy :

haproxy_ssl_certificate_crt_file: "/etc/haproxy/ssl/haproxy.crt"

Chemin du fichier PKCS12 HAProxy

Donnez le chemin vers le fichier PKCS12 HAProxy :

haproxy_ssl_certificate_pkcs12_file: "/etc/haproxy/ssl/haproxy.p12"

Chemin du fichier de chaîne de certificats HAProxy

Donnez le chemin vers le fichier de chaîne de certificats HAProxy :

haproxy_ssl_certificate_chain_file: "/etc/haproxy/ssl/haproxy.pem"

Chemin du fichier source de la chaîne de certificats HAProxy

Donnez le chemin vers le fichier source de la chaîne de certificats HAProxy sur le nœud de contrôle qui sera copié sur l'hôte distant :

haproxy_ssl_cert_chain_src_file_path: "haproxy.pem"

Remarque : Cette variable est obligatoire lorsque haproxy_create_self_signed_cert est défini sur false. Le fichier doit être au format PEM et inclure au moins le certificat public et la clé privée.

Chemin du fichier de paramètres DH de HAProxy

Donnez le chemin vers le fichier de paramètres DH :

haproxy_ssl_dhparam_file: "/etc/haproxy/ssl/dhparam.pem"

Taille des paramètres DH

Taille (en bits) des paramètres DH générés :

haproxy_ssl_dhparam_size: 4096

Dépendances

Aucune.

Remarque : Ce rôle est conçu pour être utilisé avec, mais pas seulement avec le rôle hifis.keepalived.

Exemple 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

Licence

Apache-2.0

Informations sur l'auteur

Équipe Logiciel HIFIS

Contributeurs

Nous tenons à remercier et à donner du crédit aux contributeurs suivants de ce projet :

À propos du projet

Install and configure HAProxy to be used for load-balancing in a high availability and scalability context.

Installer
ansible-galaxy install hifis.haproxy
Licence
other
Téléchargements
25.9k
Propriétaire
Helmholtz Digital Services for Science — Collaboration made easy.