Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Ansible, Salt and Puppet are mostly industry standard. Those tools are commonly referred to as configuration management (systems).

Ansible basically automates the workflow of: log in to X, do step X (if Y is not present). It has broad support for distros and OSes. It's mostly imperative and can be used like a glorified task runner.

Salt let's you mostly declaratively describe the state of a system. It comes with a agent/central host system for distributing this configuration from the central host to the minions (push).

Puppet is also declarative and also comes with an agent/central host system but uses a pull based approach.

Specialized/ exotic options are also available, like mgmt or NixOS.



Thanks, this is very detailed! Could you share some real-world use cases for these tools?

Actually I am looking for tools to automate DevOps and security for self-hosting


Salt and Puppet are useful for managing a fleet of servers running various applications, especially when you need to scale those applications horizontally or want geo-distribution.

Ansible can also do that, on top of literally anything else you could want - network configuration, infrastructure automation, deployment pipelines, migrations, anything. As always, that flexibility can be a blessing or a curse, but I think Ansible manages it well because it's so KISS.

RedHat's commercial Ansible Automation Platform gives you more power for when you need it, but you don't need it starting out.


The other commenter already answered the usecase question, for self-hosting you will likely find ansible the easiest entrypoint.

It is in general the simplest of these systems to get started with and you should be able to incrementally adopt it. There is also a plethora of free online resources available for it.


A combination of HashiCorp Packer and Ansible means I can "publish" a VM ready-to-rock image to a public cloud provider gallery and use it to run a VM in said cloud.

Ansible-Lockdown is another excellent example of how Ansible can be used to harden servers via automation.


> Puppet is also declarative and also comes with an agent/central host system but uses a pull based approach.

The person you're replying to mentioned a self-hosting use case, so this probably isn't relevant for that, but Ansible can also be configured for a pull approach, which is useful for scaling.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: