Seu primeiro problema é que você tem o parâmetro command cercado de aspas simples ( ' ), que inibem a expansão das variáveis. Se você tem:
$location = "/path/to/target"
Então:
file { '$location':
ensure => directory,
}
Tentará criar um diretório chamado " $location ", enquanto isso:
file { "$location":
ensure => directory,
}
Na verdade, tentaria criar /path/to/target .
Com isso em mente, seu recurso exec provavelmente deve ser:
exec { 'git-wp':
command => "git clone https://github.com/WordPress/WordPress ${location}",
require => Package['git'],
}
Além disso, não é necessário pré-criar o diretório de destino; git fará isso por você.
Você pode executar o fantoche com --debug para ver as mensagens de erro reais geradas por git .