Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is extremely basic (It's probable really obvious too), but it's so basic there is nothing on it. Do I treat a remote linux server like a treat my computer when testing? For instance, on my computer I installed pip then used that to install Django and a plug in. Would I do the same on a remote linux server over ssh?

Sorry if this is the wrong stack exchange site to post this question on, but from a quick look at all of them, this one seemed the best option.

share|improve this question
up vote 3 down vote accepted

In short, yes.

When deploying an application, we usually have three (or more; see below) machines involved:

  • The development machine
  • The staging machine
  • The production server(s)

In this very common model, developers write their code on the development machines, push code changes to the staging machine for testing, and finally the tested changes go into production.

To keep gremlins to a minimum, we generally want the servers to be configured as close to identically as possible.

So, you can ssh into each system and install the same software (and the same updates) on each machine, but in production, you may have more than one server (e.g. for load balancing). You may find your app gets popular and you have to scale out to hundreds or thousands of servers. Wouldn't it be nice to be the next Twitter and make millions of dollars?... (oh wait.) But you can't ssh into every one of them anymore to apply your updates if you have several thousand servers, or even a few dozen.

This is where configuration management systems like Puppet and Chef come in. These help you by applying identical configurations to a large number of machines at once (see their respective sites for further details). Once you get beyond the point of needing more than one server, it helps a lot to have a system to keep them all in sync and updated with exactly the software you expect in exactly the configuration you expect.

share|improve this answer

Would I do the same on a remote linux server over ssh?

Generally speaking, yes.


In a server environment, one of the most important things is to be able to perform configuration and deployment actions in a way that's very reliable and very reproducible. Humans being the inexact beings that we are, are very bad at doing things manually in a reliable way. This is why we came up with configuration management systems like Puppet, Chef, and CFEngine.

Those systems allow you to deploy configuration to your server(s) in a very reliable way. Additionally, the work required to deploy a configuration to 1 server is more or less the same as is required to deploy to 10,000 servers.

I'd suggest you look into setting up a config management system instead of manually ssh'ing in to perform tasks.

share|improve this answer
Thanks, I would give this vote up, but I don't have the privilege yet. – sinθ Aug 5 '12 at 4:52

I think MultiSSH wrote by Linbit can help you:

share|improve this answer
There's dozens of parallel SSH programs available; they all suffer from the same set of problems which make them infeasible for production use. – womble Aug 5 '12 at 5:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.