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  }