Terraform : Oracle Cloud Infrastructure (OCI) Volume
This article describes how to create a volume and attach it to a compute instance on Oracle Cloud Infrastructure (OCI) using Terraform.
oracle miscconfigurationintermediate
by OracleDba
12 views
This article describes how to create a volume and attach it to a compute instance on Oracle Cloud Infrastructure (OCI) using Terraform.
12345
mkdir \git\oraclebase\terraform\oci\oci_volume
cd \git\oraclebase\terraform\oci\oci_volume
copy \git\oraclebase\terraform\oci\oci_provider\*.tf .
copy \git\oraclebase\terraform\oci\oci_provider\*.tfvars .1234567891011121314151617181920212223242526272829303132333435363738394041
# Variables
variable "compartment_id" { type = string }
variable "volume_display_name" { type = string }
variable "size_in_gbs" { type = number }
variable "attachment_display_name" { type = string }
variable "attachment_device" { type = string }
variable "compute_availability_domain" { type = string }
variable "compute_instance_id" { type = string }
resource "oci_core_volume" "tf_volume" {
# Required
compartment_id = var.compartment_id
# Optional
display_name = var.volume_display_name
availability_domain = data.oci_identity_availability_domains.ads.availability_domains[var.availability_domain_number].name
size_in_gbs = var.size_in_gbs
}
resource "oci_core_volume_attachment" "tf_volume_attachment" {
#Required
attachment_type = "iscsi"
instance_id = var.compute_instance_id
volume_id = oci_core_volume.tf_volume.id
#Optional
device = var.attachment_device
is_agent_auto_iscsi_login_enabled = true
display_name = var.attachment_display_name
}
# Outputs
output "volume_id" {
value = oci_core_volume.tf_volume.id
}
output "volume_attachement_id" {
value = oci_core_volume_attachment.tf_volume_attachment.id
}1234567
compartment_id = "ocid1.compartment.oc1..aaaaaaaave..."
availability_domain_number = 0
compute_instance_id = "ocid1.instance.oc1.uk-london-1.anwgiljrwam..."
volume_display_name = "website-u01-volume"
size_in_gbs = 50
attachment_display_name = "website-u01-volume-attachement"
attachment_device = "/dev/oracleoci/oraclevdb"12345
terraform init
terraform plan
terraform apply123456789101112131415161718192021222324252627282930
agent_config {
#Optional
is_management_disabled = false
plugins_config {
#Required
desired_state = "ENABLED"
name = "Block Volume Management"
}
}
# ls /dev/oracleoci/oraclevdb
/dev/oracleoci/oraclevdb
#
# Partition the disk and make a XFS file system in the partition.
echo -e "n\np\n1\n\n\nw" | fdisk /dev/oracleoci/oraclevdb
mkfs.xfs -f /dev/oracleoci/oraclevdb1
# Add it to /etc/fstab.
PARTUUID=`blkid -o export /dev/oracleoci/oraclevdb11 | grep PARTUUID`
mkdir /u01
echo "${PARTUUID} /u01 xfs defaults,_netdev,nofail 0 2" >> /etc/fstab
systemctl daemon-reload
# Mount it.
mount /u01
ExecStartPre=/bin/sleep 60
systemctl daemon-reloadPlease to add comments
No comments yet. Be the first to comment!