pipeline { agent { label 'terraform' } // ¡CRUCIAL! Debe correr donde está Terraform instalado stages { stage('Checkout') { steps { git branch: 'main', url: 'https://git.agile611.com/Agile611/startusingjenkins.git' } } stage('Terraform Init') { steps { // Inicializa y descarga el provider 'local' sh 'terraform init' } } stage('Terraform Plan') { steps { // Genera el plan y lo guarda en un archivo binario 'tfplan' // -out es vital para asegurar que el apply haga EXACTAMENTE lo que vimos aquí sh 'terraform plan -out=tfplan' // Opcional: Mostrar el plan en texto para que el humano lo lea en los logs sh 'terraform show -no-color tfplan' } } stage('Aprobación Manual') { steps { script { // Esto pausará el pipeline y mostrará un pop-up en la UI input message: '¿El plan de Terraform parece correcto?', ok: 'Desplegar' } } } stage('Terraform Apply') { steps { // Aplica el plan guardado anteriormente sh 'terraform apply -auto-approve tfplan' } } stage('Verificación') { steps { // Comprobamos que el archivo se creó sh 'ls -l mensaje.txt' sh 'cat mensaje.txt' } } } }