diff --git a/cluster/multi-ad/compute.tf b/cluster/multi-ad/compute.tf index ff1f376..fcac402 100644 --- a/cluster/multi-ad/compute.tf +++ b/cluster/multi-ad/compute.tf @@ -22,7 +22,7 @@ resource "oci_core_instance" "BastionHost" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init_bastion.rendered + user_data = data.cloudinit_config.cloud_init_bastion.rendered } source_details { @@ -60,7 +60,7 @@ resource "oci_core_instance" "ESMasterNode1" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -99,7 +99,7 @@ resource "oci_core_instance" "ESMasterNode2" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -138,7 +138,7 @@ resource "oci_core_instance" "ESMasterNode3" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -177,7 +177,7 @@ resource "oci_core_instance" "ESDataNode1" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -216,7 +216,7 @@ resource "oci_core_instance" "ESDataNode2" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -255,7 +255,7 @@ resource "oci_core_instance" "ESDataNode3" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -294,7 +294,7 @@ resource "oci_core_instance" "ESDataNode4" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { diff --git a/cluster/multi-ad/datasources.tf b/cluster/multi-ad/datasources.tf index 5072af1..07800af 100644 --- a/cluster/multi-ad/datasources.tf +++ b/cluster/multi-ad/datasources.tf @@ -163,38 +163,24 @@ data "oci_identity_region_subscriptions" "home_region_subscriptions" { # This Terraform script provisions a compute instance -data "template_file" "key_script" { - template = file("./scripts/sshkey.tpl") - vars = { - ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh - } -} - -data "template_cloudinit_config" "cloud_init" { +data "cloudinit_config" "cloud_init" { gzip = true base64_encode = true part { filename = "ainit.sh" content_type = "text/x-shellscript" - content = data.template_file.key_script.rendered - } -} - -data "template_file" "key_script_bastion" { - template = file("./scripts/BastionBootStrap.sh") - vars = { - ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh + content = templatefile("${path.module}/scripts/sshkey.tpl", { ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh }) } } -data "template_cloudinit_config" "cloud_init_bastion" { +data "cloudinit_config" "cloud_init_bastion" { gzip = true base64_encode = true part { filename = "ainit.sh" content_type = "text/x-shellscript" - content = data.template_file.key_script_bastion.rendered + content = templatefile("${path.module}/scripts/BastionBootStrap.sh", { ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh }) } } \ No newline at end of file diff --git a/cluster/multi-ad/remote.tf b/cluster/multi-ad/remote.tf index 6278e00..ad9aa49 100644 --- a/cluster/multi-ad/remote.tf +++ b/cluster/multi-ad/remote.tf @@ -1,12 +1,8 @@ ## Copyright (c) 2022, Oracle and/or its affiliates. ## All rights reserved. The Universal Permissive License (UPL), Version 1.0 as shown at http://oss.oracle.com/licenses/upl -data "template_file" "setup_esbootstrap" { - depends_on = [oci_core_instance.ESMasterNode1, oci_core_instance.ESMasterNode2, oci_core_instance.ESMasterNode3, oci_core_instance.ESDataNode1, oci_core_instance.ESDataNode2, oci_core_instance.ESDataNode3, oci_core_instance.ESDataNode4] - - template = file(var.ESBootStrap) - - vars = { +locals { + esbootstrapShFile = templatefile("${path.module}/${var.ESBootStrap}", { elasticsearch_download_url = var.elasticsearch_download_url kibana_download_url = var.kibana_download_url elasticsearch_download_version = var.elasticsearch_download_version @@ -17,11 +13,11 @@ data "template_file" "setup_esbootstrap" { esmasternode1_private_ip = data.oci_core_vnic.ESMasterNode1Vnic.private_ip_address esmasternode2_private_ip = data.oci_core_vnic.ESMasterNode2Vnic.private_ip_address esmasternode3_private_ip = data.oci_core_vnic.ESMasterNode3Vnic.private_ip_address - esdatanode1_private_ip = data.oci_core_vnic.ESDataNode1Vnic.private_ip_address + esdatanode1_private_ip = data.oci_core_vnic.ESDataNode1Vnic.private_ip_address esdatanode2_private_ip = data.oci_core_vnic.ESDataNode2Vnic.private_ip_address esdatanode3_private_ip = data.oci_core_vnic.ESDataNode3Vnic.private_ip_address esdatanode4_private_ip = data.oci_core_vnic.ESDataNode4Vnic.private_ip_address - } + }) } resource "null_resource" "ESMasterNode1_BootStrap" { @@ -42,8 +38,8 @@ resource "null_resource" "ESMasterNode1_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -84,8 +80,8 @@ resource "null_resource" "ESMasterNode2_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -126,8 +122,8 @@ resource "null_resource" "ESMasterNode3_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -168,8 +164,8 @@ resource "null_resource" "ESDataNode1_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -210,8 +206,8 @@ resource "null_resource" "ESDataNode2_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -252,8 +248,8 @@ resource "null_resource" "ESDataNode3_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -294,8 +290,8 @@ resource "null_resource" "ESDataNode4_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -316,4 +312,4 @@ resource "null_resource" "ESDataNode4_BootStrap" { "sudo ~/esbootstrap.sh", ] } -} \ No newline at end of file +} diff --git a/cluster/single-ad/compute.tf b/cluster/single-ad/compute.tf index 2b4ed2c..13804e5 100644 --- a/cluster/single-ad/compute.tf +++ b/cluster/single-ad/compute.tf @@ -24,7 +24,7 @@ resource "oci_core_instance" "BastionHost" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init_bastion.rendered + user_data = data.cloudinit_config.cloud_init_bastion.rendered } source_details { @@ -61,7 +61,7 @@ resource "oci_core_instance" "ESMasterNode1" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -99,7 +99,7 @@ resource "oci_core_instance" "ESMasterNode2" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -137,7 +137,7 @@ resource "oci_core_instance" "ESMasterNode3" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -175,7 +175,7 @@ resource "oci_core_instance" "ESDataNode1" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -215,7 +215,7 @@ resource "oci_core_instance" "ESDataNode2" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { @@ -255,7 +255,7 @@ resource "oci_core_instance" "ESDataNode3" { metadata = { ssh_authorized_keys = var.ssh_public_key - user_data = data.template_cloudinit_config.cloud_init.rendered + user_data = data.cloudinit_config.cloud_init.rendered } source_details { diff --git a/cluster/single-ad/datasources.tf b/cluster/single-ad/datasources.tf index d8e4261..0cbe15c 100644 --- a/cluster/single-ad/datasources.tf +++ b/cluster/single-ad/datasources.tf @@ -158,39 +158,25 @@ data "oci_identity_region_subscriptions" "home_region_subscriptions" { # This Terraform script provisions a compute instance -data "template_file" "key_script" { - template = file("./scripts/sshkey.tpl") - vars = { - ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh - } -} - -data "template_cloudinit_config" "cloud_init" { +data "cloudinit_config" "cloud_init" { gzip = true base64_encode = true part { filename = "ainit.sh" content_type = "text/x-shellscript" - content = data.template_file.key_script.rendered + content = templatefile("${path.module}/scripts/sshkey.tpl", { ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh }) } } -data "template_file" "key_script_bastion" { - template = file("./scripts/BastionBootStrap.sh") - vars = { - ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh - } -} - -data "template_cloudinit_config" "cloud_init_bastion" { +data "cloudinit_config" "cloud_init_bastion" { gzip = true base64_encode = true part { filename = "ainit.sh" content_type = "text/x-shellscript" - content = data.template_file.key_script_bastion.rendered + content = templatefile("${path.module}/scripts/BastionBootStrap.sh", { ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh }) } } diff --git a/cluster/single-ad/remote.tf b/cluster/single-ad/remote.tf index 92ed82c..f9360f4 100644 --- a/cluster/single-ad/remote.tf +++ b/cluster/single-ad/remote.tf @@ -1,13 +1,8 @@ ## Copyright (c) 2022, Oracle and/or its affiliates. ## All rights reserved. The Universal Permissive License (UPL), Version 1.0 as shown at http://oss.oracle.com/licenses/upl - -data "template_file" "setup_esbootstrap" { - depends_on = [oci_core_instance.ESMasterNode1, oci_core_instance.ESMasterNode2, oci_core_instance.ESMasterNode3, oci_core_instance.ESDataNode1, oci_core_instance.ESDataNode2, oci_core_instance.ESDataNode3] - - template = file(var.ESBootStrap) - - vars = { +locals { + esbootstrapShFile = templatefile("${path.module}/${var.ESBootStrap}", { elasticsearch_download_url = var.elasticsearch_download_url kibana_download_url = var.kibana_download_url elasticsearch_download_version = var.elasticsearch_download_version @@ -18,14 +13,14 @@ data "template_file" "setup_esbootstrap" { esmasternode1_private_ip = data.oci_core_vnic.ESMasterNode1Vnic.private_ip_address esmasternode2_private_ip = data.oci_core_vnic.ESMasterNode2Vnic.private_ip_address esmasternode3_private_ip = data.oci_core_vnic.ESMasterNode3Vnic.private_ip_address - esdatanode1_private_ip = data.oci_core_vnic.ESDataNode1Vnic.private_ip_address + esdatanode1_private_ip = data.oci_core_vnic.ESDataNode1Vnic.private_ip_address esdatanode2_private_ip = data.oci_core_vnic.ESDataNode2Vnic.private_ip_address esdatanode3_private_ip = data.oci_core_vnic.ESDataNode3Vnic.private_ip_address - } + }) } resource "null_resource" "ESMasterNode1_BootStrap" { - depends_on = [oci_core_instance.BastionHost, oci_core_instance.ESMasterNode1, oci_core_instance.ESMasterNode2, oci_core_instance.ESMasterNode3, oci_core_instance.ESDataNode1, oci_core_instance.ESDataNode2, oci_core_instance.ESDataNode3] +depends_on = [oci_core_instance.BastionHost, oci_core_instance.ESMasterNode1, oci_core_instance.ESMasterNode2, oci_core_instance.ESMasterNode3, oci_core_instance.ESDataNode1, oci_core_instance.ESDataNode2, oci_core_instance.ESDataNode3] provisioner "file" { connection { @@ -42,8 +37,8 @@ resource "null_resource" "ESMasterNode1_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -84,8 +79,8 @@ resource "null_resource" "ESMasterNode2_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -126,8 +121,8 @@ resource "null_resource" "ESMasterNode3_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -168,8 +163,8 @@ resource "null_resource" "ESDataNode1_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -210,8 +205,8 @@ resource "null_resource" "ESDataNode2_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { @@ -252,8 +247,8 @@ resource "null_resource" "ESDataNode3_BootStrap" { bastion_private_key = tls_private_key.public_private_key_pair.private_key_pem } - content = data.template_file.setup_esbootstrap.rendered - destination = "~/esbootstrap.sh" + content = local.esbootstrapShFile + destination = "/home/opc/esbootstrap.sh" } provisioner "remote-exec" { connection { diff --git a/simple/compute.tf b/simple/compute.tf index fc66d43..81a6bb1 100644 --- a/simple/compute.tf +++ b/simple/compute.tf @@ -1,23 +1,6 @@ ## Copyright (c) 2022, Oracle and/or its affiliates. ## All rights reserved. The Universal Permissive License (UPL), Version 1.0 as shown at http://oss.oracle.com/licenses/upl -data "template_file" "ELK" { - template = file("./scripts/elk.sh") - - vars = { - elasticsearch_download_url = var.elasticsearch_download_url - kibana_download_url = var.kibana_download_url - logstash_download_url = var.logstash_download_url - elasticsearch_download_version = var.elasticsearch_download_version - kibana_download_version = var.kibana_download_version - logstash_download_version = var.logstash_download_version - KibanaPort = var.KibanaPort - ESDataPort = var.ESDataPort - ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh - } - -} - resource "oci_core_instance" "ELK" { availability_domain = var.availability_domain_name == "" ? data.oci_identity_availability_domains.ADs.availability_domains[var.availability_domain_number]["name"] : var.availability_domain_name compartment_id = var.compartment_ocid @@ -46,7 +29,17 @@ resource "oci_core_instance" "ELK" { metadata = { ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh - user_data = base64encode(data.template_file.ELK.rendered) + user_data = base64encode(templatefile("${path.module}/scripts/elk.sh", { + elasticsearch_download_url = var.elasticsearch_download_url + kibana_download_url = var.kibana_download_url + logstash_download_url = var.logstash_download_url + elasticsearch_download_version = var.elasticsearch_download_version + kibana_download_version = var.kibana_download_version + logstash_download_version = var.logstash_download_version + KibanaPort = var.KibanaPort + ESDataPort = var.ESDataPort + ssh_public_key = tls_private_key.public_private_key_pair.public_key_openssh + })) } defined_tags = {"${oci_identity_tag_namespace.ArchitectureCenterTagNamespace.name}.${oci_identity_tag.ArchitectureCenterTag.name}" = var.release }