Telecom infrastructure teams often face the same bottleneck: Every new Red Hat Enterprise Linux (RHEL) server is a custom job. Hardening is inconsistent. Patching and compliance become manual follow-up work after the machine is already live. If you've ever managed enterprise Linux infrastructure at scale, you know the routine. A team requests a new server, and what should be a straightforward task turns into a manual, custom build. Someone picks an outdated template, tweaks a few config files by hand, and skips a security setting to get it live on time.

Months later, an audit flag pops up, and you're stuck manually retrofitting security controls on a production machine. As custom configurations drift and template libraries balloon, keeping servers secure and patched becomes a constant fight. That was the exact bottleneck Optus set out to solve. Optus wanted a better model, one standard way to build, provision, and secure RHEL at scale, without relying on console work or one-off templates.

Working with Red Hat Consulting in Australia and New Zealand, Optus built an automated RHEL factory: A governed pipeline that delivers consistent RHEL 8 and RHEL 9 virtual machines (VMs), with Center for Internet Security (CIS) Level 1 controls applied at provision time. The factory runs on Red Hat Satellite, Red Hat Ansible Automation Platform, and GitLab in Optus’s environment. It's designed to extend to future RHEL versions without redesigning the operating model.

To move away from manual builds, the factory focuses on three guiding principles: The factory separates image creation from provisioning and ongoing operations: Day 0 (Image build factory) : A version-selectable GitLab CI/CD pipeline works with Red Hat Enterprise Linux image builder to produce a governed open virtual appliance (OVA). The approved thin OVA is published to the enterprise VMware vCenter Content Library. Day 1 (Provisioning and security hardening) : When a team needs a new workload, an Ansible workflow runs a survey-driven deployment to VMware. Cloud-init handles first-boot configuration.