I'm trying to pull a git (github) repo via Puppet. I've used the official vcsrepo documentation and borrowed from the Fiesta post to come up with the following config:
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', } The problem is, when I run this, I get the following output. I've chopped most of the logging related to the Package and Sshkey, as they appear to be fine:
$ 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] This appears to be the same as in this bug, though the pull request is either a 404 or inaccessible, so I don't know what version contains the fix. (it says "pending release", admittedly) There's also the following discussion, but it links to an invalid bug ID too.
There's also a postscript on the vcsrepo doc that says "use require" and "see /examples/", but there aren't any substantial examples. Sigh.
For what it's worth, I tried "ensure bare" instead. Doesn't work (same error). Note that neither "ensure bare" or "ensure latest" give the command that is being run in the logs. I don't know if that is a problem.
So, is the answer that git-via-ssh doesn't work? How do I pull a private repo from github? I'm loath to use exec if I can avoid it, but maybe that's the answer.
If the answer is "use https instead", how does that work for authenticated repos on github? Simply saying "you can't use git-via-ssh with the current version of vcsrepo" is not a sufficient answer.
FWIW, I'm using 2.7 of puppet:
$ puppet --version 2.7.18