当使用普通的Ansible剧本时,我有许多清单,通过设置变量来封装各种配置;这些工作如预期。我现在希望使用Packer Ansible插件中的一个或多个剧本来执行相同的步骤。
目前,我通过"--额外变量";指令;对于数量有限的变量,这是可以接受的。然而,我更希望能够引用现有的库存文件,其中包含我希望使用的一组变量。
这可能吗?
是的,您可以在Packer Ansible provisioner:中指定包含变量的库存文件
provisioner "ansible" {
inventory_file = "${path.root}/path/to/inventory"
}
文档中提供了更多信息。
然而,这也可能变得棘手,因为Packer通常会生成一个清单文件,其中包含要提供的实例的条目。您可能难以将要配置的实例的主机条目调整为现有清单文件。使用库存目录可能更容易:
provisioner "ansible" {
inventory_directory = "${path.root}/path/to/inventory_dir"
}
在这种情况下,Packer仍然会为您生成保证准确的库存文件,但目录中仍然可以使用现有库存文件中的host_vars
和group_vars
。