Ejemplos de scripts de Terraform para aprovisionamiento de recursos
Utilice scripts de Terraform para aprovisionar recursos en Fleet Application Management.
En el siguiente paquete de ejemplo:
- instance_compartment_id: especifica el compartimento, donde se inicia la instancia de Compute.
- subnet_id: especifica una subred de la VCN. Consulte Gestión de VCN y subred.
- display_name: especifica un nombre mostrado de la instancia.
- availability_domain: especifica un dominio en el que colocar la instancia informática. Para obtener los nombres específicos de los dominios de disponibilidad de su arrendamiento, ejecute la operación ListAvailabilityDomains o busque los nombres de dominio de disponibilidad al crear una instancia mediante la consola.
variables.tf
Este archivo crea varias variables que se utilizan para aprovisionar recursos. Define las variables que se utilizan en la configuración de 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
Este archivo contiene el código de Terraform para aprovisionar recursos en 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
Este archivo proporciona los valores para las variables definidas en variables.tf
. Puede personalizar este archivo con sus credenciales de OCI reales, el OCID del compartimento, el dominio de disponibilidad, la unidad de instancia o cualquier etiqueta de formato libre que desee aplicar a los 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"
}