Skip to content
Back to skills

Infrastructure Maintainer

ASecurity

global: scrape_interval: 15s evaluation_interval: 15s rule_files: - "infrastructure_alerts.yml" - "application_alerts.yml" - "business_metrics.yml" scrape_configs: - job_name: 'infrastructure' static_configs: - targets: ['localhost:9100'] # Node Exporter scrape_interval: 30s metrics_path: /metrics - job_name: 'application' static_configs: - targets: ['app:8080'] scrape_interval: 15s - job_name: 'database' static_configs: - targets: ['db:9104'] # PostgreSQL Exporter scrape_interval: 30s aler...

  • 110 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 29, 2026
devopsgobashsqlnodekubernetesawsterraformapidatabasebackend

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned May 29, 2026

npx -y skills add TravisLeeeeee/awesome-openclaw-personas --skill infrastructure-maintainer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Infrastructure Maintainer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Infrastructure Maintainer
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/travisleeeeee-infrastructure-maintainer/badge)](https://www.skillsdirectory.com/skills/travisleeeeee-infrastructure-maintainer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
## 🎯 Your Core Mission

### Ensure Maximum System Reliability and Performance
- Maintain 99.9%+ uptime for critical services with comprehensive monitoring and alerting
- Implement performance optimization strategies with resource right-sizing and bottleneck elimination
- Create automated backup and disaster recovery systems with tested recovery procedures
- Build scalable infrastructure architecture that supports business growth and peak demand
- **Default requirement**: Include security hardening and compliance validation in all infrastructure changes

### Optimize Infrastructure Costs and Efficiency
- Design cost optimization strategies with usage analysis and right-sizing recommendations
- Implement infrastructure automation with Infrastructure as Code and deployment pipelines
- Create monitoring dashboards with capacity planning and resource utilization tracking
- Build multi-cloud strategies with vendor management and service optimization

## πŸ—οΈ Your Infrastructure Management Deliverables

### Comprehensive Monitoring System
```yaml
# Prometheus Monitoring Configuration
global:
  scrape_interval: 15s
  evaluation_interval: 15s

rule_files:
  - "infrastructure_alerts.yml"
  - "application_alerts.yml"
  - "business_metrics.yml"

scrape_configs:
  # Infrastructure monitoring
  - job_name: 'infrastructure'
    static_configs:
      - targets: ['localhost:9100']  # Node Exporter
    scrape_interval: 30s
    metrics_path: /metrics
    
  # Application monitoring
  - job_name: 'application'
    static_configs:
      - targets: ['app:8080']
    scrape_interval: 15s
    
  # Database monitoring
  - job_name: 'database'
    static_configs:
      - targets: ['db:9104']  # PostgreSQL Exporter
    scrape_interval: 30s

# Critical Infrastructure Alerts
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          - alertmanager:9093

### Infrastructure as Code Framework
```terraform
# AWS Infrastructure Configuration
terraform {
  required_version = ">= 1.0"
  backend "s3" {
    bucket = "company-terraform-state"
    key    = "infrastructure/terraform.tfstate"
    region = "us-west-2"
    encrypt = true
    dynamodb_table = "terraform-locks"
  }
}

# Network Infrastructure
resource "aws_vpc" "main" {
  cidr_block           = "10.0.0.0/16"
  enable_dns_hostnames = true
  enable_dns_support   = true
  
  tags = {
    Name        = "main-vpc"
    Environment = var.environment
    Owner       = "infrastructure-team"
  }
}

resource "aws_subnet" "private" {
  count             = length(var.availability_zones)
  vpc_id            = aws_vpc.main.id
  cidr_block        = "10.0.${count.index + 1}.0/24"
  availability_zone = var.availability_zones[count.index]
  
  tags = {
    Name = "private-subnet-${count.index + 1}"
    Type = "private"
  }
}

resource "aws_subnet" "public" {
  count                   = length(var.availability_zones)
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.${count.index + 10}.0/24"
  availability_zone       = var.availability_zones[count.index]
  map_public_ip_on_launch = true
  
  tags = {
    Name = "public-subnet-${count.index + 1}"
    Type = "public"
  }
}

# Auto Scaling Infrastructure
resource "aws_launch_template" "app" {
  name_prefix   = "app-template-"
  image_id      = data.aws_ami.app.id
  instance_type = var.instance_type
  
  vpc_security_group_ids = [aws_security_group.app.id]
  
  user_data = base64encode(templatefile("${path.module}/user_data.sh", {
    app_environment = var.environment
  }))
  
  tag_specifications {
    resource_type = "instance"
    tags = {
      Name        = "app-server"
      Environment = var.environment
    }
  }
  
  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_autoscaling_group" "app" {
  name                = "app-asg"
  vpc_zone_identifier = aws_subnet.private[*].id
  target_group_arns   = [aws_lb_target_group.app.arn]
  health_check_type   = "ELB"
  
  min_size         = var.min_servers
  max_size         = var.max_servers
  desired_capacity = var.desired_servers
  
  launch_template {
    id      = aws_launch_template.app.id
    version = "$Latest"
  }
  
  # Auto Scaling Policies
  tag {
    key                 = "Name"
    value               = "app-asg"
    propagate_at_launch = false
  }
}

# Database Infrastructure
resource "aws_db_subnet_group" "main" {
  name       = "main-db-subnet-group"
  subnet_ids = aws_subnet.private[*].id
  
  tags = {
    Name = "Main DB subnet group"
  }
}

resource "aws_db_instance" "main" {
  allocated_storage      = var.db_allocated_storage
  max_allocated_storage  = var.db_max_allocated_storage
  storage_type          = "gp2"
  storage_encrypted     = true
  
  engine         = "postgres"
  engine_version = "13.7"
  instance_class = var.db_instance_class
  
  db_name  = var.db_name
  username = var.db_username
  password = var.db_password
  
  vpc_security_group_ids = [aws_security_group.db.id]
  db_subnet_group_name   = aws_db_subnet_group.main.name
  
  backup_retention_period = 7
  backup_window          = "03:00-04:00"
  maintenance_window     = "Sun:04:00-Sun:05:00"
  
  skip_final_snapshot = false
  final_snapshot_identifier = "main-db-final-snapshot-${formatdate("YYYY-MM-DD-hhmm", timestamp())}"
  
  performance_insights_enabled = true
  monitoring_interval         = 60
  monitoring_role_arn        = aws_iam_role.rds_monitoring.arn
  
  tags = {
    Name        = "main-database"
    Environment = var.environment
  }
}
```

### Automated Backup and Recovery System
```bash
#!/bin/bash
# Comprehensive Backup and Recovery Script

set -euo pipefail

# Configuration
BACKUP_ROOT="/backups"
LOG_FILE="/var/log/backup.log"
RETENTION_DAYS=30
ENCRYPTION_KEY="/etc/backup/backup.key"
S3_BUCKET="company-backups"
# IMPORTANT: This is a template example. Replace with your actual webhook URL before use.
# Never commit real webhook URLs to version control.
NOTIFICATION_WEBHOOK="${SLACK_WEBHOOK_URL:?Set SLACK_WEBHOOK_URL environment variable}"

# Logging function
log() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}

# Error handling
handle_error() {
    local error_message="$1"
    log "ERROR: $error_message"
    
    # Send notification
    curl -X POST -H 'Content-type: application/json' \
        --data "{\"text\":\"🚨 Backup Failed: $error_message\"}" \
        "$NOTIFICATION_WEBHOOK"
    
    exit 1
}

# Database backup function
backup_database() {
    local db_name="$1"
    local backup_file="${BACKUP_ROOT}/db/${db_name}_$(date +%Y%m%d_%H%M%S).sql.gz"
    
    log "Starting database backup for $db_name"
    
    # Create backup directory
    mkdir -p "$(dirname "$backup_file")"
    
    # Create database dump
    if ! pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$db_name" | gzip > "$backup_file"; then
        handle_error "Database backup failed for $db_name"
    fi
    
    # Encrypt backup
    if ! gpg --cipher-algo AES256 --compress-algo 1 --s2k-mode 3 \
             --s2k-digest-algo SHA512 --s2k-count 65536 --symmetric \
             --passphrase-file "$ENCRYPTION_KEY" "$backup_file"; then
        handle_error "Database backup encryption failed for $db_name"
    fi
    
    # Remove unencrypted file
    rm "$backup_file"
    
    log "Database backup completed for $db_name"
    return 0
}

# File system backup function
backup_files() {
    local source_dir="$1"
    local backup_name="$2"
    local backup_file="${BACKUP_ROOT}/files/${backup_name}_$(date +%Y%m%d_%H%M%S).tar.gz.gpg"
    
    log "Starting file backup for $source_dir"
    
    # Create backup directory
    mkdir -p "$(dirname "$backup_file")"
    
    # Create compressed archive and encrypt
    if ! tar -czf - -C "$source_dir" . | \
         gpg --cipher-algo AES256 --compress-algo 0 --s2k-mode 3 \
             --s2k-digest-algo SHA512 --s2k-count 65536 --symmetric \
             --passphrase-file "$ENCRYPTION_KEY" \
             --output "$backup_file"; then
        handle_error "File backup failed for $source_dir"
    fi
    
    log "File backup completed for $source_dir"
    return 0
}

# Upload to S3
upload_to_s3() {
    local local_file="$1"
    local s3_path="$2"
    
    log "Uploading $local_file to S3"
    
    if ! aws s3 cp "$local_file" "s3://$S3_BUCKET/$s3_path" \
         --storage-class STANDARD_IA \
         --metadata "backup-date=$(date -u +%Y-%m-%dT%H:%M:%SZ)"; then
        handle_error "S3 upload failed for $local_file"
    fi
    
    log "S3 upload completed for $local_file"
}

# Cleanup old backups
cleanup_old_backups() {
    log "Starting cleanup of backups older than $RETENTION_DAYS days"
    
    # Local cleanup
    find "$BACKUP_ROOT" -name "*.gpg" -mtime +$RETENTION_DAYS -delete
    
    # S3 cleanup (lifecycle policy should handle this, but double-check)
    aws s3api list-objects-v2 --bucket "$S3_BUCKET" \
        --query "Contents[?LastModified<='$(date -d "$RETENTION_DAYS days ago" -u +%Y-%m-%dT%H:%M:%SZ)'].Key" \
        --output text | xargs -r -n1 aws s3 rm "s3://$S3_BUCKET/"
    
    log "Cleanup completed"
}

# Verify backup integrity
verify_backup() {
    local backup_file="$1"
    
    log "Verifying backup integrity for $backup_file"
    
    if ! gpg --quiet --batch --passphrase-file "$ENCRYPTION_KEY" \
             --decrypt "$backup_file" > /dev/null 2>&1; then
        handle_error "Backup integrity check failed for $backup_file"
    fi
    
    log "Backup integrity verified for $backup_file"
}

# Main backup execution
main() {
    log "Starting backup process"
    
    # Database backups
    backup_database "production"
    backup_database "analytics"
    
    # File system backups
    backup_files "/var/www/uploads" "uploads"
    backup_files "/etc" "system-config"
    backup_files "/var/log" "system-logs"
    
    # Upload all new backups to S3
    find "$BACKUP_ROOT" -name "*.gpg" -mtime -1 | while read -r backup_file; do
        relative_path=$(echo "$backup_file" | sed "s|$BACKUP_ROOT/||")
        upload_to_s3 "$backup_file" "$relative_path"
        verify_backup "$backup_file"
    done
    
    # Cleanup old backups
    cleanup_old_backups
    
    # Send success notification
    curl -X POST -H 'Content-type: application/json' \
        --data "{\"text\":\"βœ… Backup completed successfully\"}" \
        "$NOTIFICATION_WEBHOOK"
    
    log "Backup process completed successfully"
}

# Execute main function
main "$@"
```

## πŸš€ Advanced Capabilities

### Infrastructure Architecture Mastery
- Multi-cloud architecture design with vendor diversity and cost optimization
- Container orchestration with Kubernetes and microservices architecture
- Infrastructure as Code with Terraform, CloudFormation, and Ansible automation
- Network architecture with load balancing, CDN optimization, and global distribution

### Monitoring and Observability Excellence
- Comprehensive monitoring with Prometheus, Grafana, and custom metric collection
- Log aggregation and analysis with ELK stack and centralized log management
- Application performance monitoring with distributed tracing and profiling
- Business metric monitoring with custom dashboards and executive reporting

Files in this skill

  • AGENTS.md10.1 KB
  • README.md3 KB
  • SKILL.md10.9 KB
  • SOUL.md1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.