Esempi di Terraform/OpenTofu per i servizi Autonomous Database per Azure
Utilizzando HashiCorp Terraform, puoi eseguire il provisioning e gestire le risorse per Oracle Database@Azure utilizzando lo strumento Terraform che consente di eseguire il provisioning e gestire l'infrastruttura in Oracle Cloud Infrastructure (OCI).
Per ulteriori informazioni sulle implementazioni di riferimento per i moduli Terraform o OpenTofu, vedere i seguenti collegamenti:
Nota
- Questo documento descrive esempi di provisioning e gestione delle risorse Oracle Database@Azure tramite due (2) provider Terraform,
AzureRM
eAzAPI
. Controllare l'esempio in uso per l'API appropriata.- Per la documentazione dettagliata sul provider
AzureRM
e sull'origine dati, vedere https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs - Per la documentazione dettagliata sul provider
AzAPI
e sull'origine dati, vedere https://registry.terraform.io/providers/Azure/azapi/latest/docs
- Per la documentazione dettagliata sul provider
- I campioni utilizzano valori di esempio a scopo illustrativo. È necessario sostituirli con impostazioni personalizzate.
- Gli esempi
AzAPI
utilizzano le proprietà dinamiche AzAPI anzichéJSONEncode
per un comportamento Terraform più nativo.
Oracle Autonomous Database Services
Crea una Oracle Autonomous Database utilizzando
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
]
}
}
Recupera un Oracle Autonomous Database utilizzando
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
}
Recupera un set di caratteri di Oracle Autonomous Database utilizzando
AzureRM
data "azurerm_oracle_adbs_character_sets" "example" {
location = "eastus"
}
Recupera un set di caratteri nazionale di Oracle Autonomous Database utilizzando
AzureRM
data "azurerm_oracle_adbs_national_character_sets" "example" {
location = "eastus"
}
Crea subnet delegata per Oracle Database@Azure utilizzando
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"]
}
}]
}
}
}
Crea una Oracle Autonomous Database utilizzando
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"]
}