我正在使用Terraform v0.9.11(在CentOS7服务器上运行),我只是想创建一个数字海洋机器并在那里安装haproxy。
如果我选择创建CentOS7机器,整个过程可以正常运行。 如果我选择创建Ubuntu 16.04机器,则在成功构建Ubuntu 16.04机器后,该进程无法安装haproxy。我能够安装haproxy的唯一方法是登录到Ubuntu 16.04机器并在那里手动安装haproxy。
这是我的.tf文件:
resource "digitalocean_droplet" "haproxy-www" {
image = "ubuntu-16-04-x64"
name = "haproxy-www"
region = "lon1"
size = "512mb"
private_networking = true
ssh_keys = [
"${var.ssh_fingerprint}"
]
connection {
user = "root"
type = "ssh"
private_key = "${file("${var.pvt_key}")}"
timeout = "2m"
}
provisioner "remote-exec" {
inline = [
"apt-get update",
"apt-get -y install haproxy"
]
}
}
Haproxy安装失败,并显示以下消息:
Some packages could not be installed.
...
The following packages have unmet dependencies:
haproxy : Depends: liblua5.3-0 but it is not installable
但是.....如果我登录到Terraform创建的机器并手动运行
apt-get update
apt-get -y install haproxy
haproxy安装没有问题......!
我注意到以下情况: - 如果我尝试(不成功)使用上面的Terraform remote-exec,则使用以下回购
http://archive.ubuntu.com/ubuntu xenial-updates
http://security.ubuntu.com/ubuntu xenial-security
etc...
- 当我登录并(成功)安装haproxy时,使用以下回购
http://security.ubuntu.com/ubuntu xenial-security
http://lon1.mirrors.digitalocean.com/ubuntu xenial
http://lon1.mirrors.digitalocean.com/ubuntu xenial-updates
etc...
我的Terraform配置有误吗?请注意,相同的配置(显然使用yum而不是apt-get和image =“centos-7-2-x64”而不是image =“ubuntu-16-04-x64”)完全适用于CentOS7。
非常感谢您的宝贵帮助!!! 伊利
答案 0 :(得分:0)
我会试试这个:
provisioner "remote-exec" {
inline = [
"sudo add-apt-repository -y ppa:vbernat/haproxy-1.5",
"sudo apt-get update",
"sudo apt-get -y install haproxy"
]
}