Назад | Перейти на главную страницу

получение репозитория git-via-ssh через Puppet: «Не удалось создать репозиторий (не репозиторий по пути)»

Я пытаюсь вытащить репозиторий git (github) через Puppet. Я использовал официальная документация vcsrepo и заимствован из почта Fiesta придумать следующий конфиг:

vcsrepo { "/tmp/":
  ensure => latest,
  provider => git,
  source => 'git@github.com:tedder/helloworld.git',
  revision => 'master',
  # eventually:
  # revision => 'branchname'
  require => [ Package["git"], Sshkey["github.com"] ],
  identity => '/home/ubuntu/.ssh/id_rsa',
}

Проблема в том, что когда я запускаю это, я получаю следующий результат. Я вырезал большую часть журналов, связанных с Package и Sshkey, поскольку они кажутся нормальными:

$ sudo puppet apply --debug --verbose /etc/puppet/modules/github-deploy/manifests/init.pp
[snip lots of output]
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/dpkg-query -W --showformat '${Status} ${Package} ${Version}\n''
debug: Puppet::Type::Package::ProviderApt: Executing '/usr/bin/apt-cache policy git'
debug: Prefetching parsed resources for sshkey
notice: /Stage[main]/Github_deploy/Vcsrepo[/tmp/]/ensure: Creating repository from latest
err: /Stage[main]/Github_deploy/Vcsrepo[/tmp/]/ensure: change from absent to latest failed: Could not create repository (non-repository at path)
[snip some output]

Похоже, это то же самое, что и в эта ошибка, хотя запрос на вытягивание либо 404, либо недоступен, поэтому я не знаю, какая версия содержит исправление. (правда, там написано "ожидающий релиз"). следующее обсуждение, но он также ссылается на неверный идентификатор ошибки.

В документе vcsrepo также есть постскриптум, в котором говорится «использовать требовать» и «см. / Examples /», но нет никаких существенных примеров. Вздох.

Как бы то ни было, я вместо этого попробовал "гарантировать голый". Не работает (та же ошибка). Обратите внимание, что ни «гарантировать голый», ни «гарантировать последний» не дает команду, которая запускается в журналах. Не знаю, проблема ли в этом.

Итак, ответ, что git-via-ssh не работает? Как вытащить частное репо из github? Я не хочу использовать exec если я могу этого избежать, но, может быть, это ответ.

Если ответ - «вместо этого используйте https», как это работает для репозиториев с аутентификацией на github? Просто сказать «вы не можете использовать git-via-ssh с текущей версией vcsrepo» не является достаточным ответом.

FWIW, я использую 2,7 марионетки:

$ puppet --version
2.7.18

Похоже, проблема в том, что вы даете ей путь "/tmp/" - ошибка говорит о том, что что-то уже существует на пути, который должен быть репозиторием ( /tmp каталог), и из-за этого он не будет продолжен.

Вы намеревались клонировать что-то вроде "/tmp/reponame" вместо?

Вы можете использовать параметр force в vcsrepo, который удалит все и создаст заново.

Документы