82 lines
2.7 KiB
Bash
Executable File
82 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script para arreglar Activepieces en Alicante Core V3.2
|
|
# Se ejecuta en DCC (10.10.10.101) dentro de /sc/alicante-infra
|
|
|
|
# Colores
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
REPO_DIR="/sc/alicante-infra"
|
|
GROUP_VARS="$REPO_DIR/group_vars/all.yml"
|
|
# IMPORTANTE: Ajusta si tu template real tiene otro nombre (ej. apps-business-compose.j2)
|
|
TEMPLATE_FILE="$REPO_DIR/roles/core/templates/business-compose.j2"
|
|
|
|
# 0. Verificaciones
|
|
if [ ! -f "$GROUP_VARS" ]; then
|
|
echo -e "${RED}ERROR: No encuentro $GROUP_VARS. ¿Estás en el DCC?${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# Verificar nombre real del template (Ansible usa src: "{{ item }}-compose.j2" normalmente)
|
|
if [ ! -f "$TEMPLATE_FILE" ]; then
|
|
# Intentamos buscar si existe con prefijo apps-
|
|
if [ -f "$REPO_DIR/roles/core/templates/apps-business-compose.j2" ]; then
|
|
TEMPLATE_FILE="$REPO_DIR/roles/core/templates/apps-business-compose.j2"
|
|
echo -e "${YELLOW}Aviso: Usando template alternativo: $TEMPLATE_FILE${NC}"
|
|
else
|
|
echo -e "${RED}ERROR: No encuentro el template business-compose.j2${NC}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo -e "${GREEN}=== FIX ACTIVEPIECES SECRETS ===${NC}"
|
|
|
|
# 1. Generar Claves
|
|
echo -e "${YELLOW}[1/3] Generando claves criptográficas...${NC}"
|
|
AP_KEY=$(openssl rand -hex 16)
|
|
AP_JWT=$(openssl rand -base64 32)
|
|
echo " Encryption Key: $AP_KEY"
|
|
echo " JWT Secret: (generado)"
|
|
|
|
# 2. Inyectar en group_vars/all.yml
|
|
echo -e "${YELLOW}[2/3] Actualizando group_vars/all.yml...${NC}"
|
|
|
|
if grep -q "ap_encryption_key" "$GROUP_VARS"; then
|
|
echo -e " ⚠️ Variables ya existen en group_vars. Saltando inyección."
|
|
else
|
|
cat <<EOT >> "$GROUP_VARS"
|
|
|
|
# Activepieces Configuration
|
|
ap_encryption_key: "$AP_KEY"
|
|
ap_jwt_secret: "$AP_JWT"
|
|
EOT
|
|
echo -e " ✅ Variables añadidas al final del archivo."
|
|
fi
|
|
|
|
# 3. Parchear el Template (business-compose.j2)
|
|
echo -e "${YELLOW}[3/3] Parcheando template Docker Compose...${NC}"
|
|
|
|
# Hacemos backup
|
|
cp "$TEMPLATE_FILE" "${TEMPLATE_FILE}.bak_ap"
|
|
|
|
# Estrategia: Buscar la línea AP_FRONTEND_URL e insertar debajo las nuevas variables
|
|
# Usamos perl para inserción multilínea segura
|
|
perl -i -pe 's|(AP_FRONTEND_URL:.*)|$1\n AP_ENCRYPTION_KEY: "{{ ap_encryption_key }}"\n AP_JWT_SECRET: "{{ ap_jwt_secret }}"|g' "$TEMPLATE_FILE"
|
|
|
|
if grep -q "AP_ENCRYPTION_KEY" "$TEMPLATE_FILE"; then
|
|
echo -e " ✅ Template parcheado correctamente."
|
|
else
|
|
echo -e "${RED}ERROR: Falló el parcheo del template. Revisa manualmente.${NC}"
|
|
# Restaurar backup si falló
|
|
cp "${TEMPLATE_FILE}.bak_ap" "$TEMPLATE_FILE"
|
|
fi
|
|
|
|
echo -e "${GREEN}=== LISTO ===${NC}"
|
|
echo -e "Ahora ejecuta:"
|
|
echo -e "1. git diff"
|
|
echo -e "2. git add . && git commit -m 'Fix Activepieces secrets' && git push"
|
|
echo -e "3. Desplegar en Semaphore"
|