【问题标题】:How to setup Nomad via Terraform如何通过 Terraform 设置 Nomad
【发布时间】:2018-03-06 05:52:11
【问题描述】:

我是初学者,我很难为 Terraform 和 Nomad 找到解决方案。我需要运行 Nomad 和 hash-ui 来进行 Nomad 的 Web 管理。我尝试通过 terrafom 设置和运行 Nomad 服务器。 Hashi-ui 我喜欢游牧工作。 Nomad 服务器和 Hashi-ui 运行良好。 Hashi-ui 我在 docker 中运行。现在我需要为自动化初始设置和编排 nomad 创建 terraform 文件。我的服务器在 Debian 8 上运行。

我的地形文件 nomad.tf:

# Configure the Nomad provider
provider "nomad" {
  address = "http://localhost:4646"
  region = "global"
# group = "server"
}

variable "version" {
  default = "latest"
}

data "template_file" "job" {
  template = "${file("./hashi-ui.nomad")}"

  vars {
    version = "${var.version}"
  }
}

# Register a job
resource "nomad_job" "hashi-ui" {
  jobspec = "${data.template_file.job.rendered}"
}

还有游牧工作hashi-ui.nomad:

job "hashi-ui" {
  region      = "global"
  datacenters = ["dc1"]
  type        = "service"

  group "server" {
    count = 1

    task "hashi-ui" {
      driver = "docker"

      config {
        image        = "jippi/hashi-ui"
        network_mode = "host"
      }

      service {
        port = "http"

        check {
          type     = "http"
          path     = "/"
          interval = "10s"
          timeout  = "2s"
        }
      }

      env {
        NOMAD_ENABLE = 1
        NOMAD_ADDR   = "http://0.0.0.0:4646"
      }

      resources {
        cpu    = 500
        memory = 512

        network {
          mbits = 5

          port "http" {
            static = 3000
          }
        }
      }
    }
  }
}

Terraform plan 显示更改,但 terraform apply 抛出此错误:

应用计划时出错:

发生了 1 个错误:

Terraform 在遇到错误时不会自动回滚。 相反,您的 Terraform 状态文件已部分更新为 任何成功完成的资源。请解决错误 并再次申请以逐步更改您的基础架构。

如果我在旁边运行游牧服务器,则错误是

发生了 1 个错误:

  • nomad_job.hashi-ui:发生 1 个错误:

  • nomad_job.hashi-ui:应用作业规范时出错:意外响应代码:500(发生 1 个错误:

  • 任务组服务器验证失败:发生 1 个错误:

  • 发生 2 个错误:

  • 最大并行不能小于一:0

  • 交错必须大于零:0s)

你能帮帮我吗?

【问题讨论】:

    标签: docker debian terraform orchestration nomad


    【解决方案1】:

    您在游牧工作规范中缺少最大并行和交错:

    job "hashi-ui" {
      region      = "global"
      datacenters = ["dc1"]
      type        = "service"
    
      update {
        stagger      = "30s"
        max_parallel = 2
      }
    
      count = 1
    
      task "hashi-ui" {
        driver = "docker"
    
        config {
          image        = "jippi/hashi-ui"
          network_mode = "host"
        }
    ...
    

    【讨论】:

    • 感谢您的帮助。当我添加 stragger 和 max_parallel 时,它很棒。
    猜你喜欢
    • 1970-01-01
    • 2021-04-11
    • 2022-11-23
    • 2017-08-15
    • 2020-01-25
    • 2021-04-17
    • 1970-01-01
    • 2021-04-14
    • 2021-10-20
    相关资源
    最近更新 更多