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

If I use something like Ansible or Puppet, and I only have two servers, is that defeating the purpose of using these products? I thought that if I configured one server, I could use one of these to duplicate it on the other.

share|improve this question
up vote 32 down vote accepted

Nope, it's not defeating the purpose. I, in fact, use Ansible to set up single servers for hobby/side-project use quite frequently. It allows me to keep a version-controlled, repeatable, self-documenting configuration for the server.

share|improve this answer
    
My understanding is it is like the "old" days. You setup a machine, put all your stuff on it you need, and instead of imaging it, you use the CF software to do it on-the-fly. This means I'd have Docker or whatever installed and configured and then run Ansible. – johnny yesterday
7  
@johnny Not quite. You determine what you need on the machines then build the plays/roles/recipes which get the machines into that state. One of your Ansible roles should be installing and configuring Docker. You don't actually configure the machines "by hand". Also, Ansible is way lower of a barrier for getting started. All you need is working ssh/python. – jscott yesterday
5  
Honestly, the overhead of getting started with a CM system when you have just two servers is high, but I believe, worth it. And like jscott said, you make you let the CM system configure your system entirely, and don't install anything by hand if you can help it. – Mark Henderson yesterday
1  
@MarkHenderson for puppet id agree. for ansible the overhead really is not that high, although if it's the first time you've ever used ansible then yea it could be. – Sirex yesterday

I have to disagree with the current consensus. In no way can it be reasonable to learn any CM system for a pool of 2 servers, unless you simply want an excuse to learn that CM system. The amount of time you spend learning, writing, testing, and applying the config, will definitely exceed the hand built time. If you knew one of those systems, it's a much more reasonable proposition.

share|improve this answer
5  
"The amount of time you spend learning, writing, testing, and applying the config, will definitely exceed the hand built time." Initially? Yes. When a server breaks, gets compromised, needs to be handed over to someone else to maintain, etc.? Not so much. – ceejayoz yesterday
8  
While I can't disagree with the time it takes to learn one, you probably have far more time to do that when you have two servers than when you need a CM right now to build 10 more. A CM isn't strictly for managing large pools of resources, it's for easily repeating processes in a consistent way. You're in a much better situation if you fsck something up if you can do a reinstall (or a new install in case of hardware replacement) and run one command to get it back to a known working state. My rule of thumb is if I have to do it more than once, no I don't. I'm doing it in puppet. – yoonix yesterday
3  
Actually, I think you are not disagreeing - you are just (correctly) pointing out that there is a tradeoff involved - more time for initial setup, but easier management later. – sleske 22 hours ago
    
I agree, in fact all too often I see "why don't you use Chef..." without any thought as to the explosion in infrastructure (and hence costs) that will result. The exception is for where the servers are provided by a third party or are imaged based upon an external maintenance level. – mckenzm 2 hours ago

Your Answer

 
discard

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.