Add complete SACC v4 infrastructure project
- Terraform modules: VPC, EC2, RDS, S3, CloudFront, Route53, Lambda, IAM, Security Groups - Ansible playbooks for server configuration - Scripts: create-test-environment.sh, destroy-test-environment.sh, validate-environment.sh - Documentation: README, QUICKSTART, AGENTS - Jenkins pipeline for automated deployment - Jenkins pipeline for environment destruction
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
# SACC v4 - Scripts de Duplicación de Infraestructura
|
||||
# ====================================================
|
||||
# Este directorio contiene scripts para duplicar automáticamente
|
||||
# el entorno de producción SACC v4 en una cuenta AWS de pruebas.
|
||||
#
|
||||
# ATENCIÓN: NO ejecutar en producción. Solo para entornos de test.
|
||||
|
||||
## Estructura
|
||||
```
|
||||
iac-duplicate/
|
||||
├── terraform/ # Infraestructura como código
|
||||
│ ├── main.tf # Orquestación principal
|
||||
│ ├── variables.tf # Variables configurables
|
||||
│ ├── bootstrap.tf # Backend S3/DynamoDB
|
||||
│ └── modules/ # Módulos reutilizables
|
||||
│ ├── vpc/
|
||||
│ ├── ec2/
|
||||
│ ├── rds/
|
||||
│ ├── security-groups/
|
||||
│ ├── iam/
|
||||
│ ├── s3-cloudfront/
|
||||
│ ├── route53/
|
||||
│ └── lambda-scheduler/
|
||||
├── ansible/ # Configuración post-deploy
|
||||
│ └── playbooks/
|
||||
│ └── site.yml # Playbook principal
|
||||
├── bitbucket/ # Pipeline CI/CD
|
||||
│ └── bitbucket-pipelines.yml
|
||||
└── scripts/ # Scripts auxiliares
|
||||
└── ec2-user-data.sh
|
||||
```
|
||||
|
||||
## Uso Rápido
|
||||
|
||||
### 1. Preparar Cuenta AWS Test
|
||||
```bash
|
||||
# Configurar credenciales
|
||||
export AWS_ACCESS_KEY_ID=ASIAXT4UZ2SK5SFE4QVR
|
||||
export AWS_SECRET_ACCESS_KEY=...
|
||||
export AWS_SESSION_TOKEN=...
|
||||
export AWS_DEFAULT_REGION=mx-central-1
|
||||
```
|
||||
|
||||
### 2. Crear Backend Terraform
|
||||
```bash
|
||||
cd iac-duplicate/terraform
|
||||
terraform init
|
||||
terraform apply -target=aws_s3_bucket.terraform_state
|
||||
terraform apply -target=aws_dynamodb_table.terraform_locks
|
||||
```
|
||||
|
||||
### 3. Configurar Variables
|
||||
```bash
|
||||
cp terraform.tfvars.example terraform.tfvars
|
||||
# Editar terraform.tfvars con valores de la nueva cuenta
|
||||
```
|
||||
|
||||
### 4. Desplegar Infraestructura
|
||||
```bash
|
||||
terraform init
|
||||
terraform plan
|
||||
terraform apply
|
||||
```
|
||||
|
||||
### 5. Configurar Servidor (Ansible)
|
||||
```bash
|
||||
cd ../ansible
|
||||
ansible-playbook -i inventory playbooks/site.yml
|
||||
```
|
||||
|
||||
## Variables Importantes
|
||||
|
||||
| Variable | Descripción | Ejemplo |
|
||||
|----------|-------------|---------|
|
||||
| `my_ip` | Tu IP pública para SSH | `192.168.1.1/32` |
|
||||
| `db_password` | Contraseña RDS | `Cambiar123!` |
|
||||
| `domain_name` | Dominio para la app | `test-sacc.ccsoft.mx` |
|
||||
| `certificate_arn` | ARN certificado ACM | `arn:aws:acm:...` |
|
||||
|
||||
## Próximos Pasos
|
||||
1. Revisar `docs/PRODUCTION_CONFIG_EXTRACTION.md` para detalles exactos
|
||||
2. Configurar Bitbucket Pipeline con variables de entorno
|
||||
3. Desplegar aplicación Java a `/opt/sacc4/*/current/`
|
||||
4. Verificar health checks en puertos 8080-8085
|
||||
|
||||
## Notas de Seguridad
|
||||
- Cambiar todas las contraseñas por defecto
|
||||
- Restringir Security Groups (no usar 0.0.0.0/0)
|
||||
- Habilitar CloudTrail para auditoría
|
||||
- Configurar AWS Config para compliance
|
||||
Reference in New Issue
Block a user