variable "do_token" {} variable "floating_ip" {} provider "digitalocean" { token = "${var.do_token}" version = "~> 1.1" } resource "digitalocean_ssh_key" "client" { name = "terraform-vps-client" public_key = "${file("${path.module}/secrets/ssh/vps-box-client.pub")}" } resource "digitalocean_droplet" "vps" { image = "ubuntu-18-04-x64" name = "sovereignty" region = "nyc3" size = "s-1vcpu-1gb" backups = true ipv6 = true monitoring = true user_data = "${file("${path.module}/user-data.sh")}" ssh_keys = [ "${digitalocean_ssh_key.client.fingerprint}", ] connection { user = "root" type = "ssh" private_key = "${file("${path.module}/secrets/ssh/vps-box-client")}" timeout = "2m" } provisioner "remote-exec" { inline = ["echo 'SSH is up! Noop remote-exec is done.'"] } } resource "digitalocean_floating_ip_assignment" "vps" { ip_address = "${var.floating_ip}" droplet_id = "${digitalocean_droplet.vps.id}" }