8 comments

[ 3.6 ms ] story [ 35.1 ms ] thread
I like to say that Ansible is a CMS (Configuration Management System).

For me, infrastructure as code, is another thing. The things you can "touch" with your hands.

How do I get a new physical rack, new server, new router with a new IP range, new switch, plan or segment the network layout(s), how do I connect the cables, how do I add disks, how do I install Debian, etc. As code.

For Hosting or Cloud providers, Iac (Infrastructure as Code) is easy. They need pools of resources already deployed, waiting for you, and an API.

For home... it doesn't make too much sense to have pools of public IP ranges, pools of datacenters, racks, routers and switches with SDN capabilities (Software defined network) servers waiting, storage servers waiting, load balancers waiting, and 200x software X/Y waiting...

Maybe the most similar thing of IaC you can do at home, is a PXE install server.

Or, enter the vIaC concept, Virtual Infrastructure as Code?

That you can do, you can define as code switch VLANs, Virtual Switches, Virtual interfaces, DHCP/NAT/bridge, etc, Virtual Machines, Virtual disks, Virtual Hosts (in balancers and webservers already running), and of course, you can cosplay IaC with containers, qemu, etc.

Ansible excels in the area of *configuration management system*. I want X part of the operative system (user, file, package, etc), to be in this state, and I wan to track how it evolves over time, ensure that it continues in such state, or analyze the delta.

IaC -> helps with things that previously were done with the hands

CMS -> helps with things that nobody can touch with the hands, and run inside IaC elements

Hey, thanks for bringing this up, I believe this was a miss from my end to not mention that the article was more geared towards Infrastructure configurations via code and not Infrastructure setup via code.

I have updated the title of the article, the URL remains the same for now, might update the URL and create a redirect later.

(comment deleted)
Woah! Podman? Adguardhome? grafana? Loki? NGINX? rclone? Vaultwarde? Your setup sounds a lot of what I want to achieve!

You're not using an OIDC provider like KanIDM or so? Is your Ansible repo on GitHub?

I have plans of looking into OIDC setup soon-ish, right now I don't have any specific need for it but just for learning purposes I'll be setting it up soon.

Also I'm planning to write about Ansible as well in future.

May I ask why you have Podman _and_ Docker roles? And do you have the setup published on GitHub or GitLab or so?
I have Podman running in one server and Docker in another, Podman was for testing something out so I created a role for that as well.

The repo is private on GitHub as of now, I would have to re-check everything once if I accidentally did not leak any secrets at some point of time when I was still learning about Ansible. So it will be sometime before I make it a public repo.

Meanwhile, if you are looking for something specific then let me know, I will try to cover that topic in depth in some blog post.

If the secrets are on GitHub, private repo or not, they’re already leaked. Secrets should never be stored on any external service.