Bessonov.docker-swarm
Ansible-Rolle zur Einrichtung eines Docker-Swarm-Clusters
Diese Rolle:
- Startet ein Cluster
- Verwalte Manager und Arbeiter
Die Ausführung basiert auf einer endlichen Zustandsmaschine und diese Rolle kann ein bestehendes Cluster in den gewünschten Zustand transformieren. Beachten Sie die Hinweise und testen Sie die Transformation vor der Ausführung!
Siehe Ansible Docker-Rolle zur Docker-Installation.
Anforderungen
Ansible 2.3 und installierte Docker.
Hinweise
Wenn sich die Manager-Knoten ändern, sollte mindestens einer von ihnen bei jedem Playbook-Durchlauf statisch bleiben. Zum Beispiel, um Manager-1 mit Manager-2 auszutauschen:
- Fügen Sie Manager-2 zu den Managern hinzu.
- Führen Sie das Playbook aus.
- Entfernen Sie Manager-1 aus den Managern.
- Führen Sie das Playbook erneut aus.
Senken oder entfernen Sie Knoten mit dem Playbook:
- Lassen Sie die Knoten im Inventar (siehe das Beispiel unten).
- Führen Sie das Playbook aus.
- Jetzt können Sie Knoten, die nicht am Cluster teilnehmen, aus dem Inventar entfernen.
Beispiel-Playbook
Installieren Sie die Rolle global mit:
ansible-galaxy install Bessonov.docker-swarm
oder lokal:
ansible-galaxy install --roles-path roles Bessonov.docker-swarm
Inventar (Sie können beliebige Namen für die Gruppen wählen, removed-nodes
ist optional für ein neues Cluster):
[managers]
node-1
node-2
node-3
[workers]
node-1
node-3
node-4
[removed-nodes]
node-5
node-6
Playbook:
# sammle Fakten über Knoten, die aus dem bestehenden Cluster entfernt oder herabgestuft werden sollen
- hosts: removed-nodes:workers
tasks: []
# Docker muss vorher installiert sein
# Sie können jede Rolle zur Docker-Installation verwenden
- hosts: managers:workers
roles:
- role: Bessonov.docker
- hosts: managers
# Docker CLI unterstützt keinen gleichzeitigen Zugriff
serial: 1
roles:
- role: Bessonov.docker-swarm
swarm_worker_hosts: workers
# optional: Standardparameter überschreiben, siehe `defaults/main.yml`
swarm_cluster_bootstrap_parameters:
--advertise-addr: enp0s8
Lizenz
Die MIT-Lizenz (MIT)
Copyright (c) 2017, Anton Bessonov
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, kostenlos gestattet, die Software ohne Einschränkung zu nutzen, einschließlich, aber nicht beschränkt auf die Rechte zur Nutzung, Kopie, Modifikation, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder Verkauf von Kopien der Software, sowie die Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:
Die obige Urheberrechtshinweise und diese Erlaubnis müssen in allen Kopien oder erheblichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD "WIE BESEHEN" OHNE GARANTIE ANY ART, AUSDRÜCKLICH ODER IMPLIZIT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF GARANTIEN DER MARKTFÄHIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL SOLLEN DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR SÄMTLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNGEN HAFTBAR GEMACHT WERDEN, OB IN EINER KLAUSUR DER VERTRAG, UNRECHTMÄSSIGE HANDLUNG ODER ANDERS, ENTSTEHEND AUS, AUFGRUND ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN ANFÄNGEN IN DER SOFTWARE.