ci: actualizar pipeline con nuevas variables SSH y IPs
- Reemplaza DEV_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC por SSH_PRIVATE_KEY_THOTH - Reemplaza PROD_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC por SSH_PRIVATE_KEY_THOTH - Reemplaza DEV_SERVER_IP_PROYECTOSACC por DEV_INSTANCE_IP - Reemplaza PROD_SERVER_IP_PROYECTOSACC por PROD_INSTANCE_IP - Elimina dependencia de base64 para llaves SSH (ahora texto plano) - Agrega documentación de conexión en DATOS_CONEXION.md - Incluye llaves SSH generadas en directorio keys/
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
# Datos de Conexión SSH para CI/CD - Proyecto SACC4
|
||||||
|
|
||||||
|
## Servidores
|
||||||
|
|
||||||
|
| Entorno | IP | Usuario | Llave |
|
||||||
|
|---------|-----|---------|-------|
|
||||||
|
| DEV | 78.12.135.184 | thoth | bitbucket_thoth |
|
||||||
|
| DEV | 78.12.135.184 | osiris | bitbucket_osiris |
|
||||||
|
| PROD | 78.12.139.51 | thoth | bitbucket_thoth |
|
||||||
|
| PROD | 78.12.139.51 | osiris | bitbucket_osiris |
|
||||||
|
|
||||||
|
## Variables de Bitbucket
|
||||||
|
|
||||||
|
```
|
||||||
|
DEV_INSTANCE_IP=78.12.135.184
|
||||||
|
PROD_INSTANCE_IP=78.12.139.51
|
||||||
|
SSH_PRIVATE_KEY_THOTH=(contenido de keys/thoth_key)
|
||||||
|
SSH_PRIVATE_KEY_OSIRIS=(contenido de keys/osiris_key)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Archivos de Llaves
|
||||||
|
- `keys/thoth_key` - Llave privada para usuario thoth
|
||||||
|
- `keys/thoth_key.pub` - Llave pública para usuario thoth
|
||||||
|
- `keys/osiris_key` - Llave privada para usuario osiris
|
||||||
|
- `keys/osiris_key.pub` - Llave pública para usuario osiris
|
||||||
|
|
||||||
|
## Conexión de Prueba
|
||||||
|
```bash
|
||||||
|
ssh -i keys/thoth_key thoth@78.12.135.184
|
||||||
|
ssh -i keys/osiris_key osiris@78.12.135.184
|
||||||
|
```
|
||||||
+26
-26
@@ -74,9 +74,9 @@ pipelines:
|
|||||||
- ./aws/install
|
- ./aws/install
|
||||||
- aws --version
|
- aws --version
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
- echo "${DEV_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
- echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
- chmod 600 ~/.ssh/sacc4_key
|
- chmod 600 ~/.ssh/sacc4_key
|
||||||
- ssh-keyscan -p "${DEV_SSH_PORT_PROYECTOSACC:-22}" "${DEV_SERVER_IP_PROYECTOSACC}" >> ~/.ssh/known_hosts 2>/dev/null || true
|
- ssh-keyscan -p "22" "${DEV_INSTANCE_IP}" >> ~/.ssh/known_hosts 2>/dev/null || true
|
||||||
- export TELEGRAM_BOT_TOKEN="${DEV_TELEGRAM_BOT_TOKEN}"
|
- export TELEGRAM_BOT_TOKEN="${DEV_TELEGRAM_BOT_TOKEN}"
|
||||||
- export TELEGRAM_CHAT_ID="${DEV_TELEGRAM_CHAT_ID}"
|
- export TELEGRAM_CHAT_ID="${DEV_TELEGRAM_CHAT_ID}"
|
||||||
- bash scripts/telegram-pipeline-notify.sh start
|
- bash scripts/telegram-pipeline-notify.sh start
|
||||||
@@ -178,16 +178,16 @@ pipelines:
|
|||||||
script:
|
script:
|
||||||
- set -euo pipefail
|
- set -euo pipefail
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
- echo "${DEV_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
- echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
- chmod 600 ~/.ssh/sacc4_key
|
- chmod 600 ~/.ssh/sacc4_key
|
||||||
# Actualizar authorized_keys del usuario thoth con la llave pública del pipeline
|
# Actualizar authorized_keys del usuario thoth con la llave pública del pipeline
|
||||||
# Esto asegura que solo el pipeline actual pueda acceder, rotando llaves automáticamente
|
# Esto asegura que solo el pipeline actual pueda acceder, rotando llaves automáticamente
|
||||||
- |
|
- |
|
||||||
DEV_PUB_KEY=$(echo "${DEV_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d | ssh-keygen -y -f /dev/stdin)
|
DEV_PUB_KEY=$(echo "${SSH_PRIVATE_KEY_THOTH}" | ssh-keygen -y -f /dev/stdin)
|
||||||
ssh -p "${DEV_SSH_PORT_PROYECTOSACC:-22}" \
|
ssh -p "22" \
|
||||||
-i ~/.ssh/sacc4_key \
|
-i ~/.ssh/sacc4_key \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
"${DEV_SERVER_USER_PROYECTOSACC:-thoth}@${DEV_SERVER_IP_PROYECTOSACC}" \
|
"thoth@${DEV_INSTANCE_IP}" \
|
||||||
"bash -c 'mkdir -p /home/thoth/.ssh && chmod 700 /home/thoth/.ssh && echo \"${DEV_PUB_KEY}\" > /home/thoth/.ssh/authorized_keys && chmod 600 /home/thoth/.ssh/authorized_keys && chown -R thoth:thoth /home/thoth/.ssh && echo \"INFO: Authorized keys actualizado con llave del pipeline\"'"
|
"bash -c 'mkdir -p /home/thoth/.ssh && chmod 700 /home/thoth/.ssh && echo \"${DEV_PUB_KEY}\" > /home/thoth/.ssh/authorized_keys && chmod 600 /home/thoth/.ssh/authorized_keys && chown -R thoth:thoth /home/thoth/.ssh && echo \"INFO: Authorized keys actualizado con llave del pipeline\"'"
|
||||||
- echo "SSH keys rotadas exitosamente."
|
- echo "SSH keys rotadas exitosamente."
|
||||||
|
|
||||||
@@ -209,12 +209,12 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
if [ "${HAS_LOCAL_JAR}" = "true" ]; then
|
if [ "${HAS_LOCAL_JAR}" = "true" ]; then
|
||||||
echo "INFO: Artefacto JAR encontrado localmente. Procediendo con instalación en servidor."
|
echo "INFO: Artefacto JAR encontrado localmente. Procediendo con instalación en servidor."
|
||||||
echo "${DEV_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
chmod 600 ~/.ssh/sacc4_key
|
chmod 600 ~/.ssh/sacc4_key
|
||||||
ssh -p "${DEV_SSH_PORT_PROYECTOSACC:-22}" \
|
ssh -p "22" \
|
||||||
-i ~/.ssh/sacc4_key \
|
-i ~/.ssh/sacc4_key \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
"${DEV_SERVER_USER_PROYECTOSACC:-thoth}@${DEV_SERVER_IP_PROYECTOSACC}" \
|
"thoth@${DEV_INSTANCE_IP}" \
|
||||||
"bash -c 'mkdir -p /home/thoth/deploy/artifacts/current && aws s3 cp ${JAR_S3_URI} /home/thoth/deploy/artifacts/current/proyectosacc-app.jar && chown osiris:osiris /home/thoth/deploy/artifacts/current/proyectosacc-app.jar'"
|
"bash -c 'mkdir -p /home/thoth/deploy/artifacts/current && aws s3 cp ${JAR_S3_URI} /home/thoth/deploy/artifacts/current/proyectosacc-app.jar && chown osiris:osiris /home/thoth/deploy/artifacts/current/proyectosacc-app.jar'"
|
||||||
else
|
else
|
||||||
echo "INFO: No se encontró artefacto JAR localmente. Saltando instalación."
|
echo "INFO: No se encontró artefacto JAR localmente. Saltando instalación."
|
||||||
@@ -232,13 +232,13 @@ pipelines:
|
|||||||
- ./aws/install
|
- ./aws/install
|
||||||
- aws --version
|
- aws --version
|
||||||
- source scripts/aws-oidc-setup.sh dev
|
- source scripts/aws-oidc-setup.sh dev
|
||||||
- echo "${DEV_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
- echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
- chmod 600 ~/.ssh/sacc4_key
|
- chmod 600 ~/.ssh/sacc4_key
|
||||||
- |
|
- |
|
||||||
ssh -p "${DEV_SSH_PORT_PROYECTOSACC:-22}" \
|
ssh -p "22" \
|
||||||
-i ~/.ssh/sacc4_key \
|
-i ~/.ssh/sacc4_key \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
"${DEV_SERVER_USER_PROYECTOSACC:-thoth}@${DEV_SERVER_IP_PROYECTOSACC}" \
|
"thoth@${DEV_INSTANCE_IP}" \
|
||||||
"bash -c 'if [ -f /home/thoth/deploy/setup/deploy.sh ]; then bash /home/thoth/deploy/setup/deploy.sh; else echo \"INFO: No se encontró script de deploy. Saltando deploy backend.\"; fi'"
|
"bash -c 'if [ -f /home/thoth/deploy/setup/deploy.sh ]; then bash /home/thoth/deploy/setup/deploy.sh; else echo \"INFO: No se encontró script de deploy. Saltando deploy backend.\"; fi'"
|
||||||
- |
|
- |
|
||||||
if [ -f terraform/terraform-outputs.json ]; then
|
if [ -f terraform/terraform-outputs.json ]; then
|
||||||
@@ -261,7 +261,7 @@ pipelines:
|
|||||||
- echo "=== Health Check post-deploy (DEV) ==="
|
- echo "=== Health Check post-deploy (DEV) ==="
|
||||||
- |
|
- |
|
||||||
export ENV=dev
|
export ENV=dev
|
||||||
export HEALTH_URL="http://${DEV_SERVER_IP_PROYECTOSACC}:8080/actuator/health"
|
export HEALTH_URL="http://${DEV_INSTANCE_IP}:8080/actuator/health"
|
||||||
export MAX_RETRIES=12
|
export MAX_RETRIES=12
|
||||||
export RETRY_INTERVAL=10
|
export RETRY_INTERVAL=10
|
||||||
# Verificar CloudFront
|
# Verificar CloudFront
|
||||||
@@ -289,9 +289,9 @@ pipelines:
|
|||||||
- ./aws/install
|
- ./aws/install
|
||||||
- aws --version
|
- aws --version
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
- echo "${PROD_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
- echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
- chmod 600 ~/.ssh/sacc4_key
|
- chmod 600 ~/.ssh/sacc4_key
|
||||||
- ssh-keyscan -p "${PROD_SSH_PORT_PROYECTOSACC:-22}" "${PROD_SERVER_IP_PROYECTOSACC}" >> ~/.ssh/known_hosts 2>/dev/null || true
|
- ssh-keyscan -p "22" "${PROD_INSTANCE_IP}" >> ~/.ssh/known_hosts 2>/dev/null || true
|
||||||
- export TELEGRAM_BOT_TOKEN="${PROD_TELEGRAM_BOT_TOKEN}"
|
- export TELEGRAM_BOT_TOKEN="${PROD_TELEGRAM_BOT_TOKEN}"
|
||||||
- export TELEGRAM_CHAT_ID="${PROD_TELEGRAM_CHAT_ID}"
|
- export TELEGRAM_CHAT_ID="${PROD_TELEGRAM_CHAT_ID}"
|
||||||
- bash scripts/telegram-pipeline-notify.sh start
|
- bash scripts/telegram-pipeline-notify.sh start
|
||||||
@@ -392,16 +392,16 @@ pipelines:
|
|||||||
script:
|
script:
|
||||||
- set -euo pipefail
|
- set -euo pipefail
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
- echo "${PROD_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
- echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
- chmod 600 ~/.ssh/sacc4_key
|
- chmod 600 ~/.ssh/sacc4_key
|
||||||
# Actualizar authorized_keys del usuario thoth con la llave pública del pipeline
|
# Actualizar authorized_keys del usuario thoth con la llave pública del pipeline
|
||||||
# Esto asegura que solo el pipeline actual pueda acceder, rotando llaves automáticamente
|
# Esto asegura que solo el pipeline actual pueda acceder, rotando llaves automáticamente
|
||||||
- |
|
- |
|
||||||
PROD_PUB_KEY=$(echo "${PROD_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d | ssh-keygen -y -f /dev/stdin)
|
PROD_PUB_KEY=$(echo "${SSH_PRIVATE_KEY_THOTH}" | ssh-keygen -y -f /dev/stdin)
|
||||||
ssh -p "${PROD_SSH_PORT_PROYECTOSACC:-22}" \
|
ssh -p "22" \
|
||||||
-i ~/.ssh/sacc4_key \
|
-i ~/.ssh/sacc4_key \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
"${PROD_SERVER_USER_PROYECTOSACC:-thoth}@${PROD_SERVER_IP_PROYECTOSACC}" \
|
"thoth@${PROD_INSTANCE_IP}" \
|
||||||
"bash -c 'mkdir -p /home/thoth/.ssh && chmod 700 /home/thoth/.ssh && echo \"${PROD_PUB_KEY}\" > /home/thoth/.ssh/authorized_keys && chmod 600 /home/thoth/.ssh/authorized_keys && chown -R thoth:thoth /home/thoth/.ssh && echo \"INFO: Authorized keys actualizado con llave del pipeline\"'"
|
"bash -c 'mkdir -p /home/thoth/.ssh && chmod 700 /home/thoth/.ssh && echo \"${PROD_PUB_KEY}\" > /home/thoth/.ssh/authorized_keys && chmod 600 /home/thoth/.ssh/authorized_keys && chown -R thoth:thoth /home/thoth/.ssh && echo \"INFO: Authorized keys actualizado con llave del pipeline\"'"
|
||||||
- echo "SSH keys rotadas exitosamente."
|
- echo "SSH keys rotadas exitosamente."
|
||||||
|
|
||||||
@@ -423,12 +423,12 @@ pipelines:
|
|||||||
fi
|
fi
|
||||||
if [ "${HAS_LOCAL_JAR}" = "true" ]; then
|
if [ "${HAS_LOCAL_JAR}" = "true" ]; then
|
||||||
echo "INFO: Artefacto JAR encontrado localmente. Procediendo con instalación en servidor."
|
echo "INFO: Artefacto JAR encontrado localmente. Procediendo con instalación en servidor."
|
||||||
echo "${PROD_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
chmod 600 ~/.ssh/sacc4_key
|
chmod 600 ~/.ssh/sacc4_key
|
||||||
ssh -p "${PROD_SSH_PORT_PROYECTOSACC:-22}" \
|
ssh -p "22" \
|
||||||
-i ~/.ssh/sacc4_key \
|
-i ~/.ssh/sacc4_key \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
"${PROD_SERVER_USER_PROYECTOSACC:-thoth}@${PROD_SERVER_IP_PROYECTOSACC}" \
|
"thoth@${PROD_INSTANCE_IP}" \
|
||||||
"bash -c 'mkdir -p /home/thoth/deploy/artifacts/current && aws s3 cp ${JAR_S3_URI} /home/thoth/deploy/artifacts/current/proyectosacc-app.jar && chown osiris:osiris /home/thoth/deploy/artifacts/current/proyectosacc-app.jar'"
|
"bash -c 'mkdir -p /home/thoth/deploy/artifacts/current && aws s3 cp ${JAR_S3_URI} /home/thoth/deploy/artifacts/current/proyectosacc-app.jar && chown osiris:osiris /home/thoth/deploy/artifacts/current/proyectosacc-app.jar'"
|
||||||
else
|
else
|
||||||
echo "INFO: No se encontró artefacto JAR localmente. Saltando instalación."
|
echo "INFO: No se encontró artefacto JAR localmente. Saltando instalación."
|
||||||
@@ -467,13 +467,13 @@ pipelines:
|
|||||||
else
|
else
|
||||||
echo "WARNING: No se encontró prod.tfplan. Terraform apply saltado."
|
echo "WARNING: No se encontró prod.tfplan. Terraform apply saltado."
|
||||||
fi
|
fi
|
||||||
- echo "${PROD_SSH_PRIVATE_KEY_THOTH_PROYECTOSACC}" | base64 -d > ~/.ssh/sacc4_key
|
- echo "${SSH_PRIVATE_KEY_THOTH}" > ~/.ssh/sacc4_key
|
||||||
- chmod 600 ~/.ssh/sacc4_key
|
- chmod 600 ~/.ssh/sacc4_key
|
||||||
- |
|
- |
|
||||||
ssh -p "${PROD_SSH_PORT_PROYECTOSACC:-22}" \
|
ssh -p "22" \
|
||||||
-i ~/.ssh/sacc4_key \
|
-i ~/.ssh/sacc4_key \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
"${PROD_SERVER_USER_PROYECTOSACC:-thoth}@${PROD_SERVER_IP_PROYECTOSACC}" \
|
"thoth@${PROD_INSTANCE_IP}" \
|
||||||
"bash -c 'if [ -f /home/thoth/deploy/setup/deploy.sh ]; then bash /home/thoth/deploy/setup/deploy.sh; else echo \"INFO: No se encontró script de deploy. Saltando deploy backend.\"; fi'"
|
"bash -c 'if [ -f /home/thoth/deploy/setup/deploy.sh ]; then bash /home/thoth/deploy/setup/deploy.sh; else echo \"INFO: No se encontró script de deploy. Saltando deploy backend.\"; fi'"
|
||||||
- |
|
- |
|
||||||
if [ -f terraform/terraform-outputs.json ]; then
|
if [ -f terraform/terraform-outputs.json ]; then
|
||||||
@@ -496,7 +496,7 @@ pipelines:
|
|||||||
- echo "=== Health Check post-deploy (PROD) ==="
|
- echo "=== Health Check post-deploy (PROD) ==="
|
||||||
- |
|
- |
|
||||||
export ENV=prod
|
export ENV=prod
|
||||||
export HEALTH_URL="http://${PROD_SERVER_IP_PROYECTOSACC}:8080/actuator/health"
|
export HEALTH_URL="http://${PROD_INSTANCE_IP}:8080/actuator/health"
|
||||||
export MAX_RETRIES=12
|
export MAX_RETRIES=12
|
||||||
export RETRY_INTERVAL=10
|
export RETRY_INTERVAL=10
|
||||||
# Verificar CloudFront
|
# Verificar CloudFront
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||||
|
QyNTUxOQAAACAdkhvJ7Il4Yrw1Zqu9P1PcFbdc2HciYqb7tCaj60a+vwAAAJhowcCaaMHA
|
||||||
|
mgAAAAtzc2gtZWQyNTUxOQAAACAdkhvJ7Il4Yrw1Zqu9P1PcFbdc2HciYqb7tCaj60a+vw
|
||||||
|
AAAEBaErHCg+OQP9abpbe9+Eee80Cncbntxz5TXkuqBkA0xx2SG8nsiXhivDVmq70/U9wV
|
||||||
|
t1zYdyJipvu0JqPrRr6/AAAAEG9zaXJpc0BjY3NvZnQuYWkBAgMEBQ==
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
|
||||||
|
QyNTUxOQAAACC8ad1D22SDWfkWGeO9qwGKrBFJmLe68Kk90aF/skUgYAAAAJimLIkZpiyJ
|
||||||
|
GQAAAAtzc2gtZWQyNTUxOQAAACC8ad1D22SDWfkWGeO9qwGKrBFJmLe68Kk90aF/skUgYA
|
||||||
|
AAAEC+p75hAW4PuYLQcy6dlR0taqeoNNFknaUbOHx7kdEKYrxp3UPbZINZ+RYZ472rAYqs
|
||||||
|
EUmYt7rwqT3RoX+yRSBgAAAAD3Rob3RoQGNjc29mdC5haQECAwQFBg==
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
||||||
Reference in New Issue
Block a user