Automatización para el despliegue de un cluster de Apache Spark con Azure, Cloudflare y Azure DevOps
Reportar un Problema
Este proyecto orquesta la creación de un cluster de Apache Spark desde la generación de máquinas virtuales, instalación de dependencias y configuración de repositorios privados para un trabajo rápido y eficiente sobre Azure.
Este proyecto en Python proporciona una herramienta de línea de comandos para gestionar un clúster de forma automatizada. Permite crear y eliminar recursos, instalar dependencias, iniciar nodos, configurar DNS y entornos de DevOps, así como orquestar acciones sobre el clúster de manera centralizada.
El script está diseñado para simplificar tareas repetitivas de administración y despliegue, facilitando la gestión integral de la infraestructura.
Para su uso es necesario definir las variables de entorno en el archivo .env
. A continuación un ejemplo:
ID_SUSRCIPCION="idsuscripcion"
NOMBRE_CLUSTER="cluster"
NUMERO_NODOS="1"
TAMANIO_INSTANCIA_DRIVER="Standard_B2"
GRUPO_RECURSOS="GrupoRecursos"
NOMBRE_RED_VIRTUAL="Vnet"
NOMBRE_SUBRED="Subnet"
NOMBRE_CLAVE_SSH="clavessh"
REGION="eastus"
USERNAMEAZ="usuario"
GRUPO_RECURSOS_VNET="GrupoRecursos"
TAMANIO_INSTANCIA_WORKER="Standard_D2"
IP_PUBLICA="1.1.1.1"
RUTA_SCRIPTS_DEPENDENCIAS="C:/Usuario/user/scripts"
CLOUDFLARE_TOKEN="token-secreto"
ZONA_DNS="dominio.com"
ZONA_DNS_ID="id-zona"
PATRON_DNS="cluster.spark"
CORREO_CLOUDFLARE="[email protected]"
CLAVE_PRIVADA_DEVOPS="C:/Usuario/user/id_rsa"
El script puede ejecutarse desde la línea de comandos con diferentes argumentos para gestionar el clúster.
- Crear un recurso
python main.py --crear
Documentación sobre los prerrequisitos necesarios la puedes encontrar en: Requisitos
Esta automatización utiliza un mirror propio para la instalación de Hadoop y Spark. Esto se hizo con la intención de garantizar la estabilidad de los enlaces en el tiempo. Para el uso se puede cambiar esto pues los archivos no tienen ninguna modificación en particular.
En construcción...
Daniel Matías Lara ([email protected])
Distribuido bajo la licencia MIT.