用vcsrepo模块

时间:2017-07-21 15:16:02

标签: git puppet

我使用无主木偶安装来配置我的开发箱,我需要克隆一个私人仓库,但vcsrepo不会以特定用户身份运行,因此使用了错误的ssh密钥。

根据vcsrepo docs,这应该作为我的非root用户运行:

vcsrepo { '/path/to/repo':
  ensure   => present,
  provider => git,
  source   => 'git://example.com/repo.git',
  user     => 'blake',
}

但每次运行时我认为它仍然以root身份运行,因为我收到了这个错误:

Error: Execution of 'git clone git@github.com:private-org/private-repo.git /home/blake/code/private-repo' returned 128: Cloning into '/home/blake/code/private-repo'...
Host key verification failed.
fatal: Could not read from remote repository.

如果我手动执行git clone它运行得很好,所以我知道为我的用户帐户设置了正确的ssh密钥。

更新1:

好的,我添加了--debug标记,但它并没有真正提供更多信息。

Debug: Executing 'git clone git@github.com:private-org/private-repo.git /home/blake/code/private-repo'

但我认为这与我的'known_hosts'有关。文件。如果主机已知它可以正常工作,否则它会显示上面的错误。所以我不知何故需要弄清楚如何填充'known_hosts'文件,以便vcsrepo命令可以工作。

1 个答案:

答案 0 :(得分:2)

在这种情况下,Host key verification failed错误与“已知主机”中的丢失主机有关。文件。

如果从命令行执行git clone,它将提示您将主机条目添加到' known_hosts'文件,但如果puppet运行git clone命令,这将无法工作。

为了解决这个问题,我将ssh-keyscan -t rsa github.com的输出添加到了我的'known_hosts'使用file_line类型通过puppet文件。我也关掉了HashKnownHosts'在我的.ssh/config文件中。