 <p>Disclaimer: I am still pretty new to puppet :)</p> <p>The key is to think of everything in terms of dependencies. For class dependencies, I like to use the Class['a'] -> Class['b'] syntax. Say you have a tomcat class that requires a jdk class which downloads/installs the sun jdk from oracle. In your tomcat class, you can specify this with</p> <p>Class['jdk'] -> Class['tomcat']</p> <p>Alternatively you can declare a class with a require meta parameter rather than using include.</p>