Konsul - Installation

Zu Demonstrationszwecken verwenden wir den Konsulagenten im Entwicklermodus im -dev-Modus. Nur für das lokale Maschinen-Setup werden wir ein einziges Systemkonsul-Setup durchführen.Please do not use this single node consul cluster in your production. Wie Hashicorp bereits im Fall eines Konsulclusters mit einem einzelnen Knoten erwähnt,the data loss is inevitable.

Konsul installieren

Consul kann über die Downloadseite unter www.consul.io/downloads.html installiert werden

Sie können das Binärpaket in Ihrem Download-Bereich Ihres Computers extrahieren.

$ cd Downloads
$ chmod +x consul
$ sudo mv consul /usr/bin/

Beginnen wir nun damit, den Konsul mit dem zu benutzen -dev flag.

$ consul agent -dev -data-dir=/tmp/consul

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Jetzt können Sie Ihre Konsulmitglieder mit dem folgenden Befehl überprüfen.

$ consul members

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Wenn Sie andere Knoten mit diesem Knoten verbinden möchten -

$ consul join <Node 2> <Node 3>

Alternativ können Sie den folgenden Befehl auf Knoten 2 und 3 ausführen:

$ consul join <Node 1>

Verwenden der Befehlszeile

Die Befehlszeile des Konsuls besteht aus verschiedenen Optionen. Einige der am häufigsten verwendeten sind folgende:

  • agent - die einen Konsulagenten betreibt.

  • configtest - um eine Konfigurationsdatei zu validieren.

  • event - um eine neue Veranstaltung zu starten.

  • exec - um einen Befehl auf Consul-Knoten auszuführen.

  • force-leave - Erzwingen, dass ein Mitglied des Clusters den Cluster verlässt.

  • info - Es liefert uns die Debugging-Informationen für die Bediener.

  • join - um einen Konsulagenten dem Cluster beizutreten.

  • keygen - um einen neuen Verschlüsselungsschlüssel zu generieren.

  • keyring - um Klatschschicht-Verschlüsselungsschlüssel zu verwalten.

  • kv - um mit dem Schlüsselwertspeicher zu interagieren.

  • leave - den Konsul-Cluster zu verlassen und ihn ohne Gewalt herunterzufahren.

  • lock - einen Befehl ausführen, um eine Sperre gedrückt zu halten.

  • maint - zur Steuerung des Knoten- oder Servicewartungsmodus.

  • members - Es listet die Mitglieder eines Konsul-Clusters auf.

  • monitor - Es überträgt Protokolle von einem Konsulagenten.

  • operator - Es bietet uns eine Reihe von Tools für Konsul-Betreiber.

  • reload - Es veranlasst den Agenten, Konfigurationsdateien neu zu laden.

  • rtt - Es schätzt die Netzwerk-Roundtrip-Zeit zwischen Knoten.

  • snapshot - Es werden Snapshots des Consul-Serverstatus gespeichert, wiederhergestellt und überprüft.

  • version - um die aktuelle Consul-Version zu drucken.

  • watch - auf Änderungen im Konsul achten.

Konsul Vorlage

Die Konsul-Vorlage stellt uns einen Dämon zur Verfügung, der die Konsul-Instanz abfragt und eine beliebige Anzahl angegebener Vorlagen im Dateisystem aktualisiert. Die Konsul-Vorlage kann optional beliebige Befehle ausführen, wenn der Aktualisierungsprozess abgeschlossen ist. Diese Option hilft uns, den Konsul-Cluster einzurichten, ohne alles manuell selbst zu erledigen.

Die Konsulschablone soll bei gebildet werden /tmp/<name-of-file>.conf.tmpfl. Die Sprache, in der die Vorlage geschrieben wurdeHashicorp Configuration Language (HCL).

Sie können die Konsul-Vorlage von dieser Seite herunterladen .

Probieren Sie es mit dem folgenden Befehl aus:

$ ./consul-template -h

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Wenn Sie diese Binärdatei an einen prominenteren Ort verschieben möchten, damit sie dem Benutzer jedes Mal zur Verfügung steht. Sie können die folgenden Befehle eingeben:

$ chmod +x consul-template
$ sudo mv consul-template /usr/share/bin/

Für Demozwecke verwenden wir eine Beispielkonfiguration von nginxals unser Service verwendet werden. Sie können weitere Demos unter ausprobierenhttps://github.com/hashicorp/consul-template/tree/master/examples oder schreiben Sie besser Ihre eigene Vorlage auf.

$ vim /tmp/nginx.conf.ctmpl

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.

Die Konfigurationsdatei könnte wie folgt aussehen:

{{range services}} {{$name := .Name}} {{$service := service .Name}}

upstream {{$name}} {
   zone upstream-{{$name}} 64k;
   {{range $service}}server {{.Address}}:{{.Port}} max_fails = 3 fail_timeout = 60
   weight = 1;
   {{else}}server 127.0.0.1:65535; # force a 502{{end}}
} {{end}}

server {
   listen 80 default_server;
   location / {
      root /usr/share/nginx/html/;
      index index.html;
   }
   location /stub_status {
      stub_status;
   }
   {{range services}} {{$name := .Name}}
   location /{{$name}} {
      proxy_pass http://{{$name}};
   }
   {{end}}
}

Führen Sie nun unter Verwendung der Binärdatei der Konsulvorlage die folgenden Befehle aus:

$ consul-template \
 -template = "/tmp/nginx.conf.ctmpl:/etc/nginx/conf.d/default.conf"

Mit dem vorherigen Befehl wurde der Prozess gestartet. Sie können später ein anderes Terminal öffnen und die vollständig gerenderte Datei nginx.conf mit dem folgenden Befehl anzeigen.

$ cat /etc/nginx/conf.d/default.conf

Die Ausgabe erfolgt wie im folgenden Screenshot gezeigt.