rhtconsulting.haproxy
haproxy
Ansible-Rolle für die Installation und Konfiguration von HAProxy für eine oder mehrere lastverteilte Anwendungen.
Diese Rolle geht davon aus, dass der Benutzer sich mehr um die Konfiguration der lastverteilten Anwendungen kümmern sollte, als um die Konfiguration von Frontend- und Backend-Servern in HAProxy. Daher basiert die Verwendung dieser Rolle auf der Idee, dass der Benutzer die Anwendungen angibt, die er oder sie lastverteilen möchte, und die Rolle dann die Konfiguration der Frontend- und Backend-Server von HAProxy übernimmt.
Anforderungen
Anforderungen, damit diese Rolle funktioniert.
Pakete
Pakete, die für die Installation durch die Rolle verfügbar sein müssen.
- haproxy
Dienste
Dienste, die aktiviert sein müssen, um sie von der Rolle konfigurieren zu lassen.
- firewalld
Rollenvariablen
Informationen über die erwarteten Rolleneinstellungen.
Parameter | erforderlich | Standard | Auswahl | Kommentare |
---|---|---|---|---|
haproxy_applications | ja | Liste von Hashes, die die zu lastverteilenden Anwendungen definieren. |
haproxy_applications
Der Parameter haproxy_applications
ist eine Liste von Hashes, die die Anwendungen zur Lastverteilung definieren. Jedes Element in der Liste kann die folgenden Parameter enthalten.
Parameter | erforderlich | Standard | Auswahl | Kommentare |
---|---|---|---|---|
name | ja | Name der Anwendung. Wird zur Definition der Frontend- und Backend-Server verwendet. Soll beschreibend sein, da er in den HAProxy-Statistiken angezeigt wird. Muss mit /a-zA-Z0-9-_/ übereinstimmen. |
||
domain | ja | FQDN, der auf den HAProxy-Server(n) aufgelöst wird, um die Server zu lastverteilen. Kann einfach ein FQDN oder eine reguläre Ausdruck-Angabe zur Übereinstimmung mit einer Domain sein. |
||
domain_is_regex | nein | false | true, false | true , wenn der angegebene domain ein Regex ist, false , um ihn als einfaches FQDN zu behandeln. |
expose_http | nein | false | true, false | true , um diese Anwendung über http verfügbar zu machen, false , um sie nicht über http verfügbar zu machen. |
expose_https | nein | false | true, false | true , um diese Anwendung über https verfügbar zu machen, false , um sie nicht über https verfügbar zu machen. |
redirect_http_to_https | nein | false | true, false | true , um http automatisch auf https umzuleiten, false , um nicht umzuleiten. |
servers | ja | Liste von Hashes, die die Server zur Lastverteilung definieren. |
servers
Jedes Element in der Liste haproxy_applications
muss einen Schlüssel servers
enthalten, der eine Liste von Hashes definiert, die die Server zur Lastverteilung für die jeweilige Anwendung definieren. Jedes Element in der Liste kann die folgenden Parameter enthalten.
Parameter | erforderlich | Standard | Auswahl | Kommentare |
---|---|---|---|---|
name | ja | Name, der verwendet wird, um den Server zu referenzieren. Wird in den HAProxy-Statistiken angezeigt. Muss mit /a-zA-Z0-9-_/ übereinstimmen. |
||
address | ja | FQDN oder IP des Servers, der lastverteilt werden soll. | ||
port_http | nein | 80 | Port des Servers bei address , der lastverteilt werden soll, wenn expose_http true ist. |
|
port_https | nein | 443 | Port des Servers bei address , der lastverteilt werden soll, wenn expose_https true ist. |
Beispiel-Playbooks
Lastverteilung mit 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
Lastverteilung für OpenShift Container Platform (OCP) Master und Router
- 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
Autorinformationen
- 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.haproxy