【发布时间】:2019-01-15 07:45:26
【问题描述】:
我正在创建一个 AWS 实例,并尝试在创建后运行一个 Vault 服务器。我的问题是创建过程永远不会完成,因为服务器没有在后台运行。这是我的配置:
resource "aws_instance" "web" {
ami = "ami-466768ac"
instance_type = "t2.micro"
key_name = "my_key"
tags {
Name = "Vault"
}
provisioner "remote-exec" {
connection {
type = "ssh"
agent = false
user = "ec2-user"
private_key = "${file("/path/to/my_key")}"
}
inline = [
"curl -O https://releases.hashicorp.com/vault/0.10.4/vault_0.10.4_linux_amd64.zip",
"unzip vault_0.10.4_linux_amd64.zip",
"./vault server -dev -dev-listen-address=0.0.0.0:8200"
]
}
}
基本上,我通过 curl 下载 Vault 并运行开发服务器。服务器实际运行(我在终端日志中看到),但实例创建(由 Terraform)从未完成:
aws_instance.web: Still creating... (40s elapsed)
aws_instance.web: Still creating... (50s elapsed)
aws_instance.web: Still creating... (1m0s elapsed)
aws_instance.web: Still creating... (1m10s elapsed)
aws_instance.web: Still creating... (1m20s elapsed)
aws_instance.web: Still creating... (1m30s elapsed)
...
我尝试在启动 Vault 服务器命令的末尾添加 &,以免阻塞 shell,但是当我这样做时,实例已创建但 Vault 服务器并未实际启动。
如何在创建实例时以后台模式启动服务器?
编辑
我也试过nohup:
nohup ./vault server -dev -dev-listen-address=0.0.0.0:8200
但是当 terraform 完成时服务器没有启动...
【问题讨论】:
-
不确定是否要将此服务器保留在保管库中,但将其设置为服务并启动它可能是一个有效的选择;)
标签: amazon-web-services amazon-ec2 terraform hashicorp-vault