Svn VCsrepo指定要使用的ssh密钥
我正在尝试编写一个模块,其中puppet将获取一个SVN repo,我希望它使用一个特定的键来获取存储库。如何在SVN VCSrepo中为指定ssh密钥Svn VCsrepo指定要使用的ssh密钥,svn,module,puppet,Svn,Module,Puppet,我正在尝试编写一个模块,其中puppet将获取一个SVN repo,我希望它使用一个特定的键来获取存储库。如何在SVN VCSrepo中为指定ssh密钥 上面说我们可以使用vcsrepo来管理ssh密钥,但是SVN在上没有任何关于如何管理ssh密钥的示例。当然,这有点令人困惑。文件说明 当您的源代码使用SSH时,例如'username@server:…',您可以使用vcsrepo中的require元参数使用Puppet管理SSH密钥,以确保它们存在 这意味着您可以通过一个独立的资源来管理密钥,例
上面说我们可以使用vcsrepo来管理ssh密钥,但是SVN在上没有任何关于如何管理ssh密钥的示例。当然,这有点令人困惑。文件说明 当您的源代码使用SSH时,例如'username@server:…',您可以使用vcsrepo中的require元参数使用Puppet管理SSH密钥,以确保它们存在 这意味着您可以通过一个独立的资源来管理密钥,例如
file { '/home/svn-user/.ssh/id_rsa': ... }
关于你的问题,令人遗憾的是,这项计划看起来不太有希望:
- 有一个
功能,但它仅适用于ssh\u identity
和git
提供商hg
- 对于这些提供程序,您可以使用
参数指定密钥identity
我不确定从该功能中排除
svn
的原因。这对于puppet dev邮件列表或Freenode上的#puppet dev
IRC频道来说似乎是一个有效的问题。这是可以做到的,但需要跳出puppet并使用自定义隧道协议配置Subversion客户端。基本上,在~/.subversion/config
中放置如下内容:
[tunnels]
ssh_user_<remote_user> = $SVN_SSH ssh -q -l <remote_user> -o IdentityFile=<ssh_identity_file>
[隧道]
ssh\u user\uu=$SVN\u ssh-q-l-o IdentityFile=
我写了关于如何做到这一点的文章。是的,看来到目前为止,VCSrepo不支持标识,我尝试过,但svn出现了错误。是的,我就是这么说的。也许
svn
应该只依赖于执行签出的用户自然拥有的密钥。