Docker 如何通过Terraform设置Nomad

Docker 如何通过Terraform设置Nomad,docker,debian,terraform,orchestration,nomad,Docker,Debian,Terraform,Orchestration,Nomad,我是一个初学者,我很难为地形和游牧民族找到解决方案。我需要运行Nomad和hashi ui来对Nomad进行web管理。我尝试通过terrafom设置和运行Nomad服务器。我喜欢游牧工作。Nomad服务器和Hashi ui运行良好。我在码头上跑步。现在,我需要为自动化初始设置创建地形文件,并协调nomad。我的服务器运行在Debian8上 我的地形文件nomad.tf: # Configure the Nomad provider provider "nomad" { address =

我是一个初学者,我很难为地形和游牧民族找到解决方案。我需要运行Nomad和hashi ui来对Nomad进行web管理。我尝试通过terrafom设置和运行Nomad服务器。我喜欢游牧工作。Nomad服务器和Hashi ui运行良好。我在码头上跑步。现在,我需要为自动化初始设置创建地形文件,并协调nomad。我的服务器运行在Debian8上

我的地形文件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}"
}
和nomad job 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个错误:

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

  • nomad_job.hashi-ui:应用jobspec:Put:dial tcp[::1]:4646:getsockopt:连接被拒绝时出错

Terraform在遇到错误时不会自动回滚。 相反,您的地形状态文件已使用 成功完成的所有资源。请纠正错误 并再次应用以增量方式更改您的基础结构

如果我在旁边运行nomad服务器,则错误为

发生1个错误:

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

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

  • 任务组服务器验证失败:出现1个错误:

  • 发生2个错误:

  • 最大平行度不能小于1:0<1

  • 参差必须大于零(0秒)

你能帮帮我吗?

你的nomad工作规范中缺少一个最大平行和交错:

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时,它非常棒。