Cloudmigrate
by @ncreighton
Automate multi-cloud migrations and infrastructure deployments with customizable IaC workflows. Use when the user needs cloud strategy planning, infrastructu...
clawhub install cloudmigrateπ About This Skill
name: Migrate Cloud Data with Automated SFTP Transfers & Google Drive Sync description: "Automate multi-cloud migrations and infrastructure deployments with customizable IaC workflows. Use when the user needs cloud strategy planning, infrastructure-as-code generation, deployment automation, or multi-environment provisioning." version: 1.0.0 homepage: https://github.com/ncreighton/empire-skills metadata: { "openclaw": { "requires": { "env": ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AZURE_SUBSCRIPTION_ID", "AZURE_CLIENT_ID", "AZURE_CLIENT_SECRET", "GCP_PROJECT_ID", "GCP_SERVICE_ACCOUNT_JSON"], "bins": ["terraform", "ansible", "aws-cli", "az", "gcloud", "docker"] }, "os": ["macos", "linux", "win32"], "files": ["SKILL.md"] }, "emoji": "βοΈ" }
Overview
CloudMigrate is a production-grade skill for automating complex cloud migrations and infrastructure deployments across AWS, Azure, GCP, and hybrid environments. It orchestrates Infrastructure-as-Code (IaC) generation, multi-step deployment workflows, service discovery, data migration planning, and environment configuration β eliminating manual processes that introduce errors and delay time-to-production.
Why CloudMigrate Matters:
Typical Use Cases:
Quick Start
Try these prompts immediately to see CloudMigrate in action:
Example 1: Generate AWS Migration Plan
Plan a migration for a 50-server on-premises data center to AWS.
The environment includes:
10 Windows servers running legacy applications (SQL Server backend)
20 Linux web servers (Apache/PHP)
15 database servers (MySQL, PostgreSQL)
Network: 10.0.0.0/8 with 5 subnets Generate:
1. Network architecture diagram (as code)
2. Terraform configuration for VPC, subnets, security groups
3. AWS Database Migration Service (DMS) configuration
4. Cost estimate (3-year TCO comparison)
5. Risk assessment and mitigation steps
Example 2: Create Multi-Environment Infrastructure
Create Terraform code for a production SaaS application with:
Development, staging, and production environments
Application load balancer routing to auto-scaling groups
RDS PostgreSQL with read replicas
ElastiCache Redis cluster for sessions
S3 buckets with versioning and encryption
CloudFront CDN configuration
Monitoring with CloudWatch and SNS alerts Include:
Environment variable files (.tfvars)
Terraform state locking with DynamoDB
IAM roles and policies (least privilege)
Backup and disaster recovery automation
Example 3: Azure Hybrid Cloud Deployment
Generate infrastructure-as-code for a hybrid Azure deployment:
On-premises Hyper-V VMs migrated to Azure
Azure ExpressRoute connection
Azure SQL Database failover groups (read replicas)
App Service with staging slots for blue-green deployments
Azure DevOps pipeline for automated testing
Monitoring with Application Insights Provide:
1. Bicep templates (Azure native IaC)
2. Network configuration and security policies
3. Azure Migrate assessment and scripts
4. Cutover schedule with validation steps
5. Rollback procedures
Example 4: Kubernetes Deployment Automation
Create a complete Kubernetes infrastructure for a microservices platform:
EKS cluster on AWS (multi-AZ)
Container registry (ECR)
Helm charts for 5 microservices
Persistent storage (EBS volumes)
Ingress controller with TLS
Service mesh (Istio) for traffic management
Prometheus + Grafana monitoring
RBAC and network policies Include deployment scripts and GitOps workflows with Flux.
Capabilities
1. Infrastructure-as-Code Generation
What it does: Converts natural language requirements into production-ready Terraform, CloudFormation, Bicep, or Ansible code.Example Usage:
Generate a Terraform module for a secure multi-AZ RDS cluster with:
Automated backups (30-day retention)
Encryption at rest (KMS) and in transit (TLS)
IAM database authentication
Performance Insights enabled
Parameter group tuning for PostgreSQL 14
Subnet group spanning 3 availability zones
Supported IaC Frameworks:
2. Multi-Cloud Migration Planning
What it does: Assesses source environments and generates cloud-specific migration strategies.Outputs Include:
3. Deployment Orchestration
What it does: Creates step-by-step automation workflows for safe, validated deployments.Features:
4. Data Migration & Cutover Planning
What it does: Generates scripts and procedures for zero-downtime data migration.Capabilities:
5. Security & Compliance Automation
What it does: Embeds security best practices into generated infrastructure.Includes:
6. Cost Optimization Analysis
What it does: Recommends cost-saving strategies and calculates savings.Outputs:
Configuration
Required Environment Variables
# AWS
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-east-1"Azure
export AZURE_SUBSCRIPTION_ID="your-subscription-id"
export AZURE_CLIENT_ID="your-client-id"
export AZURE_CLIENT_SECRET="your-client-secret"
export AZURE_TENANT_ID="your-tenant-id"GCP
export GCP_PROJECT_ID="your-project-id"
export GCP_SERVICE_ACCOUNT_JSON="/path/to/service-account.json"CloudMigrate Specific
export CLOUDMIGRATE_STATE_BUCKET="your-terraform-state-bucket"
export CLOUDMIGRATE_SLACK_WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK"
export CLOUDMIGRATE_GITHUB_TOKEN="your-github-pat-token"
export CLOUDMIGRATE_VAULT_ADDR="https://vault.example.com"
Setup Instructions
1. Install Required Binaries:
# macOS (Homebrew)
brew install terraform ansible awscli azure-cli google-cloud-sdk docker # Linux (Debian/Ubuntu)
sudo apt-get install -y terraform ansible awscli azure-cli docker.io
# Windows (Chocolatey)
choco install terraform ansible awscli azure-cli docker-desktop
2. Authenticate Cloud Providers:
# AWS
aws configure
# Azure
az login
# GCP
gcloud auth application-default login
3. Initialize Terraform State Backend:
cloudmigrate init-backend \
--provider aws \
--bucket my-terraform-state \
--region us-east-1
4. Configure Slack Integration (Optional):
cloudmigrate config slack \
--webhook-url "https://hooks.slack.com/services/YOUR/WEBHOOK" \
--channel "#infrastructure"
Configuration Options
# cloudmigrate-config.yaml
migration:
strategy: "lift-and-shift" # or "refactor", "replatform", "repurchase"
parallelization:
max_concurrent_deployments: 5
max_concurrent_migrations: 3
validation:
pre_deployment_checks: true
post_deployment_tests: true
health_check_retries: 5cloud_targets:
aws:
regions: ["us-east-1", "us-west-2", "eu-west-1"]
instance_types: ["t3.medium", "m5.large", "c5.xlarge"]
azure:
regions: ["eastus", "westeurope"]
vm_sizes: ["Standard_B2s", "Standard_D2s_v3"]
gcp:
regions: ["us-central1", "europe-west1"]
machine_types: ["e2-medium", "n2-standard-2"]
security:
encryption_at_rest: true
encryption_in_transit: true
enable_mfa: true
compliance_framework: "pci-dss" # or "hipaa", "gdpr", "sox"
cost_optimization:
reserved_instances: true
spot_instances: false
auto_shutdown_dev: true
budget_alerts: true
Example Outputs
Generated Terraform Code
# main.tf - Generated by CloudMigrate
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
backend "s3" {
bucket = "my-terraform-state"
key = "production/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "terraform-locks"
encrypt = true
}
}provider "aws" {
region = var.aws_region
default_tags {
tags = {
Environment = var.environment
ManagedBy = "CloudMigrate"
Project = var.project_name
}
}
}
VPC with private/public subnets
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_hostnames = true
enable_dns_support = true tags = {
Name = "${var.project_name}-vpc"
}
}
Security Group with least-privilege rules
resource "aws_security_group" "app" {
name = "${var.project_name}-app-sg"
description = "Security group for application tier"
vpc_id = aws_vpc.main.id ingress {
from_port = 443
to_port = 443
protocol = "tcp"
security_groups = [aws_security_group.alb.id]
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
tags = {
Name = "${var.project_name}-app-sg"
}
}
RDS PostgreSQL with encryption
resource "aws_db_instance" "postgres" {
allocated_storage = var.db_storage_gb
engine = "postgres"
engine_version = "14.7"
instance_class = var.db_instance_class
db_name = var.db_name
username = var.db_username
password = random_password.db.result
parameter_group_name = aws_db_parameter_group.postgres.name
skip_final_snapshot = false
final_snapshot_identifier = "${var.project_name}-final-snapshot-${formatdate("YYYY-MM-DD-hhmm", timestamp())}" # Security
storage_encrypted = true
kms_key_id = aws_kms_key.db.arn
publicly_accessible = false
db_subnet_group_name = aws_db_subnet_group.main.name
vpc_security_group_ids = [aws_security_group.database.id]
# High Availability
multi_az = true
backup_retention_period = 30
backup_window = "03:00-04:00"
maintenance_window = "sun:04:00-sun:05:00"
# Performance
performance_insights_enabled = true
performance_insights_retention_period = 7
enabled_cloudwatch_logs_exports = ["postgresql"]
tags = {
Name = "${var.project_name}-postgres"
}
depends_on = [aws_security_group.database]
}
Auto Scaling Group
resource "aws_autoscaling_group" "app" {
name = "${var.project_name}-asg"
vpc_zone_identifier = aws_subnet.private[*].id
target_group_arns = [aws_lb_target_group.app.arn]
health_check_type = "ELB"
health_check_grace_period = 300 launch_template {
id = aws_launch_template.app.id
version = "$Latest"
}
min_size = var.asg_min_size
max_size = var.asg_max_size
desired_capacity = var.asg_desired_capacity
tag {
key = "Name"
value = "${var.project_name}-asg-instance"
propagate_at_launch = true
}
tag {
key = "Environment"
value = var.environment
propagate_at_launch = true
}
}
Migration Assessment Report (JSON)
```json { "assessment_id": "mig-2024-001", "timestamp": "2024-01-15T10:30:00Z", "source_environment": { "type": "on-premises", "location": "data-center-01", "total_servers": 47, "total_storage_gb": 5120, "total_vms": { "windows": 10, "linux": 37 } }, "target_environment": { "provider": "aws", "regions": ["us-east-1", "us-west-2"], "estimated_monthly_cost": 18500 }, "migration_strategy": "lift-and-shift", "timeline": { "assessment_phase": "2 weeks", "planning_phase": "4 weeks", "migration_phase": "12 weeks",π‘ Examples
Try these prompts immediately to see CloudMigrate in action:
Example 1: Generate AWS Migration Plan
Plan a migration for a 50-server on-premises data center to AWS.
The environment includes:
10 Windows servers running legacy applications (SQL Server backend)
20 Linux web servers (Apache/PHP)
15 database servers (MySQL, PostgreSQL)
Network: 10.0.0.0/8 with 5 subnets Generate:
1. Network architecture diagram (as code)
2. Terraform configuration for VPC, subnets, security groups
3. AWS Database Migration Service (DMS) configuration
4. Cost estimate (3-year TCO comparison)
5. Risk assessment and mitigation steps
Example 2: Create Multi-Environment Infrastructure
Create Terraform code for a production SaaS application with:
Development, staging, and production environments
Application load balancer routing to auto-scaling groups
RDS PostgreSQL with read replicas
ElastiCache Redis cluster for sessions
S3 buckets with versioning and encryption
CloudFront CDN configuration
Monitoring with CloudWatch and SNS alerts Include:
Environment variable files (.tfvars)
Terraform state locking with DynamoDB
IAM roles and policies (least privilege)
Backup and disaster recovery automation
Example 3: Azure Hybrid Cloud Deployment
Generate infrastructure-as-code for a hybrid Azure deployment:
On-premises Hyper-V VMs migrated to Azure
Azure ExpressRoute connection
Azure SQL Database failover groups (read replicas)
App Service with staging slots for blue-green deployments
Azure DevOps pipeline for automated testing
Monitoring with Application Insights Provide:
1. Bicep templates (Azure native IaC)
2. Network configuration and security policies
3. Azure Migrate assessment and scripts
4. Cutover schedule with validation steps
5. Rollback procedures
Example 4: Kubernetes Deployment Automation
Create a complete Kubernetes infrastructure for a microservices platform:
EKS cluster on AWS (multi-AZ)
Container registry (ECR)
Helm charts for 5 microservices
Persistent storage (EBS volumes)
Ingress controller with TLS
Service mesh (Istio) for traffic management
Prometheus + Grafana monitoring
RBAC and network policies Include deployment scripts and GitOps workflows with Flux.
βοΈ Configuration
Required Environment Variables
# AWS
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_REGION="us-east-1"Azure
export AZURE_SUBSCRIPTION_ID="your-subscription-id"
export AZURE_CLIENT_ID="your-client-id"
export AZURE_CLIENT_SECRET="your-client-secret"
export AZURE_TENANT_ID="your-tenant-id"GCP
export GCP_PROJECT_ID="your-project-id"
export GCP_SERVICE_ACCOUNT_JSON="/path/to/service-account.json"CloudMigrate Specific
export CLOUDMIGRATE_STATE_BUCKET="your-terraform-state-bucket"
export CLOUDMIGRATE_SLACK_WEBHOOK="https://hooks.slack.com/services/YOUR/WEBHOOK"
export CLOUDMIGRATE_GITHUB_TOKEN="your-github-pat-token"
export CLOUDMIGRATE_VAULT_ADDR="https://vault.example.com"
Setup Instructions
1. Install Required Binaries:
# macOS (Homebrew)
brew install terraform ansible awscli azure-cli google-cloud-sdk docker # Linux (Debian/Ubuntu)
sudo apt-get install -y terraform ansible awscli azure-cli docker.io
# Windows (Chocolatey)
choco install terraform ansible awscli azure-cli docker-desktop
2. Authenticate Cloud Providers:
# AWS
aws configure
# Azure
az login
# GCP
gcloud auth application-default login
3. Initialize Terraform State Backend:
cloudmigrate init-backend \
--provider aws \
--bucket my-terraform-state \
--region us-east-1
4. Configure Slack Integration (Optional):
cloudmigrate config slack \
--webhook-url "https://hooks.slack.com/services/YOUR/WEBHOOK" \
--channel "#infrastructure"
Configuration Options
# cloudmigrate-config.yaml
migration:
strategy: "lift-and-shift" # or "refactor", "replatform", "repurchase"
parallelization:
max_concurrent_deployments: 5
max_concurrent_migrations: 3
validation:
pre_deployment_checks: true
post_deployment_tests: true
health_check_retries: 5cloud_targets:
aws:
regions: ["us-east-1", "us-west-2", "eu-west-1"]
instance_types: ["t3.medium", "m5.large", "c5.xlarge"]
azure:
regions: ["eastus", "westeurope"]
vm_sizes: ["Standard_B2s", "Standard_D2s_v3"]
gcp:
regions: ["us-central1", "europe-west1"]
machine_types: ["e2-medium", "n2-standard-2"]
security:
encryption_at_rest: true
encryption_in_transit: true
enable_mfa: true
compliance_framework: "pci-dss" # or "hipaa", "gdpr", "sox"
cost_optimization:
reserved_instances: true
spot_instances: false
auto_shutdown_dev: true
budget_alerts: true