我正在与其他一些开发人员一起使用开发,登台,生产服务器环境。
现在我们进行更改,在我们的开发服务器(个人计算机)上测试它们,然后一旦我们对更改感到满意并希望将它们显示给客户端或内部审查我们将更改提交到存储库并更新登台服务器的工作通过samba(tortoiseSVN)或ssh复制。
这变得非常乏味和重复。我希望有一个post-commit钩子更新远程登台服务器,但是唯一的选择似乎涉及在SSH的钩子中硬编码用户信用或使用用户帐户创建网络安装。有没有办法将用户身份验证从初始提交传递到登台服务器以进行更新或任何其他建议?
欢迎其他设置解决方案。
答案 0 :(得分:3)
如果您担心将用户SSH凭据硬编码到脚本中,则可以创建没有密码的SSH密钥对。在目标计算机上,您需要将该密钥对限制为仅通过添加
来运行Subversioncommand="/path/to/svnserve -t"
到SSH授权密钥文件的前面,例如:
command="/usr/bin/svnserve -t" ssh-dss <key text>
修改您的钩子脚本以使用此密钥进行登录,并且您将比传统的无密码SSH密钥(稍微)更安全。
答案 1 :(得分:1)
您是否考虑在登台服务器上使用CruiseControl(http://cruisecontrol.sourceforge.net/)等自动化系统?
CruiseControl可以配置为检查是否有新的签到然后开始构建(通常在第一步时进行结帐)。
您甚至可以监控不同的分支,并根据检查了哪些分支进行自动集成和发布构建。
我们在这里非常成功地使用这个习惯用于我们的自动构建。