Tag: 地形

Terraform:用远程exec编辑文件

我有一个用例,我使用terraformconfigurationGOMaster和GOServer,然后使用新configuration的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 […]

创build一个本地端到端的开发环境

我开始使用terraform来控制各种云提供商(例如AWS)的登台和生产环境。 有没有办法使用terraformconfiguration文件为多层应用程序环境创build本地开发环境,还是必须通过我的开发需求来保持不同的configuration? 由于大多数组件都被docker化了,所以这对于两个工具来说可能不是太难,但是如果有一个单独的configuration,这将是很好的。

Terraform可以从remote_exec命令设置variables吗?

我正在尝试使用Terraform在AWS中构build一个Docker Swarm集群。 我已经成功地启动了一个Swarmpipe理器,但是我正在设法解决如何将连接键传递给worker(将在pipe理器之后创build)。 我想要一些运行docker swarm join-token worker -q命令的方法,它可以设置为Terraformvariables。 这样,工作人员可以有一个像docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip}一样的remote_exec命令docker swarm join ${var.swarm_token} ${aws_instance.swarm-manager.private_ip} 我怎样才能做到这一点? 我的configuration如下: resource "aws_instance" "swarm-manager" { ami = "${var.manager_ami}" instance_type = "${var.manager_instance}" tags = { Name = "swarm-manager${count.index + 1}" } provisioner "remote-exec" { inline = [ "sleep 30", "docker swarm init –advertise-addr ${aws_instance.swarm-manager.private_ip}" "docker swarm join-token worker […]

我如何使用Terraform将环境variables传递给Docker容器?

我使用Terraform的Docker提供程序生成Docker容器,但未能理解如何传递它们的环境variables。 项目关于env选项的文档指出: env – (可选,string集)要设置的环境variables。 什么是上下文中的“string集合”? 你能提供一个使用env选项的示例docker容器资源声明吗?