A few things are needed to get this working.
1. To use the Bigtop Puppet scripts in http://svn.apache.org/repos/asf/incubator/bigtop/trunk/bigtop-deploy/puppet/ we can clone them from git://github.com/apache/bigtop.git using the existing mechanism in Whirr. However, the directory structure isn't quite right, so we'd need to set --modulepath when calling puppet. A workaround is to create a local tarball and specify it using a file:// URL.
2. We need to add the Bigtop repo, either using yumrepo or something like https://github.com/plathrop/puppet-module-apt or https://github.com/lelutin/puppet-apt for apt.
3. We need to pass the servers in the ZK ensemble dynamically, so we need a way of hooking in some ZK-specific code to run in the ClusterActionHandler. Not sure the cleanest way to do this.