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:
- instance_compartment_id: Especifica o compartimento, no qual a instância do serviço Compute é iniciada.
- subnet_id: Especifica uma sub-rede na VCN. Consulte Gerenciamento de VCN e Sub-rede.
- display_name: Especifica um nome para exibição da instância.
- availability_domain: Especifica um domínio no qual colocar a instância do serviço Compute. Para obter os nomes específicos dos domínios de disponibilidade da sua tenancy, execute a operação ListAvailabilityDomains ou localize os nomes dos domínios de Disponibilidade ao criar uma instância usando a Console.
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"
}