Este proyecto incluye:
- Jenkins con Node.js, Yarn y Cypress configurado para pruebas headless.
- Dos servidores Nginx + SSH para desplegar los builds de Vue.
- Pipeline CI/CD que compila Vue, ejecuta tests y despliega automáticamente vía SSH.
- jenkins/ # Dockerfile de Jenkins con Node.js y Cypress
- servidor_nginx/ # Dockerfile de Nginx + SSH
- proyecto1/ # Código Vue para despliegue en web1
- proyecto2/ # Código Vue para despliegue en web2
- docker-compose.yml
- Construir y levantar todos los servicios:
docker-compose up -d --build- Generar una llave SSH en el contenedor de Jenkins:
docker exec -it jenkins-vue /bin/bash
ssh-keygen -t rsa -b 4096 -C "jenkins- Copiar la llave pública al servidor remoto (Nginx):
ssh-copy-id -i /var/jenkins_home/.ssh/id_rsa.pub user@vue-nginx-1
ssh-copy-id -i /var/jenkins_home/.ssh/id_rsa.pub user@vue-nginx-2- Probar la conexión SSH:
ssh user@vue-nginx-1 "echo Conexión OK"
ssh user@vue-nginx-2 "echo Conexión OK"- Agregar las llaves SSH a los hosts conocidos:
ssh-keyscan -H vue-nginx-1 >> ~/.ssh/known_hosts
ssh-keyscan -H vue-nginx-2 >> ~/.ssh/known_hosts- Instalar los plugins "SSH" en Jenkins.
- Mostrar en la terminal el id_rsa.pub:
ssh-keygen -p -m PEM -f /var/jenkins_home/.ssh/id_rsa
cat /var/jenkins_home/.ssh/id_rsa.pub- Agregar Credenciales a Jenkins:
- Ingresar a la interfaz de Jenkins.
- Ir a "Administrar Jenkins" > "Credenciales" > "Agregar credenciales".
- Tipo: "SSH Username with private key".
- ID: "vue-nginx-1".
- Username: "user".
- Private Key: "Enter directly" y pegar el contenido de
/var/jenkins_home/.ssh/id_rsa.