Bessonov.docker-swarm

Rôle Ansible pour configurer un cluster Docker Swarm

Projet est État de construction Licence

Ce rôle :

  • Configure un cluster
  • Gère les gestionnaires et les travailleurs

L'exécution est basée sur une machine à états finis, ce qui signifie que ce rôle peut transformer un cluster existant dans l'état désiré. Voir les avertissements et tester la transformation avant l'exécution !

Voir rôle Ansible Docker pour l'installation de Docker.

Exigences

Ansible 2.3 et Docker installé.

Avertissements

Si les nœuds gestionnaires changent, au moins l'un d'eux doit rester statique pour chaque exécution de playbook. Par exemple, pour échanger le gestionnaire-1 avec le gestionnaire-2 :

  1. Ajoutez le gestionnaire-2 aux gestionnaires
  2. Exécutez le playbook
  3. Retirez le gestionnaire-1 des gestionnaires
  4. Exécutez le playbook

Déclasser ou supprimer des nœuds avec le playbook :

  1. Laissez les nœuds dans l'inventaire (voir l'exemple ci-dessous)
  2. Exécutez le playbook
  3. Maintenant, vous pouvez retirer les nœuds qui ne participent pas au cluster de l'inventaire

Exemple de Playbook

Installez le rôle globalement avec :

ansible-galaxy install Bessonov.docker-swarm

ou localement :

ansible-galaxy install --roles-path roles Bessonov.docker-swarm

Inventaire (vous pouvez choisir n'importe quel nom pour les groupes, removed-nodes est optionnel pour un nouveau cluster) :

[managers]
node-1
node-2
node-3

[workers]
node-1
node-3
node-4

[removed-nodes]
node-5
node-6

Playbook :

# rassembler des informations sur les nœuds qui doivent être retirés ou déclassés de l'ensemble du cluster existant
- hosts: removed-nodes:workers
  tasks: []

# Docker doit être installé au préalable
# vous pouvez utiliser n'importe quel rôle pour l'installation de Docker
- hosts: managers:workers
  roles:
    - role: Bessonov.docker

- hosts: managers
  # le CLI Docker ne prend pas en charge l'accès simultané
  serial: 1
  roles:
    - role: Bessonov.docker-swarm
      swarm_worker_hosts: workers

      # optionnel : remplacer les paramètres par défaut ; voir `defaults/main.yml`
      swarm_cluster_bootstrap_parameters:
        --advertise-addr: enp0s8

Licence

Licence MIT (MIT)

Copyright (c) 2017, Anton Bessonov

Par la présente, une permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter le Logiciel sans restriction, y compris sans limitation les droits d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier et/ou de vendre des copies du Logiciel, et d'autoriser les personnes à qui le Logiciel est fourni à le faire, sous réserve des conditions suivantes :

L'avis de copyright ci-dessus et cet avis de permission devront être inclus dans toutes les copies ou parties substantielles du Logiciel.

LE LOGICIEL EST FOURNI "TEL QUEL", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER AUX GARANTIES DE VENTE, ADÉQUATION À UN USAGE PARTICULIER ET NON-VIOLATION. EN AUCUN CAS, LES AUTEURS OU DÉTENTIONNAIRES DU COPYRIGHT NE POURRONT ÊTRE TENUS RESPONSABLES DE QUELQUE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION DE CONTRAT, DÉLIT OU AUTRE, RESSORTISSANT DE, OU EN LIEN AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES TRANSACTIONS DANS LE LOGICIEL.

À propos du projet

Setup and manage a docker swarm cluster

Installer
ansible-galaxy install Bessonov.docker-swarm
Licence
mit
Téléchargements
12k
Propriétaire