hifis.haproxy
Rôle HAProxy
:warning: Ce projet est archivé ! :warning:
Ce rôle a été transféré dans notre collection hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
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
Informations sur l'auteur
Contributeurs
Nous tenons à remercier et à donner du crédit aux contributeurs suivants de ce projet :
Install and configure HAProxy to be used for load-balancing in a high availability and scalability context.
ansible-galaxy install hifis.haproxy