Hacker News new | ask | show | jobs
by vinceguidry 3030 days ago
When I was working as a sysadmin, I kept a spreadsheet. I was told later of a repository of information that supposedly was what my spreadsheet did, but it didn't add anything new and was much harder to keep up.

I built it up using nmap and then shelling into each individual machine and poking around to see what it did. This was back in the days before everything became virtualized, so each machine on the network was likely physical.

I added information by walking the aisles and copying down the rack location of every machine into another page on the spreadsheet. I eventually hooked up a terminal to them all and matched network addresses to physical machines.

Only took a few weeks and when I was done, I knew things about the network that guys who worked at the business for years didn't know.

There's no substitute for the good old-fashioned way.

I liked that job, it was fun.

1 comments

If you're by yourself, using spreadsheets and nmap is usually fine. If you're working in a team of 5 or 10 or 50 sysadmins, spreadsheets turn into a huge mess. You either have to distribute them via mail etc. after every change, but then you will have concurrent edits that need to be merged manually. Or you put the spreadsheets on a network share with file locking, but then it will always be locked when you want to edit it because someone is working on an entirely unrelated part of the infrastructure.

So you have exactly those sorts of problems that RDBMS are designed to solve. Therefore it makes sense to move to a DCIM system using an RDBMS under the hood, that allows for concurrent edits, and also can be accessed by automation (cronjobs, CI, etc.) via some sort of API (or direct DB read access).

There is an even better alternative. You can put infrastructure information into the same version control repository where your infrastructure code lives, and you can even keep all the benefits of spreadsheets by using plain text format spreadsheets like Org-mode tables.

This means you do not have two sources of truth to maintain (what is in the RDBMS, and how that relates to what is in the infrastructure code repository), the RDBMS system does not have to reinvent versioning, you can see exactly how your infrastructure evolves, you can do atomic changes to both the infrastructure code and the infrastructure information that the code relies on (obviously you need a modern version control system for this), and the infrastructure code can access the infrastructure information in a much more straightforward (and much easier to test) way.

This would become very exhausting if working with very large infrastructures. 80 000 virtual and physical servers? Have fun keeping that data consistent, up to date and available with Org-mode and version control.

I'm not saying your example is wrong, but "there is an even better alternative" doesn't always apply. For smaller scales, sure.

VMs need to be kept track of in whatever system you use for provisioning (AWS, OpenStack), otherwise you now have three sources of truth: what the configuration says should be running, what the DCIM thinks is running, and what is actually running.
Just use Google Docs.
Extra days off when Google is down! \o/