这是非常基本的(这可能真的很明显),但它是如此基本没有任何东西。 在testing时,我是否会像对待我的电脑那样对待远程Linux服务器? 例如,在我的电脑上,我安装了pip,然后用它来安装Django和一个插件。我可以通过ssh在远程linux服务器上执行相同的操作吗?
对不起,如果这是错误的堆栈交换网站发布这个问题,但从快速浏览所有这些,这似乎是最好的select。
总之,是的。
部署应用程序时,我们通常有三个(或更多;见下文)涉及的机器:
在这个非常常见的模型中,开发人员在开发机器上编写代码,将代码更改推送到登台机器进行testing,最后将testing的更改投入生产。
为了将gremlins保持在最低限度,我们通常希望服务器configuration尽可能接近。
所以,你可以在每个系统上安装相同的软件(和相同的更新),但是在生产中,你可能有多个服务器(例如负载均衡)。 您可能会发现您的应用程序变得stream行,您必须扩展到数百或数千台服务器。 成为下一个Twitter并赚取数百万美元不是很好吗?(哦,等等。)但是,如果你有几千个服务器,甚至不能用ssh来应用你的更新几十个。
这就是像Puppet和Chef这样的configurationpipe理系统进来的地方。通过一次性向大量机器应用相同的configuration(参见他们各自的站点以获得进一步的细节),这些帮助你。 一旦你超越了需要多个服务器的地步,有一个系统可以帮助你完全保持同步,并且完全按照预期的configuration更新你所期望的软件。
我会通过ssh在远程linux服务器上执行相同的操作吗?
一般来说,是的。
然而。
在服务器环境中,最重要的事情之一是能够以非常可靠且非常可重复的方式执行configuration和部署操作。 人类作为我们的不精确的存在者,以可靠的方式手动做事非常糟糕。 这就是为什么我们想出了像Puppet,Chef和CFEngine这样的configurationpipe理系统。
这些系统允许您以非常可靠的方式将configuration部署到您的服务器。 此外,将configuration部署到1台服务器所需的工作与部署到10,000台服务器所需的工作大致相同。
我build议你看看build立一个configurationpipe理系统,而不是手动ssh'ing执行任务。
我认为由Linbit写的MultiSSH可以帮助你: http ://oss.linbit.com/multissh/