Bessonov.docker-swarm

Rol de Ansible para configurar un clúster de Docker Swarm

El proyecto es Estado de la construcción Licencia

Este rol:

  • Configura un clúster
  • Gestiona los nodos de administración y trabajo

La ejecución se basa en una máquina de estados finitos, por lo que este rol puede transformar un clúster existente en el estado deseado. ¡Consulta las advertencias y prueba la transformación antes de la ejecución!

Consulta rol de Ansible para Docker para la instalación de Docker.

Requisitos

Ansible 2.3 y Docker instalado.

Advertencias

Si cambia algún nodo de administración, al menos uno de ellos debe permanecer estático en cada ejecución del playbook. Por ejemplo, para cambiar el nodo-1 por el nodo-2:

  1. Agrega el nodo-2 a los administradores
  2. Ejecuta el playbook
  3. Elimina el nodo-1 de los administradores
  4. Ejecuta el playbook

Para degradar o eliminar nodos con un playbook:

  1. Mantén los nodos en el inventario (consulta el ejemplo a continuación)
  2. Ejecuta el playbook
  3. Ahora puedes eliminar los nodos que no participan en el clúster del inventario

Ejemplo de Playbook

Instala el rol globalmente con:

ansible-galaxy install Bessonov.docker-swarm

o localmente:

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

Inventario (puedes elegir cualquier nombre para los grupos, removed-nodes es opcional para un nuevo clúster):

[managers]
nodo-1
nodo-2
nodo-3

[workers]
nodo-1
nodo-3
nodo-4

[removed-nodes]
nodo-5
nodo-6

Playbook:

# recopila datos sobre los nodos que deben ser eliminados o degradados del clúster existente
- hosts: removed-nodes:workers
  tasks: []

# Docker debe estar instalado antes
# puedes usar cualquier rol para la instalación de Docker
- hosts: managers:workers
  roles:
    - role: Bessonov.docker

- hosts: managers
  # la CLI de Docker no admite acceso concurrente
  serial: 1
  roles:
    - role: Bessonov.docker-swarm
      swarm_worker_hosts: workers

      # opcional: sobrescribir parámetros predeterminados, consulta `defaults/main.yml`
      swarm_cluster_bootstrap_parameters:
        --advertise-addr: enp0s8

Licencia

Licencia MIT (MIT)

Copyright (c) 2017, Anton Bessonov

Por la presente se concede permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para manejar el Software sin restricciones, incluyendo sin limitación los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar, y/o vender copias del Software, y para permitir a las personas a quienes se les proporciona el Software hacerlo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITÁNDOSE A LAS GARANTÍAS DE COMERCIABILIDAD, APTITUD PARA UN PROPÓSITO EN PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO O OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO U OTRA, QUE SURJA DE, FUERA O EN CONEXIÓN CON EL SOFTWARE O EL USO O OTROS TRATOS EN EL SOFTWARE.

Acerca del proyecto

Setup and manage a docker swarm cluster

Instalar
ansible-galaxy install Bessonov.docker-swarm
Licencia
mit
Descargas
12k
Propietario