class puppet_bootstrap { # puppet-bootstrap script file { "/usr/local/sbin/puppet-bootstrap": owner => "root", group => "root", mode => 0755, ensure => present, require => Package["puppet"], content => template("$templates_dir/bin/puppet-bootstrap"), } define puppet_modules($modules_dir) { # directory to download modules file { "$modules_dir": ensure => directory, owner => "puppet", group => "puppet", mode => 0755, } # execute the bootstrap script to download puppet modules exec { "/usr/local/sbin/puppet-bootstrap add-submodules": user => root, require => [ File["/usr/local/sbin/puppet-bootstrap"], File["$modules_dir"] ], timeout => 600, } } }