我是初学者,我有问题找到Terraform和Nomad的解决方案。我需要运行Nomad和hashi-ui来管理Nomad。我尝试通过terrafom设置和运行Nomad服务器。 Hashi-ui我喜欢游牧工作。 Nomad服务器和Hashi-ui运行良好。 Hashi-ui我在码头工作。现在我需要创建用于自动化初始设置和编排游牧的terraform文件。我的服务器在Debian 8上运行。
我的terraform文件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计划会显示更改,但是terraform apply会抛出此错误:
应用计划时出错:
发生1个错误:
nomad_job.hashi-ui:发生1个错误:
nomad_job.hashi-ui:错误应用jobspec:放http://localhost:4646/v1/jobs?region=global:拨tcp [:: 1]:4646:getsockopt:连接被拒绝
Terraform在面对错误时不会自动回滚。 相反,您的Terraform状态文件已部分更新 任何成功完成的资源。请解决错误 以上并再次申请逐步改变您的基础设施。
如果我在旁边运行nomad服务器而不是错误
发生1个错误:
nomad_job.hashi-ui:发生1个错误:
nomad_job.hashi-ui:应用jobspec时出错:意外的响应代码:500(发生1个错误:
任务组服务器验证失败:发生1个错误:
发生了2个错误:
Max parallel不能小于1:0< 1
你能帮我吗?
答案 0 :(得分: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"
}
...