Ejemplos de Terraform/OpenTofu para Autonomous Database Services for Azure

Con HashiCorp Terraform, puede aprovisionar y gestionar recursos para Oracle Database@Azure mediante la herramienta Terraform que permite aprovisionar y gestionar infraestructura en Oracle Cloud Infrastructure (OCI).

Para obtener más información sobre implantaciones de referencia para módulos Terraform o OpenTofu, consulte los siguientes enlaces:
Nota

  • En este documento se describen ejemplos de aprovisionamiento y gestión de recursos de Oracle Database@Azure a través de dos (2) proveedores de Terraform, AzureRM y AzAPI. Compruebe el ejemplo que está utilizando para la API adecuada.
  • Las muestras utilizan valores de ejemplo con fines ilustrativos. Debe sustituirlos por su propia configuración.
  • Los ejemplos de AzAPI utilizan Propiedades dinámicas de AzAPI en lugar de JSONEncode para obtener un comportamiento de Terraform más nativo.

Servicios de Oracle Autonomous Database

Crear una instancia de Oracle Autonomous Database mediante AzureRM
resource "azurerm_oracle_autonomous_database" "example" {
  name = "TestName"
  display_name                     = "TestName"
  resource_group_name              = azurerm_resource_group.example.name
  location                         = "eastus"
  compute_model                    = "ECPU"
  compute_count                    = "2"
  license_model                    = "BringYourOwnLicense"
  backup_retention_period_in_days  = 12
  auto_scaling_enabled             = false
  auto_scaling_for_storage_enabled = false
  mtls_connection_required         = false
  data_storage_size_in_tbs         = "1"
  db_workload                      = "OLTP"
  admin_password                   = "TestPass#2024#"
  db_version                       = "19c"
  character_set                    = "AL32UTF8"
  ncharacter_set                   = "AL16UTF16"
  subnet_id                        = azurerm_subnet.virtual_network_subnet.id
  vnet_id                          = azurerm_virtual_network.virtual_network.id
  lifecycle {
    ignore_changes = [
      admin_password
    ]
  }
}
Recuperar una instancia de Oracle Autonomous Database mediante AzureRM
data "azurerm_oracle_autonomous_database" "example" {
  name                = azurerm_oracle_autonomous_database.example.name
  resource_group_name = azurerm_oracle_autonomous_database.example.resource_group_name
}
Recuperar un juego de caracteres de Oracle Autonomous Database mediante AzureRM
data "azurerm_oracle_adbs_character_sets" "example" {
  location = "eastus"
}
Recuperar un juego de caracteres nacional de Oracle Autonomous Database mediante AzureRM
data "azurerm_oracle_adbs_national_character_sets" "example" {
  location = "eastus"
}
Cree una subred delegada para Oracle Database@Azure mediante AzAPI
resource "azurerm_resource_group" "resource_group" {
  location = "eastus"
  name     = "ExampleRG"
}
 
 
module "avm_odbas_network" {
  source  = "Azure/avm-res-network-virtualnetwork/azurerm"
  version = "0.2.4"
 
  address_space       = ["10.1.0.0/16"]
  location            = "eastus"
  name                = "vnet"
  resource_group_name = azurerm_resource_group.resource_group.name
 
  subnets = {
    delegated = {
      name             = delegated
      address_prefixes = ["10.1.1.0/24"]
 
      delegation = [{
        name = "Oracle.Database/networkAttachments"
        service_delegation = {
          name    = "Oracle.Database/networkAttachments"
          actions = ["Microsoft.Network/networkinterfaces/*", "Microsoft.Network/virtualNetworks/subnets/join/action"]
 
        }
      }]
    }
  }
}
Crear una instancia de Oracle Autonomous Database mediante AzAPI
terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}
 
data "azurerm_resource_group" "resource_group" {
  name = "ExampleRG"
}
 
data "azurerm_virtual_network" "virtual_network" {
  name                = "ExampleRG_vnet"
  resource_group_name = "ExampleRG"
}
 
data "azurerm_subnet" "subnet" {
  name                 = "delegated"
  virtual_network_name = "ExampleRG_vnet"
  resource_group_name  = "ExampleRG"
}
  
resource "azapi_resource" "autonomous_db" {
  type                      = "Oracle.Database/autonomousDatabases@2023-09-01"
  parent_id                 = data.azurerm_resource_group.resource_group.id
  name                      = "demodb"
  schema_validation_enabled = false
 
  timeouts {
    create = "3h"
    update = "2h"
    delete = "1h"
  }
 
  body = {
    "location" : "eastus",
    "properties" : {
      "displayName" : "demodb",
      "computeCount" : 2,
      "dataStorageSizeInTbs" : 1,
      "adminPassword" : "TestPass#2024#",
      "dbVersion" : "19c",
      "licenseModel" : "LicenseIncluded",
      "dataBaseType" : "Regular",
      "computeModel" : "ECPU",
      "dbWorkload" : "DW",
      "permissionLevel" : "Restricted",
 
      "characterSet" : "AL32UTF8",
      "ncharacterSet" : "AL16UTF16",
 
      "isAutoScalingEnabled" : true,
      "isAutoScalingForStorageEnabled" : false,
 
      "vnetId" : data.azurerm_virtual_network.virtual_network.id
      "subnetId" : data.azurerm_subnet.subnet.id
    }
  response_export_values = ["id", "properties.ocid", "properties"]
}