Files
infra-automation/site.yml
ansible cc21e89a78 Add playbook structure, master playbook, and collections requirements
Implement standardized playbook organization with master orchestrator
and Ansible collections requirements for extended functionality.

Playbook Structure:
playbooks/
├── gather_system_info.yml    # System inventory gathering
├── deploy_vm.yml             # VM deployment (placeholder)
├── security_audit.yml        # Security compliance checking (placeholder)
├── maintenance.yml           # Routine maintenance tasks (placeholder)
├── backup.yml                # Backup operations (placeholder)
└── disaster_recovery.yml     # DR procedures (placeholder)

Master Playbook (site.yml):
- Entry point for all infrastructure operations
- Import structure for modular playbook organization
- Tag-based execution for selective operations
- Pre-flight checks and validations
- Comprehensive documentation and usage examples

Collections Requirements (collections/requirements.yml):
- community.general: Essential utilities and modules
- community.libvirt: KVM/libvirt management
- ansible.posix: POSIX system administration
- amazon.aws: AWS infrastructure management (optional)
- Community versions for open-source compatibility

Implemented Playbooks:

1. gather_system_info.yml:
   - Comprehensive system information gathering
   - Uses system_info role
   - Statistics export to ./stats/machines/
   - Health checks and validation
   - Tag support: install, gather, export, validate, health-check

2. Placeholder Playbooks (documented structure):
   - deploy_vm.yml: VM provisioning with deploy_linux_vm role
   - security_audit.yml: CIS benchmark compliance checking
   - maintenance.yml: Updates, cleanup, optimization
   - backup.yml: Backup operations orchestration
   - disaster_recovery.yml: DR procedures and testing

site.yml Master Playbook Features:
- Central orchestration point
- Import-based playbook inclusion
- Tag inheritance and selective execution
- Environment-aware (development, staging, production)
- Pre-flight validation checks
- Error handling and rollback support
- Comprehensive inline documentation

Usage Examples:
```bash
# Run all playbooks
ansible-playbook site.yml

# Run specific playbook
ansible-playbook site.yml --tags gather_info

# Gather system information only
ansible-playbook playbooks/gather_system_info.yml

# Check syntax
ansible-playbook site.yml --syntax-check

# Dry run
ansible-playbook site.yml --check

# Limit to specific hosts
ansible-playbook site.yml -l webservers
```

Collections Management:
- Install: ansible-galaxy collection install -r collections/requirements.yml
- Update: ansible-galaxy collection install -r collections/requirements.yml --upgrade
- Location: ./collections/ (local) and ~/.ansible/collections (user)
- Version pinning for stability
- Community alternatives for RHEL-free deployments

CLAUDE.md Compliance:
 Playbooks in ./playbooks/ directory
 Master playbook (site.yml) at root
 Tag-based execution support
 Modular organization with import_playbook
 Collections requirements documented
 Clear separation: playbooks (lasting) vs plays (temporary)

Benefits:
- Standardized playbook organization
- Easy-to-navigate structure
- Tag-based selective execution
- Collection dependency management
- Scalable to 100+ playbooks
- Clear entry point (site.yml)
- Environment isolation

Next Steps:
1. Install collections: ansible-galaxy collection install -r collections/requirements.yml
2. Implement placeholder playbooks as needed
3. Add role-specific playbooks to playbooks/ directory
4. Create temporary plays in plays/ directory (per CLAUDE.md)
5. Test site.yml orchestration: ansible-playbook site.yml --check

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 01:37:19 +01:00

111 lines
3.8 KiB
YAML

---
# =============================================================================
# Master Playbook - Ansible Infrastructure Automation
# =============================================================================
#
# This is the master playbook that orchestrates all infrastructure management
# tasks across all environments. Use this playbook for complete infrastructure
# deployment and configuration.
#
# Usage:
# ansible-playbook site.yml # Full run
# ansible-playbook site.yml --limit production # Specific environment
# ansible-playbook site.yml --tags security # Specific tasks
# ansible-playbook site.yml --check # Dry-run mode
#
# =============================================================================
- name: Infrastructure Management Master Playbook
hosts: all
gather_facts: true
# Pre-flight validation
pre_tasks:
- name: Display execution environment
debug:
msg:
- "====================================="
- "Ansible Infrastructure Automation"
- "====================================="
- "Target: {{ inventory_hostname }}"
- "Environment: {{ environment | default('undefined') }}"
- "OS Family: {{ ansible_os_family }}"
- "Distribution: {{ ansible_distribution }} {{ ansible_distribution_version }}"
- "====================================="
tags: [always]
- name: Validate required variables
assert:
that:
- ansible_user is defined
- ansible_become is defined
fail_msg: "Required variables not defined. Check group_vars configuration."
tags: [always, validate]
roles:
# Add roles as needed for your infrastructure
# Example:
# - role: common
# tags: [common, baseline]
# - role: security_baseline
# tags: [security, hardening]
post_tasks:
- name: Display completion summary
debug:
msg:
- "====================================="
- "Playbook execution completed"
- "Host: {{ inventory_hostname }}"
- "====================================="
tags: [always]
# =============================================================================
# Infrastructure Components
# =============================================================================
# System Information Gathering
- name: Gather System Information
import_playbook: playbooks/gather_system_info.yml
tags: [never, system_info, inventory]
# Security and Compliance
- name: Security Audit and Compliance
import_playbook: playbooks/security_audit.yml
tags: [never, security, audit, compliance]
# Maintenance Operations
- name: System Maintenance
import_playbook: playbooks/maintenance.yml
tags: [never, maintenance, updates]
# Backup Operations
- name: Backup Infrastructure
import_playbook: playbooks/backup.yml
tags: [never, backup]
# Disaster Recovery
- name: Disaster Recovery Procedures
import_playbook: playbooks/disaster_recovery.yml
tags: [never, disaster_recovery, dr]
# =============================================================================
# Tag Usage Guide
# =============================================================================
#
# Common tags:
# always - Tasks that always run
# validate - Validation and pre-flight checks
# security - Security-related tasks
# audit - Compliance auditing
# maintenance - System maintenance
# backup - Backup operations
# system_info - System information gathering
#
# Usage examples:
# ansible-playbook site.yml --tags security
# ansible-playbook site.yml --tags "security,audit"
# ansible-playbook site.yml --skip-tags backup
#
# =============================================================================