github.com/hernad/nomad@v1.6.112/e2e/terraform/provision-nomad/install-windows.tf (about)

     1  # Copyright (c) HashiCorp, Inc.
     2  # SPDX-License-Identifier: MPL-2.0
     3  
     4  resource "null_resource" "install_nomad_binary_windows" {
     5    count    = var.platform == "windows" ? 1 : 0
     6    triggers = { nomad_binary_sha = filemd5(var.nomad_local_binary) }
     7  
     8    connection {
     9      type            = "ssh"
    10      user            = var.connection.user
    11      host            = var.instance.public_ip
    12      port            = var.connection.port
    13      private_key     = file(var.connection.private_key)
    14      target_platform = "windows"
    15      timeout         = "10m"
    16    }
    17  
    18    provisioner "file" {
    19      source      = var.nomad_local_binary
    20      destination = "/tmp/nomad"
    21    }
    22    provisioner "remote-exec" {
    23      inline = [
    24        "powershell Move-Item -Force -Path C://tmp/nomad -Destination C:/opt/nomad.exe",
    25      ]
    26    }
    27  }
    28  
    29  resource "null_resource" "install_consul_configs_windows" {
    30    count = var.platform == "windows" ? 1 : 0
    31  
    32    depends_on = [
    33      null_resource.upload_consul_configs,
    34    ]
    35  
    36    connection {
    37      type            = "ssh"
    38      user            = var.connection.user
    39      host            = var.instance.public_ip
    40      port            = var.connection.port
    41      private_key     = file(var.connection.private_key)
    42      target_platform = "windows"
    43      timeout         = "10m"
    44    }
    45  
    46    provisioner "remote-exec" {
    47      inline = [
    48        "powershell Remove-Item -Force -Recurse -Path C://etc/consul.d",
    49        "powershell New-Item -Force -Path C:// -Name opt -ItemType directory",
    50        "powershell New-Item -Force -Path C://etc -Name consul.d -ItemType directory",
    51        "powershell Move-Item -Force -Path C://tmp/consul_ca.pem  C://Windows/System32/ca.pem",
    52        "powershell Move-Item -Force -Path C://tmp/consul_client_acl.json C://etc/consul.d/acl.json",
    53        "powershell Move-Item -Force -Path C://tmp/consul_client.json C://etc/consul.d/consul_client.json",
    54        "powershell Move-Item -Force -Path C://tmp/consul_client_base.json C://etc/consul.d/consul_client_base.json",
    55      ]
    56    }
    57  }
    58  
    59  resource "null_resource" "install_nomad_configs_windows" {
    60    count = var.platform == "windows" ? 1 : 0
    61  
    62    depends_on = [
    63      null_resource.upload_nomad_configs,
    64    ]
    65  
    66    connection {
    67      type            = "ssh"
    68      user            = var.connection.user
    69      host            = var.instance.public_ip
    70      port            = var.connection.port
    71      private_key     = file(var.connection.private_key)
    72      target_platform = "windows"
    73      timeout         = "10m"
    74    }
    75  
    76    provisioner "remote-exec" {
    77      inline = [
    78        "powershell Remove-Item -Force -Recurse -Path C://etc/nomad.d",
    79        "powershell New-Item -Force -Path C:// -Name opt -ItemType directory",
    80        "powershell New-Item -Force -Path C:// -Name etc -ItemType directory",
    81        "powershell New-Item -Force -Path C://etc/ -Name nomad.d -ItemType directory",
    82        "powershell New-Item -Force -Path C://opt/ -Name nomad -ItemType directory",
    83        "powershell New-Item -Force -Path C://opt/nomad -Name data -ItemType directory",
    84        "powershell Move-Item -Force -Path C://tmp/consul.hcl C://etc/nomad.d/consul.hcl",
    85        "powershell Move-Item -Force -Path C://tmp/vault.hcl C://etc/nomad.d/vault.hcl",
    86        "powershell Move-Item -Force -Path C://tmp/base.hcl C://etc/nomad.d/base.hcl",
    87        "powershell Move-Item -Force -Path C://tmp/${var.role}-${var.platform}.hcl C://etc/nomad.d/${var.role}-${var.platform}.hcl",
    88        "powershell Move-Item -Force -Path C://tmp/${var.role}-${var.platform}-${var.index}.hcl C://etc/nomad.d/${var.role}-${var.platform}-${var.index}.hcl",
    89        "powershell Move-Item -Force -Path C://tmp/.environment C://etc/nomad.d/.environment",
    90  
    91        # TLS
    92        "powershell New-Item -Force -Path C://etc/nomad.d -Name tls -ItemType directory",
    93        "powershell Move-Item -Force -Path C://tmp/tls.hcl C://etc/nomad.d/tls.hcl",
    94        "powershell Move-Item -Force -Path C://tmp/agent-${var.instance.public_ip}.key C://etc/nomad.d/tls/agent.key",
    95        "powershell Move-Item -Force -Path C://tmp/agent-${var.instance.public_ip}.crt C://etc/nomad.d/tls/agent.crt",
    96        "powershell Move-Item -Force -Path C://tmp/ca.crt C://etc/nomad.d/tls/ca.crt",
    97      ]
    98    }
    99  }
   100  
   101  resource "null_resource" "restart_windows_services" {
   102    count = var.platform == "windows" ? 1 : 0
   103  
   104    depends_on = [
   105      null_resource.install_nomad_binary_windows,
   106      null_resource.install_consul_configs_windows,
   107      null_resource.install_nomad_configs_windows,
   108    ]
   109  
   110    connection {
   111      type            = "ssh"
   112      user            = var.connection.user
   113      host            = var.instance.public_ip
   114      port            = var.connection.port
   115      private_key     = file(var.connection.private_key)
   116      target_platform = "windows"
   117      timeout         = "10m"
   118    }
   119  
   120    provisioner "remote-exec" {
   121      inline = [
   122        "powershell Restart-Service Consul",
   123        "powershell Restart-Service Nomad"
   124      ]
   125    }
   126  }