Rehearsal: A Configuration Verification Tool for Puppet t* Rian Shambaugh Aaron Weiss Arjun Guha ac AE f Comp C i * let t nt e e * r t is W s University of Massachusetts Amherst, United States e n A l o l D C * * o * c I u e E s frian,aaronweiss,
[email protected] m u D e e v n R L t e o a t d P y * s a E l u * a d t e Abstract 1. Introduction Large-scale data centers and cloud computing have turned Consider the role of a system administrator at any organi- system configuration into a challenging problem. Several zation, from a large company to a small computer science widely-publicized outages have been blamed not on soft- department. Their job is to maintain computing infrastruc- ware bugs, but on configuration bugs. To cope, thousands of ture for everyone else. When a new software system, such as organizations use system configuration languages to manage a Web service, needs to be deployed, it is their job to pro- their computing infrastructure. Of these, Puppet is the most vision new servers, configure the firewall, and ensure that widely used with thousands of paying customers and many data is automatically backed up. If the Web service receives more open-source users. The heart of Puppet is a domain- a sudden spike in traffic, they must quickly deploy additional specific language that describes the state of a system. Pup- machines to handle the load. When a security vulnerability pet already performs some basic static checks, but they only is disclosed, they must patch and restart machines if neces- prevent a narrow range of errors.