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 }