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

Mar*_*nte 1 esxi packer vsphere terraform devops

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

希望能找到指导.

Beg*_*gin 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}"
  # ...
}
Run Code Online (Sandbox Code Playgroud)

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

  • 是的,遗憾的是,我没有找到很多文档或博客文章,所以我为我的用例写了一对.[这里](http://www.davidbegin.com/packer-and-terraform-part-ii-data-sources/)的帖子扩展了我上面的例子.[这里](http://www.davidbegin.com/packer-and-terraform/)是我的bash hack之一.这些都是特定于AWS EC2和构建AMI的,因此它们可能无法帮助您进一步发展.但是如果你有一个项目托管在某个地方,Packer和Terraform部分已经建成但没有连接,我可以看看. (2认同)