Compartir a través de


Ejemplos de Terraform/OpenTofu para Oracle Database@Azure

Terraform by HashiCorp se puede usar para aprovisionar y administrar recursos para Oracle Database@Azure. Terraform ofrece el proveedor de AzAPI como herramienta para aprovisionar y administrar una infraestructura en Oracle Cloud Infrastructure (OCI).

Para más información sobre las implementaciones de referencia para los módulos Terraform u OpenTofu, consulte los siguientes recursos:

Nota:

En este artículo encontrará código de ejemplo para demostrar el aprovisionamiento y la administración de recursos de Oracle Database@Azure mediante el proveedor de Terraform AzAPI. Para obtener información detallada sobre los recursos del proveedor de AzAPI y la documentación de orígenes de datos, consulte Proveedor de AzAPI en el registro de Terraform.

En los ejemplos se usan valores de ejemplo para ilustrar cada caso. Reemplace los valores de ejemplo de los marcadores de posición por los valores del escenario.

En los ejemplos se usan propiedades dinámicas de AzAPI, en lugar de JSONEncode para obtener un comportamiento más nativo de Terraform.

Creación de una subred delegada para Oracle Database@Azure

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"]
 
        }
      }]
    }
  }
}

Creación de una instancia de Oracle Exadata Database@Azure

{
  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"]
}