Example using file inclusion and templating

Code

terraform {
  required_providers {
    scaleway = {
      source  = "scaleway/scaleway"
      version = "2.1.0"
    }
  }
}

provider "scaleway" {
  region = "fr-par"
}

data "scaleway_marketplace_image" "example06" {
  instance_type = "DEV1-S"
  label         = "ubuntu_focal"
}

resource "scaleway_instance_server" "example06" {
  name              = "example06"
  image             = data.scaleway_marketplace_image.example06.id
  type              = "DEV1-S"
  enable_ipv6       = true
  enable_dynamic_ip = true

  cloud_init = data.template_file.cloud_init_script.rendered
}

data "template_file" "cloud_init_script" {
  template = file("cloud-init.yml")

  vars = {
    msg = "Groovy Baby"
  }
}

output "ipv4" {
  value = scaleway_instance_server.example06.public_ip
}

How to use?

terraform init
terraform plan
terraform apply
terraform destroy

This example use cloud-init. cloud-init run concurrently with other process when the instance boots.