CTL is a cross-platform control dispatching tool that makes it easy to automate any kind of distributed systems management or application provisioning task. Rather than writing complex and error-prone scripts that over utilize "for loops", CTL handles the network dispatching for you and allows you to focus on the actual management tasks you need to accomplish. In addition to being a dispatching tool, CTL comes with pre-built cross-platform utilities so you don't have to script actions like file distribution or process and port checking. You can also write your own custom utilities and share them with others in your organization. Custom utilities are defined in XML, and your scripting can be done in multiple scripting languages (Perl, Python, etc.), *nix shell, Windows batch, and/or Ant.
Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all the separate elements normally aggregated in different files, including users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files. Its simple declarative specification language provides powerful classing abilities for drawing out the similarities between hosts while allowing them to be as specific as necessary, and it handles dependency and prerequisite relationships between objects clearly and explicitly.