Giving your servers fun pet names with Terraform
You are probably aware that that Terraform have a random number module that works like this:
resource "random_integer" "server-id" {
min = 100
max = 999
}
However, this isn’t very helpful as is, because it would regenerate new numbers after each Terraform run.
You can introduce a “keepers”-stanza that makes the random number dependent on the input, it works like this:
resource "random_integer" "server-id" {
min = 100
max = 999
keepers = {
image = data.digitalocean_images.server-images.images.0.image
}
}
So now Terraform will only change the number when data.digitalocean_images.server-images.images.0.image
changes, very handy!
So what about those pet names then?! #
The random2-module provides us with a random_pet
-resource that works like this:
resource "random_pet" "server-pet" {
length = 2
keepers = {
image = data.digitalocean_images.server-images.images.0.image
}
}
And it can be used like this:
resource "digitalocean_droplet" "server" {
name = "server-${random_pet.server-pet.id}${random_integer.server-id.result}"
Examples on some fun names I’ve had:
- peaceful-fowl
- modest-kite
- open-scorpion
- joint-dove
- pet-dane
- outgoing-elf
- exciting-snail
- ideal-griffon
- resolved-finch
- pumped-chipmunk
- cuddly-elephant