Exemples de scripts Terraform pour le provisionnement des ressources
Utilisez des scripts Terraform pour provisionner des ressources dans Fleet Application Management.
Dans l'exemple de package suivant :
- instance_compartment_id : indique le compartiment dans lequel l'instance Compute démarre.
- subnet_id : indique un sous-réseau dans le VCN. Reportez-vous à la section VCN and Subnet Management.
- display_name : indique le nom d'affichage de l'instance.
- availability_domain : indique le domaine dans lequel placer l'instance Compute. Pour obtenir les noms spécifiques des domaines de disponibilité de votre location, exécutez l'opération ListAvailabilityDomains ou recherchez les noms de domaine de disponibilité lors de la création d'une instance à l'aide de la console.
variables.tf
Ce fichier crée plusieurs variables utilisées pour provisionner des ressources. Elle définit les variables utilisées dans la configuration 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
Ce fichier contient le code Terraform permettant de provisionner des ressources dans 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
Ce fichier fournit les valeurs des variables définies dans variables.tf
. Vous pouvez personnaliser ce fichier avec les informations d'identification OCI, l'OCID de compartiment, le domaine de disponibilité, la forme d'instance ou toutes les balises à format libre que vous souhaitez appliquer aux ressources.
{
"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"
}