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