src/terraform/modules/cachewarmer_manager_install/main.tf (28 lines of code) (raw):
locals {
mount_dir = "/bcwmi"
vmss_password_str = var.vmss_password == null ? "" : var.vmss_password
vmss_ssh_public_key_str = var.vmss_ssh_public_key == null ? "" : var.vmss_ssh_public_key
vmss_subnet_name_str = var.vmss_subnet_name == null ? "" : var.vmss_subnet_name
proxy_env = (var.proxy == null || var.proxy == "") ? "" : "export http_proxy=${var.proxy} && export https_proxy=${var.proxy} && export no_proxy=169.254.169.254 &&"
env_vars = "${local.proxy_env} export BOOTSTRAP_PATH=${local.mount_dir} && export STORAGE_ACCOUNT_RESOURCE_GROUP='${var.storage_account_rg}' && export STORAGE_ACCOUNT=${var.storage_account} && export QUEUE_PREFIX=${var.queue_name_prefix} && export BOOTSTRAP_EXPORT_PATH=${var.bootstrap_export_path} && export BOOTSTRAP_MOUNT_ADDRESS=${var.bootstrap_mount_address} && export BOOTSTRAP_SCRIPT=${var.bootstrap_worker_script_path} && export VMSS_USERNAME=${var.vmss_user_name} && export VMSS_SSHPUBLICKEY='${local.vmss_ssh_public_key_str}' && export VMSS_PASSWORD='${local.vmss_password_str}' && export VMSS_SUBNET=${local.vmss_subnet_name_str} && export VMSS_WORKER_COUNT=${var.vmss_worker_count}"
}
resource "null_resource" "install_cachewarmer_manager" {
connection {
type = "ssh"
port = var.jumpbox_ssh_port
host = var.jumpbox_address
user = var.jumpbox_username
password = var.jumpbox_ssh_key_data != null && var.jumpbox_ssh_key_data != "" ? "" : var.jumpbox_password
private_key = var.jumpbox_ssh_key_data != null && var.jumpbox_ssh_key_data != "" ? file("~/.ssh/id_rsa") : null
}
provisioner "remote-exec" {
inline = [
"set -x",
"sudo mkdir -p ${local.mount_dir}",
"sudo mount -o 'hard,nointr,proto=tcp,mountproto=tcp,retry=30' ${var.bootstrap_mount_address}:${var.bootstrap_export_path} ${local.mount_dir}",
"${local.env_vars} && sudo -E /bin/bash ${local.mount_dir}${var.bootstrap_manager_script_path}",
"sudo umount ${local.mount_dir}",
"sudo rmdir ${local.mount_dir}",
]
}
}