top | item 37332288

(no title)

chologrande | 2 years ago

Ansible is great, but (imo) aged. Sure it's good for dealing with legacy hardware that cannot support terraform like state, but (imo) untyped yaml and excessive playbook runtimes turn into significant development drain as you scale.

Ansible solved a large problem (config management) before the kubernetes era, but containerization accomplishes the same goal for most applications before deployment.

discuss

order

rewmie|2 years ago

> Ansible is great, but (imo) aged.

Is there anything in Ansible that is susceptible to aging?

I mean, Ansible is a tool designed to apply idempotent changes on one or more computer nodes following a declarative specification, and that only requires ssh access to work. What is there to age?

> Sure it's good for dealing with legacy hardware that cannot support terraform like state,

What? Exactly what leads you to believe that anything in Ansible is tied to hardware, let alone legacy hardware? And what do you mean by "terraform like state"?

> but (imo) untyped yaml and excessive playbook runtimes turn into significant development drain as you scale.

I don't understand what you tried to say, and frankly your comment sounds like an AI-generated buzzword soup.

With Ansible you need to specify the configuration state you want your nodes to have, and you need to apply configuration changes in a consistent sequence. This means not only specifying the configuration changes but also the verification and validation checks. The extent of your playbooks depend on how extensive your configuration is.

> Ansible solved a large problem (config management) before the kubernetes era (...)

Your comment makes absolutely no sense at all. Kubernetes provides a way to create clusters and run apps on them, but COTS hardware or VM instances aren't magically born into a working cluster node. What Kubermetes does is something that bears no resemblance to what Ansible actually does. Ansible is used to configure nodes without requiring anyone to install any specialized software other than setting up a working SSH connection. I personally use Ansible for stuff like setting up a Kubernetes cluster on COTS hardware running fresh Ubuntu installs using MicroK8s. How exactly do you expect to pull that off with Kubernetes?

chologrande|2 years ago

1. I mean aging as a paradigm.

2. I mean I don't use ansible with any cloud, only with hardware or legacy on prem stacks - older versions of Cisco, Netapp, Vmware. I prefer a stateful system like terraform to a stateless one like ansible.

3. I like typed languages. I hate yaml. Logic in ansible playbooks (yaml) is inevitable and a nightmare at scale.

4. Having moved to a container orchestrator, all of my nodes are immutable, I do not change or modify them. Hardware and VM instances _can_ be born magically into existence. Nearly all infra providers support [cluster-api](https://cluster-api.sigs.k8s.io/) or some other autoscaling controller. Network infrastructure can now be managed with TF, so I go that route.

okeuro49|2 years ago

> Ansible solved a large problem (config management) before the kubernetes era, but containerization accomplishes the same goal for most applications before deployment.

Depends on the size of your business. For small-medium size businesses, Ansible and VMs require much less support and developer knowledge than Kubernetes and containerisation.

I worked for a business with a million customers who served them using 10 VMs.

jonwest|2 years ago

I don’t disagree, but what is there for a terraform-like state config management system for bare metal and VMs when they are necessary? What provisions the machines that run the clusters?

tiew9Vii|2 years ago

I see Ansible as a glorified task runner and every time I’ve used it, never get the same results twice. Idempotency is by convention only and if a single step fails it can be hard to recover.

Nix has its warts however I think what Nix tries to achieve is what most people want on bare metal instead of Ansible. Declarative, you describe the end state then nix makes it happen. Exactly the same as Terraform.

It’s been a very long time since I’ve used Chief/Puppet but found them much better than Ansible also. The thing is any professional job I do now, every one uses Ansible as much as I dislike programming in YAML.

chologrande|2 years ago

Hate to only shill hashi stack but packer if you must. All you need is a container runtime and linux kernel. After that you shouldn't have to think about the core node.

If you're _really_ bare metal - build the base image, boot pxe and run apt update - not much more complicated than that.

selfhoster11|2 years ago

Kubernetes for small and medium businesses is extremely inefficient. I definitely wouldn't want to be dealing with that at this stage of my business's growth.

allarm|2 years ago

Not sure how containerization would help in case of for instance network devices or baremetal servers management. You've picked only a small use case for Ansible, there's much more.

influx|2 years ago

Can you go into what you mean by "terraform like state"?