Wie installiere ich Consul Server unter AlmaLinux 9
Consul ist eine moderne Plattform für die Erkennung von Diensten, mit der du Dienste über die DNS- und HTTP-Schnittstelle registrieren kannst. Außerdem bietet sie eine Service-Mesh-Funktion, die sichere Verbindungen über TLS ermöglicht und die Autorisierung zwischen Diensten ermöglicht. Darüber hinaus bietet Consul ein API-Gateway für die Verwaltung des Zugangs zu Diensten und einen KV-Speicher (Key/Value) für die Speicherung der Dienstkonfiguration.
In dieser Anleitung führen wir dich Schritt für Schritt durch die Installation von Consul Cluster mit mehreren Servern auf AlmaLinux 9.
Voraussetzungen
Um diese Anleitung zu lesen, musst du folgende Voraussetzungen erfüllen:
- Zwei oder mehr AlmaLinux Server im selben Netzwerk.
- Einen Nicht-Root-Benutzer mit Administrator-Rechten.
System einrichten
In diesem ersten Schritt bereitest du deine AlmaLinux Server für die Installation von Consul vor, was Folgendes beinhaltet
- Firewalld konfigurieren, um Ports zu öffnen.
- Konfiguriere SELinux auf den permissiven Modus.
Firewalld konfigurieren
Bevor du die Pakete installierst, musst du die Ports auf deinen Consul-Servern öffnen. Für das RHEL-basierte Betriebssystem wirst du Firewalld verwenden, um die Ports zu öffnen.
Führe den folgenden Befehl aus, um die Ports 8300, 8301, 8302, 8400, 8500 und 8600 auf deinen AlmaLinux Servern zu öffnen. Wenn das erfolgreich war, solltest du die Ausgabe Erfolg erhalten.
sudo firewall-cmd --permanent --zone=public --add-port={8300,8301,8302,8400,8500,8600}/tcp
Lade nun die Firewalld mit dem unten stehenden Befehl neu, damit sie ihre Wirkung entfaltet.
sudo firewall-cmd --reload
Überprüfe abschließend deine Firewalld-Regeln mit dem folgenden Befehl. Stelle sicher, dass die Ports 8300, 8301, 8302, 8400, 8500 und 8600 in deiner Firewalld verfügbar sind.
sudo firewall-cmd --zone=public --list-all
SELinux auf permissiv ändern
Nachdem du die Firewalld konfiguriert hast, änderst du den standardmäßigen SELinux-Modus auf permissiv. Dadurch werden SELinux-Fehlerprotokolle erstellt, ohne dass die Aktion blockiert wird.
Führe den folgenden Befehl aus, um den SELinux-Modus auf permissiv zu ändern.
sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
Starte dann deine Server neu, damit die Änderung wirksam wird.
sudo reboot
Jetzt, wo du alle deine AlmaLinux Server konfiguriert hast, kannst du mit der Installation von Consul beginnen.
Installation von Consul über DNF
Consul ist eine Service-Networking-Plattform, die mehrere Betriebssysteme unterstützt. Außerdem bietet Consul ein Paket-Repository für Linux-Distributionen, einschließlich RHEL-basierter Distributionen. In diesem Schritt wirst du Consul aus dem Consul-Repository über DNF installieren.
Installiere zunächst einige Basispakete, indem du den folgenden Befehl ausführst. Gib y ein, um mit der Installation fortzufahren.
sudo dnf install dnf-plugins-core nano
Führe nun den unten stehenden DNF-Befehl aus, um das Consul-Repository zu deinen Alma Linux-Servern hinzuzufügen. Überprüfe dann die Liste der verfügbaren Repositories auf jedem Server.
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo dnf repolist
Die folgende Ausgabe zeigt, dass du das HashiCorp-Repository zu deinen Systemen hinzugefügt hast.
Als nächstes installierst du Consul, indem du den folgenden Befehl ausführst. Gib y ein, um mit der Installation von Consul fortzufahren.
sudo dnf install consul
Nachdem du die Installation abgeschlossen hast, führe den folgenden Befehl aus, um die Binärdatei von Consul zu finden und ihre Version zu überprüfen.
which consul consul version
Die folgende Ausgabe bestätigt, dass die Consul-Binärdatei unter /bin/consul verfügbar ist und die aktuelle Consul-Version 1.17 ist.
Consul konfigurieren
Jetzt hast du Consul auf allen deinen AlmaLinux Servern installiert. Jetzt können wir ohne weiteres mit der Konfiguration des Consul-Clusters mit mehreren Servern beginnen. Zur Veranschaulichung werden wir drei AlmaLinux Server verwenden.
| Hostname | IP Address | | --------- | -------------- | | consul1 | 192.168.10.41 | | consul2 | 192.168.10.42 | | consul3 | 192.168.10.43 |
Stoppe zunächst den Consul-Dienst auf allen Servern, indem du den folgenden Befehl ausführst.
sudo systemctl stop consul
Gehe zum Server consul1 und führe den unten stehenden Befehl aus, um einen neuen Schlüssel für den Consul-Cluster zu erzeugen. Achte darauf, dass du den erzeugten Schlüssel behältst.
consul keygen
Öffne auf allen Consul-Servern die Consul-Standardkonfiguration /etc/consul.d/consul.hcl mit dem folgenden nano-Editor-Befehl.
sudo nano /etc/consul.d/consul.hcl
Ändere die Standardkonfiguration mit dem folgenden und beachte einige Parameter unten:
- server: True bedeutet, dass der Knoten als Consul-Server fungiert.
- advertise_addr: Ändere dies mit der jeweiligen IP-Adresse des Consul-Servers.
- bootstrap_expect: Wie viele Server soll dein Cluster haben?
- encrypt: Jeder Server muss denselben Schlüssel haben.
- retry_join: Gib die IP-Adresse des Consul-Clusters in diesen Parameter ein.
# Full configuration options can be found at https://www.consul.io/docs/agent/config # datacenter datacenter = "kitty-dc1" # data_dir # This flag provides a data directory for the agent to store state. data_dir = "/opt/consul" # client_addr # The address to which the Consul will bind client interfaces, including the HTTP and DNS # servers. client_addr = "0.0.0.0" # ui # Enables the built-in web UI server and the required HTTP routes. ui_config{ enabled = true } # default domain domain = "consul" # enable dns_config dns_config{ enable_truncate = true only_passing = true } # server # This flag is used to control if an agent is in server or client mode. When provided, # an agent will act as a Consul server. Each Consul cluster must have at least one # server and ideally no more than 5 per datacenter. All servers participate in the Raft # consensus algorithm to ensure that transactions occur in a consistent, linearizable # manner. Transactions modify cluster state, which is maintained on all server nodes to # ensure availability in the case of node failure. Server nodes also participate in a # WAN gossip pool with server nodes in other datacenters. Servers act as gateways to # other datacenters and forward traffic as appropriate. server = true # Advertise addr - if you want to point clients to a different address than bind or LB. advertise_addr = "192.168.10.41" # bootstrap_expect # This flag provides the number of expected servers in the datacenter. bootstrap_expect=3 # encrypt # Specifies the secret key to use for encryption of Consul network traffic. encrypt = "jFtV8jj4h1hnXGqTllWH+sOqLo/tw9xnnfDHcVxVnYg=" # retry_join retry_join = ["192.168.10.41", "192.168.10.42", "192.168.10.43"]
Speichere und beende die Datei, wenn du fertig bist.
Als Nächstes führst du den folgenden Befehl aus, um die Consul-Konfigurationen zu überprüfen. Wenn du die richtige Syntax hast, solltest du eine Ausgabe wie„Konfiguration ist gültig“ erhalten.
sudo consul validate /etc/consul.d/
Führe nun den folgenden Befehl aus, um den Consul-Dienst zu starten und zu aktivieren.
sudo systemctl start consul sudo systemctl enable consul
Überprüfe dann Consul mit dem folgenden Befehl, um sicherzustellen, dass der Dienst läuft.
sudo systemctl status consul
In der folgenden Ausgabe solltest du sehen, dass Consul auf dem Server consul1 läuft.
In der folgenden Ausgabe solltest du sehen, dass Consul auf dem Server consul2 läuft.
In der folgenden Ausgabe solltest du sehen, dass Consul auf dem Server consul3 läuft.
Mit dem Consul-Cluster interagieren
Nachdem du den Consul-Cluster auf den AlmaLinux-Servern konfiguriert hast, kannst du den Consul-Cluster über die consul-Kommandozeile überprüfen und mit ihm interagieren.
Überprüfen des Consul Clusters
Führe den folgenden Befehl aus, um die verfügbaren Consul-Server innerhalb des Clusters zu überprüfen.
consul members
In diesem Beispiel besteht der Consul-Cluster aus drei Servern, consul1, consul2 und consul3.
Du kannst auch die Liste der Peers im Cluster mit dem unten stehenden Befehl überprüfen.
consul operator raft list-peers
Unten siehst du detaillierte Informationen zu jedem Consul-Server, darunter die ID, den Status, den Wähler und die RaftProtocol-Version.
Hinzufügen des KV (Key-Value) Store zu Consul
Als Nächstes führst du den folgenden Consul-Befehl aus, um eine neue Key-Value-Datenbank zu erstellen. In diesem Beispiel wirst du einen neuen Schlüssel db_name mit dem Wert testdb erstellen.
consul kv put consul/configuration/db_name testdb
Führe nun den folgenden Befehl aus, um den Wert für db_name abzurufen.
consul kv get consul/configuration/db_name
Du solltest den Wert testdb wie folgt erhalten:
Interaktion mit DNS auf Consul
In dieser Anleitung hast du das Consul DNS aktiviert. Um die Consul DNS-Konfiguration zu überprüfen, verwende den unten stehenden Befehl dig.
dig @127.0.0.1 -p 8600 consul.service.consul
In diesem Beispiel hast du die Consul-Server innerhalb des Clusters mit demselben Domainnamen wie consul konfiguriert. Im Folgenden wird bestätigt, dass die Domain consul.service.consul mit den A-Einträgen 192.168.10.41, 192.168.10.42, 192.168.10.43.
Zugriff auf die Consul Web UI (Benutzeroberfläche)
Öffne deinen Webbrowser und rufe die IP-Adresse des Consul-Servers mit Port 8500 auf, z.B. http://192. 168.10.41:8500/ui/, um das Consul Web-Administrations-Dashboard aufzurufen.
Unten siehst du die verfügbaren Server im Consul-Cluster.
Klicke auf das Menü Nodes, um detaillierte Informationen über jeden Server zu erhalten.
Klicke dann auf das Menü Key/Value, um die Liste der verfügbaren KV auf deinen Consul-Servern zu erhalten.
Fazit
Damit hast du die schrittweise Installation des Consul-Clusters mit drei AlmaLinux-Servern abgeschlossen. Du hast die Consul Web UI und Consul DNS innerhalb des Clusters aktiviert. Außerdem hast du einige grundlegende Befehle für die Interaktion mit Consul-Clustern, Key-Value-Stores und DNS gelernt.
Jetzt kannst du die ACLs (Access Control Lists) aktivieren und TLS für Verbindungen zwischen Consul-Servern und -Clients implementieren.