brianshumate.consul
Consul
Diese Ansible-Rolle installiert Consul, einschließlich der Einrichtung einer Dateisystemstruktur und der Konfiguration von Server- oder Client-Agenten mit Unterstützung für einige gängige betriebliche Funktionen.
Es kann auch ein Entwicklungs- oder Evaluierungscluster mit 3 Server-Agenten in einer Vagrant- und VirtualBox-Umgebung gestartet werden. Weitere Details finden Sie in README_VAGRANT.md und der zugehörigen Vagrantfile.
Rollendenken
„Ein weiterer Fehler im menschlichen Charakter ist, dass jeder bauen will und niemand warten will.”
― Kurt Vonnegut, Hocus Pocus
Bitte beachten Sie, dass das ursprüngliche Entwurfsziel dieser Rolle mehr auf der ersten Installation und hochzuschalten von einer Consul-Serverclusterumgebung lag und deshalb aktuell nicht (so sehr) mit der laufenden Wartung eines Clusters befasst ist.
Viele Benutzer haben geäußert, dass die Vagrant-basierte Umgebung den Prozess, ein funktionierendes lokales Consul-Servercluster einzurichten, einfach macht. Diese Rolle wird daher dieses Erlebnis als Hauptmotivation anstreben.
Wenn Sie es auf andere Weise nutzen können, umso besser!
Rollentransfer und Installation
Diese Rolle wurde ursprünglich von Brian Shumate entwickelt und war auf Ansible Galaxy als brianshumate.consul bekannt. Brian bat die Community, ihn von der Wartungsbelastung zu entlasten, und deshalb übertrug Bas Meijer die Rolle an ansible-collections, damit ein Team von Freiwilligen sie warten kann. Um diese Rolle in Ihr Projekt zu installieren, sollten Sie eine Datei requirements.yml
im Unterverzeichnis roles/
Ihres Projekts mit folgendem Inhalt erstellen:
---
- src: https://github.com/ansible-collections/ansible-consul.git
name: ansible-consul
scm: git
version: master
Dieses Repository hat getaggte Releases, die Sie verwenden können, um die Version festzulegen.
Tower wird die Rolle automatisch installieren, falls Sie die CLI zur Steuerung von ansible verwenden, dann installieren Sie sie so:
ansible-galaxy install -p roles -r roles/requirements.yml
Anforderungen
Diese Rolle benötigt eine FreeBSD-, Debian- oder Red Hat Enterprise Linux-Distribution oder Windows Server 2012 R2.
Die Rolle könnte auch mit anderen OS-Distributionen und Versionen funktionieren, ist aber bekannt, gut mit den folgenden Softwareversionen zu funktionieren:
- Consul: 1.8.7
- Ansible: 2.8.2
- Alma Linux: 8, 9
- Alpine Linux: 3.8
- CentOS: 7, 8
- Debian: 9
- FreeBSD: 11
- Mac OS X: 10.15 (Catalina)
- RHEL: 7, 8
- Rocky Linux: 8
- OracleLinux: 7, 8
- Ubuntu: 16.04
- Windows: Server 2012 R2
Beachten Sie, dass für den „lokalen“ Installationsmodus (den Standardwert) diese Rolle nur eine Instanz des Consul-Archivs lokal herunterlädt, entpackt und das resultierende Binary auf allen gewünschten Consul-Hosts installiert.
Dazu ist erforderlich, dass unzip
auf dem Ansible-Kontrollhost verfügbar ist, die Rolle schlägt fehl, wenn sie unzip
nicht im PATH erkennt.
Die Sammlungsanforderungen für diese Rolle sind in der requirements.yml
Datei aufgeführt. Es liegt in Ihrer Verantwortung, sicherzustellen, dass Sie diese Sammlungen installieren, um sicherzustellen, dass die Rolle ordnungsgemäß funktioniert. Dies kann normalerweise mit folgendem Befehl erfolgen:
ansible-galaxy collection install -r requirements.yml
Hinweise
Diese Rolle unterstützt die Limit-Option (ansible -l
) zur Einschränkung der Hosts nicht vollständig, da dies das Befüllen erforderlicher Hostvariablen durcheinander bringt. Wenn Sie die Limit-Option mit dieser Rolle verwenden, können Sie auf Vorlagenschäden stoßen wie:
Undefined is not JSON serializable.
Rollenvariablen
Die Rolle verwendet Variablen, die an diesen 3 Orten definiert sind:
- Hosts-Inventar-Datei (siehe
examples/vagrant_hosts
für ein Beispiel) vars/*.yml
(primär OS-/distributionsspezifische Variablen)defaults/main.yml
(alles andere)
:warning: HINWEIS: Die Rolle verlässt sich darauf, dass die Hostgruppe für die Consul-Server als die Variable
consul_group_name
definiert ist, und sie funktioniert sonst nicht richtig. Alternativ können die Consul-Server in der Standard-Hostgruppe[consul_instances]
im Inventar platziert werden, wie in den untenstehenden Beispielen gezeigt.
Viele Rollenvariablen können auch ihre Werte aus Umgebungsvariablen beziehen; diese werden in der Beschreibung angegeben, wo dies zutrifft.
consul_version
- Version zu installieren
- Setzen Sie den Wert auf
latest
für die neueste verfügbare Version von Consul - Standardwert: 1.8.7
consul_architecture_map
- Wörterbuch zur Übersetzung der Werte von ansible_architecture in Go-Architekturwerte
- Standardwert: dict
ansible-galaxy install brianshumate.consul