通过 ssh 部署应用程序

通过 ssh 部署应用程序

我的工作需要通过多个 ssh 跃点频繁更新客户 PC 上 Centos 编译的软件版本。最近,这已经到了无法手动管理的地步。可以使用什么软件来自动化该过程?

我需要的是能够接受一堆更新的文件,通过 scp/ssh 传输它们并在远程主机上自动运行解包/替换脚本的东西。是否有这样的软件或者可以通过简单的 bash 脚本编写?

理想情况下,我想要的是(在我自己的机器上)编写“helperappname 主机名包文件”并让帮助程序应用程序执行部署。或类似的东西。

答案1

如果您的所有目标计算机都是 CentOS,我强烈建议您尝试将应用程序捆绑为 RPM。一旦完成了这个任务,您就可以轻松地自动捆绑较新的版本,并且部署变得非常简单,只需设置一个可供所有目标服务器访问的存储库(这可能有其自身的困难)并运行简单的“yum update” " 或 "yum install" 命令在您想要更新/安装软件的每个客户端上。时间投入会有些大 - 如果您学得快的话,大约需要一两周 - 但您的回报将是巨大的 - 将每台目标计算机上的安装时间减少到 30 秒以下。

答案2

这是可用于此类任务的工具非常密集的领域。正如您所提到的,您基本上可以使用简单的 shell 脚本一直到使用配置管理工具(例如 cfengine 或 puppet)来构建自己的工具。

我倾向于从简单的开始,编写自己的 shell 脚本,然后升级到专用系统之一来执行此操作。

这样做可以让您在尝试放弃诸如 Puppet 之类的设置之前很好地掌握自己的需求。

维基百科上有一个很好的此类工具列表:开源配置管理软件比较

这些是我过去使用过的工具,它们运行良好,但在设置和运行它们时存在不同程度的困难。

在上面提到的这些中,我已经使用了其中的大部分,并且可以说 Capistrano 和/或 Chef 可能会很好地开始使用。但正如我所说,我可能会首先使用 shell 脚本方法,然后开始考虑这些长期解决方案之一。

更轻的重量选择

如果上述选项仍然太重,还有一些工具,例如转速。它本质上是 的前端rsyncssh但它允许您在文本文件中配置的一组服务器上进行操作。myrpm为您提供以下命令:

  • 放置密钥
  • 部署密钥
  • 质量同步
  • 批量 ssh 远程执行
  • 批量 ssh 远程 cmd

这些允许您将ssh密钥推送到各个主机,将文件推送到它们,启动到服务器的远程命令,以及启动一次性命令,例如yum -y update.

参考

相关内容