Error al proyecto de clonación con títere en vagrant

Intento instalar django y clonar un proyecto github con un script de marionetas. Estoy usando modules de la siguiente manera:

  • files
    • (directory vacío)
  • manifiestos
    • nodes.pp
    • web.pp
  • modules
    • django
      • manifiestos
        • init.pp
      • files
        • (directory vacío)
    • git
      • manifiestos
        • init.pp
      • files
        • (directory vacío)
    • postgres

Dentro del file web.pp tengo:

import ' nodes.pp ' 

En el file nodes.pp tengo:

 node default { include postgres include git include django } 

En el file init.pp dentro de la carpeta Manifests que está dentro de la carpeta git tengo el siguiente código:

 class git{ include git::install } class git::install{ package { 'git:': ensure => present } } define git::clone ( $path, $dir){ exec { "clone-$name-$path": command => "/usr/bin/git clone git@github.com:$name $path/$dir", creates => "$path/$dir", require => [Class["git"], File[$path]], } } 

En el file init.pp dentro de la carpeta Manifests que está dentro de la carpeta django, tengo el siguiente código:

 class django{ include django::install, django::clone, django::environment } class django::install { package { [ "python", "python-dev", "python-virtualenv", "python-pip", "python-psycopg2", "python-imaging"]: ensure => present, } } class django::clone { git::clone { 'My GitHub repository name': path => '/home/vagrant/', dir => 'django', } } define django::virtualenv( $path ){ exec { "create-ve-$path": command => "/usr/bin/virtualenv -q $name", cwd => $path, creates => "$path/$name", require => [Class["django::install"]], } } class django::environment { django::virtualenv{ 've': path => '/usr/local/app', } } 

Para ejecutar los guiones de títere utilizo el command:

 sudo puppet apply --modulepath=/vagrant/modules /vagrant/manifests/web.pp 

y ejecute este command obtengo el siguiente error :

 Could not find dependency File[/home/vagrant/] for Exec[clone-My GitHub repository name-/home/vagrant/] at /vagrant/modules/git/manifests/init.pp:16 

Nota: donde está el nombre 'My GitHub repository name', puse el nombre de mi repository github correctamente.

¿Qué está mal y cómo resuelvo este problema?

en su define git :: clone ¿se ha asegurado de declarar el recurso de file para $ path?

Deberías:

 file { $path: ensure => directory } 

no puede requerir un recurso que no haya extraído específicamente