我有一个使用terraform配置gomaster和GOServer的用例,然后使用新配置的GOMaster注册goserver。
以下是我正在使用的terraform食谱。Terraform也安装在docker服务器上,我从那里执行这个配方。
#Configure the Docker provider
provider "docker" {
host = "tcp://${var.dockerIP}:2376/"
}
# Create the network
resource "docker_network" "private_network" {
name = "${var.customer_name}_network"
}
resource "docker_container" "goagent" {
image = "${docker_image.goagent.latest}"
name = "${var.customer_name}_goagent"
hostname = "${var.customer_name}_goagent"
command = [ "/bin/sh", "-c", "/usr/bin/supervisord" ]
network_mode = "bridge"
networks = [ "${docker_network.private_network.name}" ]
provisioner "remote-exec" {
connection {
user = "root"
password = "example"
}
inline = [
"sed -i -e 's/GO_SERVER=go-server/GO_SERVER=${var.customer_name}_goserver' /etc/defaut/go-agent",
"sed -i -e 's/DAEMON=N/DAEMON=Y' /etc/defaut/go-agent",
"/etc/init.d/go-agent restart"
]
}
}
# Create a container
resource "docker_container" "goservertest" {
image = "${docker_image.goserver.latest}"
name = "${var.customer_name}_goserver"
hostname = "${var.customer_name}_goserver"
network_mode = "bridge"
networks = [ "${docker_network.private_network.name}" ]
ports{
internal = "8153"
external = "8003"
}
ports{
internal = "8154"
external = "8002"
}
}
resource "docker_image" "goserver" {
name = "gocd/gocd-server:latest"
}
resource "docker_image" "goagent" {
name = "gocd/gocd-agent:latest"
}goagent资源中的远程exec部分不工作。我的假设是它登录到预置的goagent,并根据指定的sed命令修改其中的文件。相反,它正在对docker host执行ssh并修改文件。我是不是遗漏了什么?我们是否必须在远程设备的连接块中指定in地址或主机名?
https://stackoverflow.com/questions/38324060
复制相似问题