У меня есть очень простой (под) модуль Puppet, который должен использовать Git для клонирования репозитория из удаленного места:
class wppuppet::git(
$location = '/var/www/wp'
) {
file { $location:
ensure => 'directory',
mode => '0755',
}
exec { 'git-wp':
command => 'git clone https://github.com/WordPress/WordPress ${location}',
require => Package['git'],
}
Package['git']
-> File[ $location ]
-> Exec['git-wp']
}
Почему-то постоянно выходит из строя следующая ошибка:
Error: git clone https://github.com/WordPress/WordPress ${location} returned 128 instead of one of [0]
Error: /Stage[main]/Wppuppet::Git/Exec[git-wp]/returns: change from notrun to 0 failed:
git clone https://github.com/WordPress/WordPress ${location} returned 128 instead one of [0]
Я пробовал это с ${location}
а также с $location
, но результат остается прежним.
Ваша первая проблема в том, что у вас есть command
параметр в одинарных кавычках ('
), которые препятствуют расширению переменных. Если у вас есть:
$location = "/path/to/target"
Затем:
file { '$location':
ensure => directory,
}
Попытка создать каталог под названием "$location
", тогда как это:
file { "$location":
ensure => directory,
}
На самом деле попытался бы создать /path/to/target
.
Имея это в виду, ваш exec
ресурс, вероятно, должен выглядеть так:
exec { 'git-wp':
command => "git clone https://github.com/WordPress/WordPress ${location}",
require => Package['git'],
}
Кроме того, нет необходимости предварительно создавать целевой каталог; git
сделаю это за вас.
Вы можете запустить марионетку с --debug
чтобы увидеть фактические сообщения об ошибках, выводимые git
.