Naming things
Naming things is hard, but should at least be consistent.
Server names
Domains
By default, individual hosts should have use the srv.majava.org
domain name.
The majava.org
domain name should be used if:
- The server has an unique server name (see below), or
- The server's primary IP address for all address families it has connecivity on is a statically assigned public IP address.
Unique server names
Unique (e.g. non-role-based) server names should be used if:
- The server has multiple, somewhat unrelated roles (e.g. multipurpose VPSes)
- The server hosts a service that requires a long-lived server name (e.g. mail exchangers and DNS primaries)
- The server hosts a service where the rDNS entry will be user-visible (e.g. IRC bouncers)
- The server is a shell box or other general user-facing host
- The server is an owned hardware server that is expected to have a long service life with various major hardware changes/upgrades.
There are currently two established naming schemes:
- VPSes from commercial cloud providers: cloud types and related weather phenomena
- Anything else: plant species, with the first few letters matching the purpose of the server
If using such a name:
- For VMs, these should be the exception and not the norm.
- A single name may never ever ever be assigned to two different hosts at once.
Role-based names
The general role-based service name scheme is: roleNN
, where NN is a zero
padded rolling number starting from 1. For example, a postgres node could be
pg03
.
Sometimes it's useful to include location/cluster information in the hostname.
In this case, that should be included after the basic role information. For
example, a Ganeti node in Hetzner's Helsinki DC could be gnt-hetzner-hel01
.
If a word separator is needed, a dash (-
) is used.