GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser Ansible pour configurer un proxy inverse

Qu'est-ce qu'un équilibreur de charge ? ? Un équilibreur de charge est un moyen efficace de répartir le trafic réseau entre différents serveurs principaux. Il est également appelé batterie de serveurs ou pool de serveurs. Il distribue les demandes des clients ou la charge du réseau aux serveurs Web cibles. Les équilibreurs de charge fonctionnent selon le concept du tourniquet, ce qui garantit une fiabilité et une disponibilité élevées.

Un scénario

Vous disposez d'un serveur Web capable de gérer 100 clients à la fois. Soudain, les requêtes adressées à ce serveur particulier augmentent de 100 %. Il est probable que le site Web tombe en panne ou soit fermé. Pour éviter cette situation, configurez un serveur Web cible. Dans ce scénario, le client n'accède jamais au serveur Web cible. Au lieu de cela, leur demande est envoyée au serveur maître, et le serveur maître envoie la demande au serveur Web cible. Lorsque le serveur Web cible répond au serveur Web maître, appelé proxy inverse.

[ Vous pourriez également aimer : Transformer un déploiement Kubernetes en un service Knative ]

Utiliser HAProxy comme proxy

Le port sur le serveur Web principal est appelé le port frontal. HAProxy est un équilibreur de charge HTTP qui peut être configuré en tant que proxy inverse. Ici, nous allons voir comment j'ai configuré HAProxy à l'aide d'un playbook Ansible.

Vérifiez le système sur lequel vous devez configurer HAProxy

HAProxy n'est pas installé sur ce système. Vous pouvez le confirmer avec la commande suivante :

rpm -q haproxy

Étapes pour configurer HAProxy

Étape 1 - Installer HAProxy

Pour installer HAProxy, vous devez utiliser un package module où vous donnez le nom du service que vous souhaitez installer :

    - name: "Configure Load balancer"
      package:
        name: haproxy

Étape 2 - Copiez le fichier de configuration du proxy inverse

Copiez le fichier de configuration afin de pouvoir le modifier :

cp /etc/haproxy/haproxy.cfg  /root/ws1/haproxy.cfg

Étape 3 :Modifier le port frontal et attribuer des adresses IP principales

Par défaut, le frontend est lié au port 5000. J'ai changé le numéro de port en 8080. J'ai également appliqué un for boucle pour configurer l'adresse IP principale. Vous pouvez désormais lancer autant de serveurs Web que vous le souhaitez, et il n'est pas nécessaire de configurer manuellement l'adresse IP dans /etc/httpd/httpd.conf . Il récupèrera automatiquement l'adresse IP à partir de l'inventaire.

backend app
   balance     roundrobin
{%  for i in groups ["web"] %}
   server  app1{{ loop.index }} {{ i}}:80 check
{% endfor %}

Étape 4 - Copiez haproxy.cfg sur le nœud géré

Utiliser le modèle mode, copiez le fichier de configuration pour HAProxy du nœud contrôleur vers le nœud géré :

    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"

Étape 5 - Démarrer le service

Utiliser le service module pour démarrer le service HAProxy :

    - service:
        name: "haproxy"
        state: restarted

Vérifiez le système sur lequel vous devez installer le serveur Web httpd

Pour tester la configuration de HAProxy, vous configurerez également httpd sur votre nœud cible à l'aide d'Ansible. Pour vérifier que vous n'avez pas déjà httpd sur votre système, utilisez la commande suivante :

 rpm -q httpd

Étape 1 - Installer httpd

Le forfait module est utilisé pour installer httpd sur le nœud géré :

    - name: "HTTPD CONFIGURE"
      package:
        name: httpd

Étape 2 - Copiez la page Web

Le modèle module est utilisé pour copier votre page Web de la source vers la destination :

    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"

Étape 3 - Démarrer le service

Le service module est utilisé pour démarrer le httpd service :

    - service:
        name: "haproxy"
        state: restarted

Compléter le playbook pour configurer le proxy inverse

Dans ce playbook, vous avez deux hôtes différents avec deux groupes différents. Un groupe est pour le serveur Web et un autre pour l'équilibreur de charge :

---
- hosts: web
  tasks:
    - name: "HTTPD CONFIGURE"
      package:
        name: httpd
    - template:
        dest: "/var/www/html/index.html"
        src: "/root/ws1/haproxy.html"
    - service:
        name: "httpd"
        state: restarted
- hosts: lb
  tasks:
    - name: "Configure Load balancer"
      package:
        name: haproxy
    - template:
        dest: "/etc/haproxy/haproxy.cfg"
        src: "/root/ws1/haproxy.cfg"
    - service:
        name: "haproxy"
        state: restarted

Exécuter le playbook

ansible-playbook haproxy.yml

Sortie

Le playbook s'exécute correctement et les deux serveurs Web cibles sont accessibles par le serveur Web principal à l'aide d'un équilibreur de charge.

[ Vous souhaitez en savoir plus sur l'automatisation du système ? Démarrez avec The Automated Enterprise, un livre gratuit de Red Hat. ] 

Conclusion

L'équilibreur de charge et le proxy inverse ont maintenant été configurés par Ansible. Vous pouvez ajouter une couche de protection et de disponibilité à vos services Web en ajoutant HAProxy à votre infrastructure. Assurez-vous de consulter la documentation de votre cible spécifique pour en savoir plus.


Linux
  1. Comment configurer un serveur Web Apache

  2. Comment configurer l'équilibreur de charge HAProxy

  3. Comment utiliser Ansible pour installer et configurer Redis 6 sur Ubuntu 20.04

  4. Comment utiliser Ansible pour installer et configurer Redis 6 sur Debian 11

  5. Comment configurer une base de données esclave MySQL

Comment configurer le proxy inverse Nginx sur plesk ?

Comment configurer IIS dans Windows Server 2012

Comment configurer DNS dans Windows Server 2012

Comment configurer NGINX sur un serveur CentOS 7

Comment installer Ansible Server sur Ubuntu 18.04

Comment configurer HAProxy sur CentOS 8