Live data from Hacker News

A configuration management system for computers that are pets, not cattle

github.com

71–80 of 93 posts

Re: A configuration management system for computers that are pets, not cattle

#71

Earlier quoted context omitted.

was going to say the same thing - but for ansible. an inventory file is literally a static list of pets in its simplest form, and with some simple convention you could have a directory per-host with any playbooks required. plus you have docs, community modules, etc.

I came to Ansible from Puppet, buying in to the claims I'd heard about Ansible being so much simpler ("it uses YAML for its config, which is so much simpler than configuring Puppet"). Turns out that, like Puppet, Ansible seems to have been congealed rather than designed, and it's a mess of inconsistent spaghetti code. All the other config management systems I've tried, from Salt to Chef have exactly the same problem.…

you are 100% correct that ansible is a mess... congealed is a great way to describe it.

Re: A configuration management system for computers that are pets, not cattle

#72
post #46

A replacement for "pets, not cattle" could be "goldfish, not trout" [0]. Due to certain beliefs around the latter. Has that come up for anyone? Maybe unique to us? [0] Not my idea. Source: a colleague.

I like to say "farmed, not gardened" as a veggie alternative to "cattle, not pets". As in "containers are farmed, not gardened". No idea if that sounds right to a native speaker, though.

Made sense to me until you said 'containers', which I immediately read as container plants (approximately always gardened, never farmed) instead of in the runtime sense.

Re: A configuration management system for computers that are pets, not cattle

#73

> The idea behind Pets is that Configuration Management of individual hosts shouldn’t be harder than administering the system by hand. Just administer it by hand and back it up.

If people were good about doing it by hand and keeping track of what was done to the box, and ensuring that changes only happen via the documented pipeline, then we wouldn't have a cottage industry of configuration management tools. Maybe you are an outlier and are able to keep good notes, but I think its obvious that the general population is not diligent enough.

Re: A configuration management system for computers that are pets, not cattle

#74
post #28

This seems more approachable than NixOS/Guix, which I see as state or the art for declarative hosts. https://discourse.nixos.org/t/documentation-team-flattening-... aims to flatten the learning curve for NixOS.

I’ve been reading the pills (tutorials) and it’s actually been pretty nice. You just have to realize it’s more complicated than mapping JSON YAML. https://nixos.org/guides/nix-pills/

Yes it is more advanced, but actually if you just think of the nix configuration language as an advanced JSON then that goes a long way in making it feel a lot less awkward IMO. Attrsets are basically JSON objects, and your final configuration is basically a huge, merged attrset.

Re: A configuration management system for computers that are pets, not cattle

#75
post #67

> The idea behind Pets is that Configuration Management of individual hosts shouldn’t be harder than administering the system by hand. Just administer it by hand and back it up.

but then you dont have visibility of what changes you have made. having config management improves visibility of how something is configured

Each system has a text file where I note down the steps I did to install and configure something new or also when doing major changes. Also the steps for less often routine jobs (like major OS updates) get entries. On one hand it is kind of a log book what changed on the systems and also is a wonderful sources for when you need to do it the next time.

Re: A configuration management system for computers that are pets, not cattle

#76
post #72
post #46

Earlier quoted context omitted.

I like to say "farmed, not gardened" as a veggie alternative to "cattle, not pets". As in "containers are farmed, not gardened". No idea if that sounds right to a native speaker, though.

Made sense to me until you said 'containers', which I immediately read as container plants (approximately always gardened, never farmed) instead of in the runtime sense.

Appreciate your feedback! I can totally see how you would read it that way. Maybe "servers should be farmed, not gardened" would be less ambiguous. Server farms have been a thing for a long time after all.

Re: A configuration management system for computers that are pets, not cattle

#77

Earlier quoted context omitted.

"Cattle, not pets" is not a great analogy in the first place. Maybe I only talk to smaller farmers, but they definitely care if a cow dies. Maybe not as much as if the dog dies, but it's a sign something is seriously wrong with their operation.

My grandparents wouldn't have given a single hoot over the dog dying. The cows though? Those were important.

They wouldn't have given a hoot if a herding dog dies? Or if they're not companion animals or working, why are they there?

Re: A configuration management system for computers that are pets, not cattle

#78
post #70
post #36

Earlier quoted context omitted.

Ansible is like a fifth wheel on a car, since all of the configuration can be done inside of OS packages, and orchestration can be done via SSH (which is exactly how Ansible does it). Put those two together and Ansible is a solution to a non-existent problem.

I'd much rather use Ansible to configure a fleet of identical systems (either all at once or over time) than SSH and configure by hand thanks.

Not by hand! With configuration packages in OS-native format!

1. When a system comes in, it is scanned and entered into the asset management database, which then triggers a process to enter the scanned MAC address into the DHCP, by generating a new DHCP configuration package.

2. the previous version of the DHCP configuration package is upgraded with the new DHCP configuration package.

3. the system is hooked up to the network and powered on.

4. the firmware is permanently reconfigured to boot in this order: 1. HD0 2. HD1 3. network.

5. since HD0 and HD1 are not bootable, the system boots from the network, whereby the infrastructure automatically provisions it with the standard runtime platform, which consists solely of packages in OS-native format, including configuration packages which configure things which all servers have in common.

6. as part of the automatic installation, the server is automatically installed with additional configuration packages based on which profile it is in, turning it into a specific application server.

7. the server comes up after automatic installation, and reports back to the infrastructure that it is ready to serve.

NEVER by hand!

Re: A configuration management system for computers that are pets, not cattle

#79
post #53

Earlier quoted context omitted.

That is exactly the problem. It doesn’t give me enjoyment. But why shouldn’t it?

Everyone can go and waste their time in whichever way they like. Some people like gardening, although they will never get to "sell produce" at the vegetables market. That doesn't mean gardening is bad, it just means they enjoy it and enjoy wasting their time doing gardening. Other people just go and buy vegetables at the supermarket that were grown at commercial farming. Same with doing configuration management on yo…

I get what you're saying and agree when it comes to setting up a machine, in that the end result will be basically the same.

For gardening though I can garantee you that homegrown fruits and vegetables can be far superior to anything you can find at the supermarket, so would argue the end result is not the same.

Maybe a better example would be using hand tools versus power tools -- if one takes the expense of power tools out of the equation.

Post reply on HN