pipeline { agent any environment { TERRAFORM_HOME = tool 'Terraform' // Define la herramienta Terraform como una variable de entorno PROJECT_DIR = 'ruta_del_proyecto' CLOUDGURU_API_KEY = credentials('cloudguru-api-key') // Almacena la clave de la API de CloudGuru en Jenkins Credentials } stages { stage('Clonar Repositorio') { steps { checkout scm } } stage('Configurar Infraestructura con Terraform') { steps { script { sh "${TERRAFORM_HOME}/terraform init ${PROJECT_DIR}" sh "${TERRAFORM_HOME}/terraform apply -auto-approve ${PROJECT_DIR}" } } } stage('Desplegar Laboratorio') { steps { script { // Llamadas a la API de CloudGuru para configurar el laboratorio withCredentials([string(credentialsId: 'cloudguru-api-key', variable: 'CLOUDGURU_API_KEY')]) { sh "curl -X POST -H 'Authorization: Bearer ${CLOUDGURU_API_KEY}' https://api.cloudguru.com/labs/deploy" } } } } } post { success { echo 'Pipeline ejecutado exitosamente.' } failure { echo 'Error en la ejecución del pipeline.' } } }