Abstract
| Managing the infrastructure of a large and complex data center can be extremely difficult without taking advantage of automated services. Puppet is a seasoned, open-source tool designed for enterprise-class centralized configuration management. At the RHIC/ATLAS Computing Facility at Brookhaven National Laboratory, we have adopted Puppet as part of a suite of tools, including Git, GLPI, and some custom scripts, that comprise our centralized configuration management system. In this paper, we discuss the use of these tools for centralized configuration management of our servers and services; change management, which requires authorized approval of production changes; a complete, version-controlled history of all changes made; separation of production, testing, and development systems using Puppet environments; semi-automated server inventory using GLPI; and configuration change monitoring and reporting via the Puppet dashboard. We will also discuss scalability and performance results from using these tools on a 2,000+ node cluster and a pool of over 400 infrastructure servers with an administrative staff of only about 20 full-time employees.
In addition to managing our data center servers, we've also used this Puppet infrastructure successfully to satisfy recent security mandates from our funding agency (the U.S. Department of Energy) to centrally manage all staff Linux and UNIX desktops; in doing so, we've extended several core Puppet modules to not only support both RHEL 5 and 6, but also to include support for other operating systems, including Fedora, Gentoo, OS X, and Ubuntu. |