puxando git-via-ssh repo via Puppet: “Não foi possível criar repositório (não repositório no caminho)”

3

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
    
por tedder42 12.01.2013 / 21:47

2 respostas

2

Parece que o problema é que você está dando um caminho de "/tmp/" - o erro está dizendo que algo já existe no caminho que deveria ser o repositório (o diretório /tmp ), e que é não vai prosseguir por causa disso.

Pretendia clonar algo como "/tmp/reponame" ?

    
por 12.01.2013 / 21:54
0

Você pode usar o parâmetro force em vcsrepo , que excluirá tudo e o recriará para você.

Docs

    
por 14.02.2015 / 19:22