One problem I see, specifically for the environment, is that "dev" is now a TLD (thanks Google!), so you have to be careful should you try to do a short cut like "web01.dev" you may get a surprise depending on your resolv.conf:
* https://en.wikipedia.org/wiki/.dev
Lots of 'generic' TLDs now thanks to ICANN:
* https://en.wikipedia.org/wiki/List_of_Internet_top-level_dom...
There's both ".accountant" and ".accountants".
The article describes geographic sub-domains, and uses "nyc" as an example, but that's a TLD now as well. It may be better to use UN/LOCODE as a starting point:
* https://en.wikipedia.org/wiki/UN/LOCODE
If you don't need down to the city/municipal level, then ISO 3166-2 may be useful (<nation><hyphen><subnational>):
Some time later we got two more boxen and the female members of our research group were given the job of naming them, and we ended up with 'itchy' and 'scratchy'...
* for the Pratchett readers I was wrong, it should of course have been 'Kaos'...
This might be the coolest thing I've read all year...
sed "$((RANDOM % 1632 + 1))q;d" words.txt
Grab this cleaned wordlist with 1 word per line: wget http://nerab.github.io/wordlist/words.txtDon't do it! If you're labeling hardware and need multiple functions, use virtualisation or containers, and then the host is named after that (e.g. we use Ganeti, so gnt-01, or say kube-01).
At home, I name machines after inspiring political figures and while I like the naming, it does discourage me into treating those machines as cattle, which I should do more.
I manage my stuff with Ansible, which makes all this pretty easy.
at first I couldn't either, but then I learned it's an old KVM node hosting a bunch of virtual machines, and it means pain, definitely something severe. yet it's not meaningfully different from "corsicum" dying (which is "just" a VM).
adding meaning to machines reduces the cognitive burden (for oldies) and discovery burden (for newcomers) of figuring out what is what.
that assumes you don't run services bare-metal. if you do, then maybe it makes sense to use meaningful names for those, but in general, I strongly try to avoid doing that anyways... and if I do, having a functional name for that metal is mostly harmless: if the function changes, the name changes, and then I need to do a name change, which I allow for.
but that is rare, because if i dedicate full metal for a function, you can bet it won't be readily available for other purposes...
I had no idea how many kinds of onions there were turns out there are many, especially if you start to take in Latin names and translations...
But then I need to learn how to spell colchicifolium, and neriniflorum, and no, those two are not related (or are they) and what does meronense do again? and oh yeah corsicum is the replica of one of those...
Those naming conventions are cool until you start to document your stuff properly and start being serious about training and including new people. Then you should focus on meaningful, easy to remember, type, and generate, names.
It is fairly straightforward to incorporate into your infrastructure as code workflow for managing your "cattle".
I can't find the post that linked it, but it had a very nice scheme.
EDIT: found it: https://mnx.io/blog/a-proper-server-naming-scheme/
EDIT2: one-liner to get a random word from the file:
cat wordlist.txt | tail -n +2 | sed -E 's/\s*(\w+)\s+/\1\n/g' | sed -E '/^$/d' | shuf -n 1
i.e. <print file> | <skip first line> | <split lines into words> | <remove empty lines> | <choose random line>