github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/e2e/terraform/provision-nomad/install-linux.tf (about) 1 resource "local_sensitive_file" "nomad_systemd_unit_file" { 2 content = templatefile("etc/nomad.d/nomad-${var.role}.service", {}) 3 filename = "${local.upload_dir}/nomad.d/nomad.service" 4 file_permission = "0600" 5 } 6 7 resource "null_resource" "install_nomad_binary_linux" { 8 count = var.platform == "linux" ? 1 : 0 9 triggers = { nomad_binary_sha = filemd5(var.nomad_local_binary) } 10 11 connection { 12 type = "ssh" 13 user = var.connection.user 14 host = var.instance.public_ip 15 port = var.connection.port 16 private_key = file(var.connection.private_key) 17 timeout = "5m" 18 } 19 20 provisioner "file" { 21 source = var.nomad_local_binary 22 destination = "/tmp/nomad" 23 } 24 provisioner "remote-exec" { 25 inline = [ 26 "sudo mv /tmp/nomad /usr/local/bin/nomad", 27 "sudo chmod +x /usr/local/bin/nomad", 28 ] 29 } 30 } 31 32 resource "null_resource" "install_consul_configs_linux" { 33 count = var.platform == "linux" ? 1 : 0 34 35 depends_on = [ 36 null_resource.upload_consul_configs, 37 ] 38 39 connection { 40 type = "ssh" 41 user = var.connection.user 42 host = var.instance.public_ip 43 port = var.connection.port 44 private_key = file(var.connection.private_key) 45 timeout = "5m" 46 } 47 48 provisioner "remote-exec" { 49 inline = [ 50 "mkdir -p /etc/consul.d", 51 "sudo rm -rf /etc/consul.d/*", 52 "sudo mv /tmp/consul_ca.pem /etc/consul.d/ca.pem", 53 "sudo mv /tmp/consul_client_acl.json /etc/consul.d/acl.json", 54 "sudo mv /tmp/consul_client.json /etc/consul.d/consul_client.json", 55 "sudo mv /tmp/consul_client_base.json /etc/consul.d/consul_client_base.json", 56 "sudo mv /tmp/consul.service /etc/systemd/system/consul.service", 57 ] 58 } 59 } 60 61 resource "null_resource" "install_nomad_configs_linux" { 62 count = var.platform == "linux" ? 1 : 0 63 64 depends_on = [ 65 null_resource.upload_nomad_configs, 66 ] 67 68 connection { 69 type = "ssh" 70 user = var.connection.user 71 host = var.instance.public_ip 72 port = var.connection.port 73 private_key = file(var.connection.private_key) 74 timeout = "5m" 75 } 76 77 provisioner "remote-exec" { 78 inline = [ 79 "mkdir -p /etc/nomad.d", 80 "mkdir -p /opt/nomad/data", 81 "sudo rm -rf /etc/nomad.d/*", 82 "sudo mv /tmp/consul.hcl /etc/nomad.d/consul.hcl", 83 "sudo mv /tmp/vault.hcl /etc/nomad.d/vault.hcl", 84 "sudo mv /tmp/base.hcl /etc/nomad.d/base.hcl", 85 "sudo mv /tmp/${var.role}-${var.platform}.hcl /etc/nomad.d/${var.role}-${var.platform}.hcl", 86 "sudo mv /tmp/${var.role}-${var.platform}-${var.index}.hcl /etc/nomad.d/${var.role}-${var.platform}-${var.index}.hcl", 87 "sudo mv /tmp/.environment /etc/nomad.d/.environment", 88 89 # TLS 90 "sudo mkdir /etc/nomad.d/tls", 91 "sudo mv /tmp/tls.hcl /etc/nomad.d/tls.hcl", 92 "sudo mv /tmp/agent-${var.instance.public_ip}.key /etc/nomad.d/tls/agent.key", 93 "sudo mv /tmp/agent-${var.instance.public_ip}.crt /etc/nomad.d/tls/agent.crt", 94 "sudo mv /tmp/tls_proxy.key /etc/nomad.d/tls/tls_proxy.key", 95 "sudo mv /tmp/tls_proxy.crt /etc/nomad.d/tls/tls_proxy.crt", 96 "sudo mv /tmp/self_signed.key /etc/nomad.d/tls/self_signed.key", 97 "sudo mv /tmp/self_signed.crt /etc/nomad.d/tls/self_signed.crt", 98 "sudo mv /tmp/ca.crt /etc/nomad.d/tls/ca.crt", 99 100 "sudo mv /tmp/nomad.service /etc/systemd/system/nomad.service", 101 ] 102 } 103 104 } 105 106 resource "null_resource" "restart_linux_services" { 107 count = var.platform == "linux" ? 1 : 0 108 109 depends_on = [ 110 null_resource.install_nomad_binary_linux, 111 null_resource.install_consul_configs_linux, 112 null_resource.install_nomad_configs_linux, 113 ] 114 115 connection { 116 type = "ssh" 117 user = var.connection.user 118 host = var.instance.public_ip 119 port = var.connection.port 120 private_key = file(var.connection.private_key) 121 timeout = "5m" 122 } 123 124 provisioner "remote-exec" { 125 inline = [ 126 "sudo systemctl daemon-reload", 127 "sudo systemctl enable consul", 128 "sudo systemctl restart consul", 129 "sudo systemctl enable nomad", 130 "sudo systemctl restart nomad", 131 ] 132 } 133 }