Terraform无法在Ubuntu 16.04上安装haproxy?

时间:2017-07-13 16:31:12

标签: ubuntu haproxy terraform

我正在使用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。

非常感谢您的宝贵帮助!!! 伊利

1 个答案:

答案 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"
    ]
}