Amostra de Scripts do Terraform para Provisionamento de Recursos

Use scripts do Terraform para provisionar recursos no Fleet Application Management.

No seguinte pacote de amostra:

variables.tf

Esse arquivo cria várias variáveis que são usadas para provisionar recursos. Define as variáveis que são usadas na configuração do Terraform.

variable "compartment_id" {
  type        = string
  description = "OCID of compartment for Compute Instance"
}

variable "subnet_id" {
  type        = string
  description = "OCID of the subnet for Compute Instance"
}

variable "display_name" {
  type        = string
  description = "Display Name Of Compute Instance"
  default = "Test Instance"
}

variable "availability_domain" {
  type = string
  description = "Region based Availability Domain to place the Compute Instance"
}

variable "image_id" {
  type        = string
  description = "Image Id"
}

main.tf

Esse arquivo contém o código do Terraform para provisionar recursos no OCI.

provider "oci" {}

resource "oci_core_instance" "generated_oci_core_instance" {

	agent_config {
		is_management_disabled = "false"
		is_monitoring_disabled = "false"
		plugins_config {
			desired_state = "DISABLED"
			name = "WebLogic Management Service"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Vulnerability Scanning"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Oracle Java Management Service"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "OS Management Service Agent"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "OS Management Hub Agent"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Management Agent"
		}
		plugins_config {
			desired_state = "ENABLED"
			name = "Custom Logs Monitoring"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Compute RDMA GPU Monitoring"
		}
		plugins_config {
			desired_state = "ENABLED"
			name = "Compute Instance Run Command"
		}
		plugins_config {
			desired_state = "ENABLED"
			name = "Compute Instance Monitoring"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Compute HPC RDMA Auto-Configuration"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Compute HPC RDMA Authentication"
		}
		plugins_config {
			desired_state = "ENABLED"
			name = "Cloud Guard Workload Protection"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Block Volume Management"
		}
		plugins_config {
			desired_state = "DISABLED"
			name = "Bastion"
		}
	}
	availability_config {
		is_live_migration_preferred = "true"
		recovery_action = "RESTORE_INSTANCE"
	}
	availability_domain = "${var.availability_domain}"
	compartment_id = "${var.instance_compartment_id}" 
	create_vnic_details {
		assign_ipv6ip = "false"
		assign_private_dns_record = "true"
		assign_public_ip = "true"
		subnet_id = "${var.subnet_id}" 
	}
	display_name = "${var.display_name}" 
	instance_options {
		are_legacy_imds_endpoints_disabled = "false"
	}

	// Oracle Linux 8 image source
	source_details {
		source_id = "ocid1.image.oc1..<unique_id>" 
		source_type = "image"
	}

	shape = "VM.Standard.A1.Flex"
	shape_config {
		memory_in_gbs = "6"
		ocpus = "1"
	}
}
# Get the latest Oracle Linux image
data "oci_core_images" "InstanceImageOCID" {
  compartment_id           = "${var.compartment_id}"
  operating_system         = "Oracle Linux"
  operating_system_version = "8"
  shape                    = "VM.Standard.A1.Flex"

  filter {
    name   = "display_name"
    values = ["^.*Oracle[^G]*$"]
    regex  = true
  }
}

conf.json

Esse arquivo fornece os valores para as variáveis definidas no variables.tf. Você pode personalizar esse arquivo com suas credenciais reais do OCI, OCID do compartimento, Domínio de disponibilidade, forma da instância ou qualquer tag de formato livre que deseja aplicar aos recursos.

{
    "compartment_id": "ocid1.compartment.oc1..{my_compartment}",
    "subnet_id": "ocid1.subnet.oc1.iad.{my_subnet}",
    "display_name": "Test Instance",
    "availability_domain":"cCnw:US-ASHBURN-AD-1",	
    "image_id": "ami-0c55b159cbfafe1f0"
}