Terraform-Beispielskripte für das Provisioning von Ressourcen
Mit Terraform-Skripten können Sie Ressourcen in Fleet Application Management bereitstellen.
Im folgenden Beispielpaket:
- instance_compartment_id: Bestimmt das Compartment, in dem die Compute-Instanz beginnt.
- subnet_id: Gibt ein Subnetz im VCN an. Siehe VCN- und Subnetzverwaltung.
- display_name: Gibt einen Anzeigenamen der Instanz an.
- availability_domain: Gibt eine Domain an, in der die Compute-Instanz platziert werden soll. Um die spezifischen Namen der Availability-Domains Ihres Mandanten abzurufen, führen Sie den Vorgang ListAvailabilityDomains aus, oder suchen Sie die Availability-Domainnamen, wenn Sie eine Instanz erstellen mit der Konsole.
variables.tf
Diese Datei erstellt mehrere Variablen, die zum Provisioning von Ressourcen verwendet werden. Sie definiert die Variablen, die in der Terraform-Konfiguration verwendet werden.
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
Diese Datei enthält den Terraform-Code zum Provisioning von Ressourcen in 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
Diese Datei enthält die Werte für die in variables.tf
definierten Variablen. Sie können diese Datei mit Ihren tatsächlichen OCI-Zugangsdaten, Compartment-OCID, Availability-Domain, Instanzausprägung oder beliebigen Freiformtags anpassen, die Sie auf die Ressourcen anwenden möchten.
{
"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"
}