src/terraform/modules/download_moana/main.tf (45 lines of code) (raw):
locals {
mount_path = "/bmi"
prerequisites = [
"set -x",
"sudo wget --tries=12 --wait=5 -O /tmp/azcopy.tgz https://aka.ms/downloadazcopy-v10-linux",
"sudo tar zxvf /tmp/azcopy.tgz -C /tmp",
"sudo mv $(find /tmp/. -name azcopy) /usr/bin",
"sudo rm -rf /tmp/azcopy*",
]
prepare_path = [
"sudo mkdir ${local.mount_path}",
"sudo mount ${var.nfsfiler_address}:${var.nfsfiler_export_path} ${local.mount_path}",
"sudo mkdir ${local.mount_path}/island",
]
umount_path = [
"sudo chmod -R 755 -R ${local.mount_path}/island*",
"sudo umount ${local.mount_path}",
"sudo rmdir ${local.mount_path}",
]
island_animation = var.island_animation_sas_url == "" ? [] : [
"sudo azcopy cp '${var.island_animation_sas_url}' ${local.mount_path}/island-animation-v1.1.tgz",
"sudo tar zxvf ${local.mount_path}/island-animation-v1.1.tgz -C ${local.mount_path}",
]
island_basepackage = var.island_basepackage_sas_url == "" ? [] : [
"sudo azcopy cp '${var.island_basepackage_sas_url}' ${local.mount_path}/island-basepackage-v1.1.tgz",
"sudo tar zxvf ${local.mount_path}/island-basepackage-v1.1.tgz -C ${local.mount_path}",
]
island_pbrt = var.island_pbrt_sas_url == "" ? [] : [
"sudo azcopy cp '${var.island_pbrt_sas_url}' ${local.mount_path}/island-pbrt-v1.1.tgz",
"sudo tar zxvf ${local.mount_path}/island-pbrt-v1.1.tgz -C ${local.mount_path}",
]
}
resource "null_resource" "download_moana" {
connection {
type = "ssh"
port = var.ssh_port
host = var.node_address
user = var.admin_username
password = var.ssh_key_data != null && var.ssh_key_data != "" ? "" : var.admin_password
private_key = var.ssh_key_data != null && var.ssh_key_data != "" ? file("~/.ssh/id_rsa") : null
}
provisioner "remote-exec" {
inline = concat(local.prerequisites, local.prepare_path, local.island_animation, local.island_basepackage, local.island_pbrt, local.umount_path)
}
}