variable "token" { type = string default = "${env("DIGITALOCEAN_API_TOKEN")}" description = "DigitalOcean API token used to create droplets." } variable "image_id" { type = string default = "ubuntu-20-04-x64" description = "DigitalOcean linux image ID." } variable "victoriametrics_version" { type = string default = "${env("VM_VERSION")}" description = "Version number of the desired VictoriaMetrics binary." } variable "image_name" { type = string default = "victoriametrics-snapshot-{{timestamp}}" description = "Name of the snapshot created on DigitalOcean." } source "digitalocean" "default" { api_token = "${var.token}" image = "${var.image_id}" region = "nyc3" size = "s-1vcpu-1gb" snapshot_name = "${var.image_name}" ssh_username = "root" } build { sources = ["source.digitalocean.default"] provisioner "file" { destination = "/etc/" source = "files/etc/" } provisioner "file" { destination = "/var/" source = "files/var/" } # Setup instance configuration provisioner "shell" { environment_vars = [ "DEBIAN_FRONTEND=noninteractive" ] scripts = [ "scripts/01-setup.sh", "scripts/02-firewall.sh", ] } # Install VictoriaMetrics provisioner "shell" { environment_vars = [ "VM_VERSION=${var.victoriametrics_version}", "DEBIAN_FRONTEND=noninteractive" ] scripts = [ "scripts/04-install-victoriametrics.sh", ] } # Cleanup and validate instance provisioner "shell" { environment_vars = [ "DEBIAN_FRONTEND=noninteractive" ] scripts = [ "scripts/89-cleanup-logs.sh", "scripts/90-cleanup.sh", "scripts/99-img-check.sh" ] } }