This document discusses using Puppet to define infrastructure as code with Apache CloudStack. It describes how Puppet can be used to provision and configure virtual machines on CloudStack as well as define entire application stacks. The author provides examples of using Puppet types and providers to define CloudStack instances and groups of instances that can be deployed with a single Puppet manifest. Links are included to learn more about using Puppet to manage CloudStack infrastructure.