Puppet has been in use at INFN Naples for several years, together with Foreman for lifecycle management. It is currently used to manage several hundred machines, both bare metal and virtual, across a heterogeneous infrastructure that includes Ceph and dCache storage systems, HTCondor clusters, an OpenStack private cloud, and a number of self-hosted services such as Greenbone and NetBox
A change in Perforce licensing policy forced us to look for an alternative solution, leading to the migration to OpenVox and to an active involvement with its community. The migration process can be divided into several sub-tasks:
Migration of an all-in-one Puppet Server (OSP Server, PuppetDB, and Puppetboard) and the managed clients
Migration of the Foreman server and its managed clients
Migration of the supporting toolchain (Bolt, IDE integrations, and related tools)
Each of these areas presented distinct challenges and required different migration strategies, some of which are still ongoing.
Contributions and roadmap
The migration effort led us to contribute to upstream projects, most notably the puppet-openvoxdb module (now released) and a set of Foreman templates to provision clients with the OpenVox repository enabled (work in progress at the time of writing). Despite the strong community support and our efforts, some components of the infrastructure have not yet been migrated, most notably the Git-based workflow, which still relies on r10k.