Nowadays, the demand for scalability in distributed systems has led a design philosophy in which virtual resources need to be configured in a flexible way to provide services to a large number of users. The configuration and management of such an architecture is challenging (e.g.: 100,000 compute cores on the private cloud together with thousands of cores on external cloud resources). There is the need to process CPU intensive work whilst ensuring that the resources are shared fairly between different users of the system, and guarantee that all nodes are up to date with new images containing the latest software configurations. Different types of automated systems can be used to facilitate the orchestration. CERN’s current system, composed of different technologies such as OpenStack, Packer, Puppet, Rundeck and Docker will be introduced and explained, together with the process used to create new Virtual Machines images at CERN.