Packer和Terraform集成的工作流程示例

时间:2017-10-21 20:31:15

标签: devops terraform vsphere packer esxi

我尝试在VMWare Hypervisor中为虚拟机创建实验室,以在RHEL中安装集群;我已经看到Packer和Terraform非常有趣,但我找不到关于其工作流程的清晰和/或详细的样本,特别是如何在Packer中创建图像然后让Terraform使用它。 我已经看到Packer具有构建功能,但即使是某种类型的部署,我也不明白这些是否与Terraform重叠;我已经读过,通过另一个HashiCorp产品Atlas可以实现某种类型的自动化,但我不想使用它,至少在这个软件的研究和试验阶段是这样。 所以我要做的是使用Packer(RHEL base以及其他功能)创建与VMWare兼容的虚拟机映像,将它们传递给在我的esxi中创建vm的Terraform工件。

希望找到指导。

1 个答案:

答案 0 :(得分:6)

我不确定您的具体用例,但Terraform确实拥有数据源,可以更轻松地将Packer构建的图像连接到Terraform:https://www.terraform.io/docs/configuration/data-sources.html

以下是为AWS EC2实例使用Packer Built AMI的部分示例:

data "aws_ami" "bastion" {
  filter {
    name   = "state"
    values = ["available"]
  }

  filter {
    name   = "tag:Name"
    values = ["Bastion"]
  }

  most_recent = true
}

resource "aws_instance" "bastion" {
  ami = "${data.aws_ami.bastion.id}"
  # ...
}

我还使用了bash脚本来解析Packer生成的值并将它们转储到Terraform消耗的tfvars文件中。