如何通过 Terraform 设置 Nomad
How to setup Nomad via Terraform
我是初学者,我无法找到 Terraform 和 Nomad 的解决方案。我需要 运行 Nomad 和 hashi-ui 用于 Nomad 的网络管理。我尝试通过 terrafom 设置和 运行 Nomad 服务器。 Hashi-ui 我喜欢游牧工作。 Nomad服务器和Hashi-ui运行很好。哈希-ui我运行在docker。现在我需要为自动化初始设置创建 terraform 文件并编排游牧。我的服务器 运行ning 在 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 计划显示更改,但 terraform apply 抛出此错误:
应用计划时出错:
发生 1 个错误:
nomad_job.hashi-ui:发生 1 个错误:
nomad_job.hashi-ui: 错误应用 jobspec: Put http://localhost:4646/v1/jobs?region=global: dial tcp [::1]:4646: getsockopt: connection refused
Terraform 不会在遇到错误时自动回滚。
相反,您的 Terraform 状态文件已部分更新为
成功完成的任何资源。请解决错误
以上并再次申请以逐步更改您的基础架构。
如果我 运行 游牧服务器旁边的错误是
发生 1 个错误:
nomad_job.hashi-ui:发生 1 个错误:
nomad_job.hashi-ui:应用 jobspec 时出错:意外的响应代码:500(发生 1 个错误:
任务组服务器验证失败:发生 1 个错误:
2 个错误发生:
最大并行数不能小于1:0 < 1
- 交错必须大于零:0s)
你能帮帮我吗?
您的游牧工作规范中缺少最大并行和交错:
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"
}
...
我是初学者,我无法找到 Terraform 和 Nomad 的解决方案。我需要 运行 Nomad 和 hashi-ui 用于 Nomad 的网络管理。我尝试通过 terrafom 设置和 运行 Nomad 服务器。 Hashi-ui 我喜欢游牧工作。 Nomad服务器和Hashi-ui运行很好。哈希-ui我运行在docker。现在我需要为自动化初始设置创建 terraform 文件并编排游牧。我的服务器 运行ning 在 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 计划显示更改,但 terraform apply 抛出此错误:
应用计划时出错:
发生 1 个错误:
nomad_job.hashi-ui:发生 1 个错误:
nomad_job.hashi-ui: 错误应用 jobspec: Put http://localhost:4646/v1/jobs?region=global: dial tcp [::1]:4646: getsockopt: connection refused
Terraform 不会在遇到错误时自动回滚。 相反,您的 Terraform 状态文件已部分更新为 成功完成的任何资源。请解决错误 以上并再次申请以逐步更改您的基础架构。
如果我 运行 游牧服务器旁边的错误是
发生 1 个错误:
nomad_job.hashi-ui:发生 1 个错误:
nomad_job.hashi-ui:应用 jobspec 时出错:意外的响应代码:500(发生 1 个错误:
任务组服务器验证失败:发生 1 个错误:
2 个错误发生:
最大并行数不能小于1:0 < 1
- 交错必须大于零:0s)
你能帮帮我吗?
您的游牧工作规范中缺少最大并行和交错:
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"
}
...