75 lines
6.6 KiB
HCL
75 lines
6.6 KiB
HCL
terraform {
|
|
required_providers {
|
|
ovh = {
|
|
source = "ovh/ovh"
|
|
version = "2.3.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "ovh" {
|
|
endpoint = "ovh-eu"
|
|
}
|
|
|
|
variable "local_project_id" {
|
|
type = string
|
|
default = "120c57d6e2b34042b4090c0172d9b58a"
|
|
}
|
|
|
|
variable "local_region" {
|
|
type = string
|
|
default = "SBG5"
|
|
}
|
|
|
|
# The flavor can be selected directly, name_filter in DS does strict equality
|
|
data "ovh_cloud_project_flavors" "flavors" {
|
|
service_name = var.local_project_id
|
|
name_filter = "b2-15"
|
|
region = var.local_region
|
|
}
|
|
|
|
# The image must be selected from its region based list using name filtering
|
|
data "ovh_cloud_project_images" "image" {
|
|
service_name = var.local_project_id
|
|
region = var.local_region
|
|
}
|
|
|
|
locals {
|
|
selected_image = one([
|
|
for m in data.ovh_cloud_project_images.image.images : m if m.name == "Ubuntu 22.04"
|
|
])
|
|
selected_flavor = one(data.ovh_cloud_project_flavors.flavors.flavors)
|
|
}
|
|
|
|
resource "ovh_cloud_project_instance" "simpl_vm" {
|
|
service_name = var.local_project_id
|
|
region = var.local_region
|
|
billing_period = "hourly"
|
|
|
|
boot_from {
|
|
image_id = local.selected_image.id
|
|
}
|
|
|
|
flavor {
|
|
flavor_id = local.selected_flavor.id
|
|
}
|
|
|
|
name = "offering-enterprise-server-19-terraform"
|
|
|
|
ssh_key_create {
|
|
name = "default-user-key-uatdemo"
|
|
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCWIeFVs0d67BkvqZgWIGSTgySzkaGggoQ2E7pyo887JJPBdrxAqDzDZhoT5DJXksziWLAz8BR1HWHMCUOSGVcmVtkHvAHHqg/kaDzwYMSM6+1NsdImAL35IGCijkfw70YsGcpdAwBXgQapk+RpUo2Dab7LjILRjAiPMhMCNsu4VKCJmfOOYsygvOF5u8xXFjaPKcEPOXzB3ijKCGaJ/0zXBR6U2K35WyyTskw68B0VyD/yFsfS+SiemKVPXcrL9j2XMDwLMdMhiZtprevttcyqX5314J0rEuJHOTU+FqC4rLSkZA2hMTXwzwcAXH8EhBmaixsxVGe6NYCbVVjMrEzafF/0H3chl3kosjwLiy0B8xlPOTV+R3hv3AhcGlXtMEgTFmr07eOz1hVyb1FtRMerFAHSIYLjz/FY5+cbsjUO4xdpNcr9T1yeq9D8CLJ9mWICkF11jvTBiBE5jgiDLBtUfiXypeCyz33W9jRRgltxgaaVCU1KS8cR5PoZgG+JsBk="
|
|
}
|
|
|
|
network {
|
|
public = true
|
|
}
|
|
|
|
user_data = "I2Nsb3VkLWNvbmZpZwojY2xvdWQtY29uZmlnCmhvc3RuYW1lOiBhcHAtc2VydmVyCm1hbmFnZV9ldGNfaG9zdHM6IHRydWUKIApwYWNrYWdlX3VwZGF0ZTogdHJ1ZQpwYWNrYWdlX3VwZ3JhZGU6IHRydWUKCnBhY2thZ2VzOgogIC0gcHl0aG9uMwogIC0gcHl0aG9uMy1waXAKICAtIHB5dGhvbjMtdmVudgogIC0gYnVpbGQtZXNzZW50aWFsCiAgLSBsaWJzc2wtZGV2CiAgLSBsaWJmZmktZGV2CiAgLSBweXRob24zLWRldgogIC0gbGlic3FsaXRlMy1kZXYKICAtIGxpYnBxLWRldgogIC0gc3FsaXRlMwogIC0gczNmcwogCndyaXRlX2ZpbGVzOgogIC0gcGF0aDogL2V0Yy9wYXNzd2QtczNmcwogICAgcGVybWlzc2lvbnM6ICcwNDAwJwogICAgY29udGVudDogfAogICAgICA3NDZjMGM5YWE4MzBjZWM1ZmFjNDpDYXp2UFRzQjlOSmwwclRneWJqZ003dFQ0WWRwbENBd3M2clZseXRDCiAgIyBTeXN0ZW1kIHNlcnZpY2UgZm9yIFN1cGVyc2V0CiAgLSBwYXRoOiAvZXRjL3N5c3RlbWQvc3lzdGVtL3N1cGVyc2V0LnNlcnZpY2UKICAgIHBlcm1pc3Npb25zOiAnMDY0NCcKICAgIGNvbnRlbnQ6IHwKICAgICAgW1VuaXRdCiAgICAgIERlc2NyaXB0aW9uPUFwYWNoZSBTdXBlcnNldAogICAgICBBZnRlcj1uZXR3b3JrLnRhcmdldAogCiAgICAgIFtTZXJ2aWNlXQogICAgICBVc2VyPXJvb3QKICAgICAgR3JvdXA9cm9vdAogICAgICBFbnZpcm9ubWVudD1GTEFTS19BUFA9c3VwZXJzZXQKICAgICAgRW52aXJvbm1lbnQ9U1VQRVJTRVRfQ09ORklHX1BBVEg9L2hvbWUvdWJ1bnR1L3N1cGVyc2V0L3N1cGVyc2V0X2NvbmZpZy5weQogICAgICBXb3JraW5nRGlyZWN0b3J5PS9ob21lL3VidW50dS9zdXBlcnNldAogICAgICAjRXhlY1N0YXJ0PS9ob21lL3VidW50dS9zdXBlcnNldC9iaW4vZ3VuaWNvcm4gLS13b3JrZXJzIDMgLS10aW1lb3V0IDEyMCAtYiAwLjAuMC4wOjgwODggInN1cGVyc2V0LmFwcDpjcmVhdGVfYXBwKCkiCiAgICAgIEV4ZWNTdGFydD0vaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL3N1cGVyc2V0IHJ1biAtaCAwLjAuMC4wIC1wIDgwODggLS13aXRoLXRocmVhZHMgLS1yZWxvYWQgLS1kZWJ1Z2dlcgogICAgICBSZXN0YXJ0PWFsd2F5cwogCiAgICAgIFtJbnN0YWxsXQogICAgICBXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAogIC0gcGF0aDogL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L3N1cGVyc2V0X2NvbmZpZy5weQogICAgcGVybWlzc2lvbnM6ICcwNjQ0JwogICAgY29udGVudDogfAogICAgICBpbXBvcnQgb3MKICAgICAgZnJvbSBjYWNoZWxpYi5maWxlIGltcG9ydCBGaWxlU3lzdGVtQ2FjaGUKIAogICAgICAjIEEgcmFuZG9tLCBjb21wbGV4IHNlY3JldCBrZXkgZm9yIENTUkYgYW5kIHNlc3Npb24gY29va2llcwogICAgICBTRUNSRVRfS0VZID0gInIrVXBGK09HNzJKTHFsUjhyd1RKTkdrZWo3TW5JVm51Z2VjeXlRWG11SXYvd3drakJFamJUQTN5IgogICAgICBTUUxBTENIRU1ZX0RBVEFCQVNFX1VSSSA9ICdzcWxpdGU6Ly8vL3Zhci9saWIvc3VwZXJzZXQvc3VwZXJzZXQuZGInCiAKICAgICAgIyBPcHRpb25hbDogQ2FjaGUgY29uZmlndXJhdGlvbgogICAgICBDQUNIRV9DT05GSUcgPSB7CiAgICAgICAgICAnQ0FDSEVfVFlQRSc6ICdGaWxlU3lzdGVtQ2FjaGUnLAogICAgICAgICAgJ0NBQ0hFX0RJUic6ICcvaG9tZS91YnVudHUvc3VwZXJzZXQvY2FjaGUnLAogICAgICB9CiAgICAgIFBSRVZFTlRfVU5TQUZFX0RCX0NPTk5FQ1RJT05TID0gRmFsc2UKIApydW5jbWQ6CiAgLSBta2RpciAtcCAvbW50L3MzYnVja2V0CiAgLSBjaG1vZCAwNzAwIC9tbnQvczNidWNrZXQKICAtIGVjaG8gInMzZnMjcHJvdmlkZXItZGF0YXNldCAvbW50L3MzYnVja2V0IGZ1c2UgbmV0ZGV2LGFsbG93b3RoZXIsdXNlX3BhdGhfcmVxdWVzdF9zdHlsZSx1cmw9aHR0cHM6Ly9zMy1ldS1jZW50cmFsLTIuaW9ub3NjbG91ZC5jb20gMCAwIiA+PiAvZXRjL2ZzdGFiCiAgLSBzM2ZzIHByb3ZpZGVyLWRhdGFzZXQgL21udC9zM2J1Y2tldCAtbyBwYXNzd2RfZmlsZT0vZXRjL3Bhc3N3ZC1zM2ZzIC1vIHVybD1odHRwczovL3MzLWV1LWNlbnRyYWwtMi5pb25vc2Nsb3VkLmNvbSAtbyB1c2VfcGF0aF9yZXF1ZXN0X3N0eWxlIC1vIGFsbG93X290aGVyCiAgIyBTdXBlcnNldCBzZXR1cAogIC0gc3VkbyBta2RpciAvaG9tZS91YnVudHUvLnN1cGVyc2V0CiAgLSBzdWRvIGNob3duIC1SIHVidW50dTp1YnVudHUgL2hvbWUvdWJ1bnR1Ly5zdXBlcnNldAogIC0gY2htb2QgLVIgNzU1IC9ob21lL3VidW50dS8uc3VwZXJzZXQKICAtIHN1ZG8gbWtkaXIgL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2NhY2hlCiAgLSBzdWRvIGNob3duIC1SIHVidW50dTp1YnVudHUgL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2NhY2hlCiAgLSBjaG1vZCAtUiA3NTUgL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2NhY2hlCiAKICAtIHB5dGhvbjMgLW0gdmVudiAvaG9tZS91YnVudHUvc3VwZXJzZXQKICAtIC9ob21lL3VidW50dS9zdXBlcnNldC9iaW4vcGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcCBzZXR1cHRvb2xzIHdoZWVsCiAgLSAvaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL3BpcCBpbnN0YWxsIG1hcnNobWFsbG93PT0zLjI2LjEKICAtIC9ob21lL3VidW50dS9zdXBlcnNldC9iaW4vcGlwIGluc3RhbGwgYXBhY2hlLXN1cGVyc2V0CiAgLSBta2RpciAtcCAvdmFyL2xpYi9zdXBlcnNldAogCiAgIyBTdGVwIDM6IEluaXRpYWxpemUgU3VwZXJzZXQKICAtIGV4cG9ydCBGTEFTS19BUFA9c3VwZXJzZXQKICAtIGV4cG9ydCBTVVBFUlNFVF9DT05GSUdfUEFUSD0vaG9tZS91YnVudHUvc3VwZXJzZXQvc3VwZXJzZXRfY29uZmlnLnB5CiAgLSAvaG9tZS91YnVudHUvc3VwZXJzZXQvYmluL3N1cGVyc2V0IGRiIHVwZ3JhZGUKICAtIC9ob21lL3VidW50dS9zdXBlcnNldC9iaW4vc3VwZXJzZXQgZmFiIGNyZWF0ZS1hZG1pbiAtLXVzZXJuYW1lIGFkbWluIC0tZmlyc3RuYW1lIFN1cGVyc2V0IC0tbGFzdG5hbWUgQWRtaW4gLS1lbWFpbCBhZG1pbkBleGFtcGxlLmNvbSAtLXBhc3N3b3JkIGFkbWluCiAgLSBzcWxpdGUzIC9yb290Ly5zdXBlcnNldC9leGFtcGxlcy5kYiA8IC9tbnQvczNidWNrZXQvY292aWRfZGF0YS5zcWwKICAtIC9ob21lL3VidW50dS9zdXBlcnNldC9iaW4vc3VwZXJzZXQgaW5pdAogIC0gL2hvbWUvdWJ1bnR1L3N1cGVyc2V0L2Jpbi9zdXBlcnNldCBpbXBvcnQtZGFzaGJvYXJkcyAtcCAvbW50L3MzYnVja2V0L2Rhc2hib2FyZF9jb3ZpZC56aXAgLXUgYWRtaW4KICAtIGNob3duIC1SIHVidW50dTp1YnVudHUgL3Zhci9saWIvc3VwZXJzZXQKIAogICMgU3RlcCA1OiBFbmFibGUgYW5kIHN0YXJ0IHRoZSBTdXBlcnNldCBzZXJ2aWNlCiAgLSBzeXN0ZW1jdGwgZGFlbW9uLXJlbG9hZAogIC0gc3lzdGVtY3RsIGVuYWJsZSBzdXBlcnNldAogIC0gc3lzdGVtY3RsIHN0YXJ0IHN1cGVyc2V0CgogIC0gdWZ3IGFsbG93IDIyCiAgLSB1ZncgYWxsb3cgNDQzCiAgLSB1ZncgYWxsb3cgODA4OApmaW5hbF9tZXNzYWdlOiAiVUZXIFVwZGF0ZWQi"
|
|
}
|
|
|
|
output "vmIps" {
|
|
depends_on = [ovh_cloud_project_instance.simpl_vm]
|
|
value = tolist(ovh_cloud_project_instance.simpl_vm.addresses[*].ip)
|
|
}
|