Skip to the content.

8. BMC Management and Infrastructure Automation

Date

2025-03-09

Status

Accepted

Decision Makers

Stakeholders

Context

The project requires robust automation for managing Baseboard Management Controllers (BMC) and infrastructure components. This includes DNS configuration, storage management, and deployment automation. The solution needs to support both development and production environments while maintaining consistency and reliability.

Considered Options

  1. Manual configuration with documentation
  2. Custom Python/Shell scripts without standardization
  3. Ansible-based automation
  4. Standardized shell scripts with modular design
  5. Third-party management tools

Decision

We have implemented a comprehensive set of automation tools through standardized shell scripts:

  1. BMC Management through Redfish
    • Implemented in configure-sushy-unix.sh
    • Standardized BMC interface through Redfish API
    • Container-based emulation for testing
  2. Infrastructure Configuration
    • DNS Management (configure_dns_entries.sh)
    • LVM Storage Configuration (configure-lvm.sh)
    • FreeIPA Integration (deploy-freeipa.sh)
  3. Deployment Automation
    • KVM Deployment Scripts (deploy-on-kvm.sh)
    • ISO Creation Tools (create-iso.sh)
    • Network Configuration (vyos-router.sh)
  4. Monitoring and Maintenance
    • VM State Management (watch-and-reboot-kvm-vms.sh)
    • Testing Tools (test-libvirt-ssh.sh)
    • BMC Host Generation (generate_bmc_acm_hosts.py)

Rationale

Consequences

Positive

  1. Consistent deployment process
  2. Reduced manual intervention
  3. Reproducible configurations
  4. Easy troubleshooting
  5. Version control friendly
  6. Cross-environment compatibility

Negative

  1. Requires shell scripting knowledge
  2. Platform-specific considerations
  3. Maintenance overhead for scripts
  4. Requires regular updates for new OS versions

Implementation Details

DNS Configuration (configure_dns_entries.sh)

Storage Management (configure-lvm.sh)

FreeIPA Integration (deploy-freeipa.sh)

Network Automation (vyos-router.sh)

Test Cases

Code References

External References