Estou tentando fazer um repositório do git (github) via Puppet. Eu usei a documentação oficial do vcsrepo e pedi emprestado de the post do Fiesta para apresentar a seguinte configuração:
vcsrepo { "/tmp/":
ensure => latest,
provider => git,
source => '[email protected]:tedder/helloworld.git',
revision => 'master',
# eventually:
# revision => 'branchname'
require => [ Package["git"], Sshkey["github.com"] ],
identity => '/home/ubuntu/.ssh/id_rsa',
}
O problema é que, quando eu executo isso, recebo a seguinte saída. Eu cortei a maior parte do registro relacionado ao pacote e ao Sshkey, já que eles parecem estar bem:
$ 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]
Isto parece ser o mesmo que em este bug , embora o pedido de pull seja um 404 ou inacessível, por isso Eu não sei qual versão contém a correção. (diz "lançamento pendente", reconhecidamente) Há também a seguinte discussão , mas também vincula a um ID de bug inválido.
Há também um postscript no documento vcsrepo que diz "use require" e "see / examples /", mas não há exemplos substanciais . Suspiro.
Por que vale a pena, eu tentei "garantir nu" em seu lugar. Não funciona (mesmo erro). Note que nem "garante bare" ou "assegure mais recente" fornece o comando que está sendo executado nos logs. Não sei se isso é um problema.
Então, a resposta é que o git-via-ssh não funciona? Como eu pego um repositório privado do github? Eu estou relutante em usar exec
se eu puder evitá-lo, mas talvez essa seja a resposta.
Se a resposta for "use https", como isso funciona para repositórios autenticados no github? Simplesmente dizer "você não pode usar o git-via-ssh com a versão atual do vcsrepo" não é uma resposta suficiente.
FWIW, estou usando 2,7 de fantoche:
$ puppet --version
2.7.18