build 命令
packer build 命令读取一个模板并运行其中定义的所有构建以生成一组制品。除非另有说明,否则模板中指定的各种构建是并行执行的。创建的制品将在构建结束时输出。
选项
-color=false- 禁用彩色输出。默认启用。-debug- 禁用并行运行并启用调试模式。调试模式通知构建器输出调试信息。调试模式的确切行为由构建者定义。一般来说,构建者通常会在每个步骤之间停下来,等待键盘输入后再继续。这将允许用户进行状态检查等。-except=foo,bar,baz- 在运行时排除具有给定逗号分隔名称的构建和后处理器。在遗留的 JSON 格式模板中,构建的默认名称为其构建器的类型(例如docker或amazon-ebs或virtualbox-iso),除非是在配置中指定了特定的名称属性。在 HCL2 模板中,“名称”是source代码块的name标签,除非构建中source的定义添加了name配置选项。被跳过的后处理器之后定义的其他后处理器都不会运行。因为后处理器可以嵌套在数组中,所以不同的后处理器链仍然可以运行。名称为空的后处理器将被忽略。-force- 当来自上游构建的制品阻止了构建运行时强制构建器运行。强制构建的确切行为由构建器来定义。通常,支持强制构建的构建器会从之前的构建中删除制品。这将允许用户重复构建,而无需事先手动清理这些制品。-on-error- 选择在配置期间构建失败时要执行的操作,可设置为:cleanup、abort、ask或是run-cleanup-provisioner。默认值为cleanup。请注意,这只会在配置器运行期间对构建产生影响,而在后处理器运行期间则不会生效,因为错误处理机制与是否保留运行中的实例以及相关制品有关,例如配置程序失败时在运行 Packer 的机器上生成的 SSH 密钥。cleanup清理之前工序留下的资源,删除临时文件和虚拟机。abort退出而不进行任何清理,这可能需要下一个构建使用-force。ask给出提示并等待用户决定要清理、中止还是重试失败的步骤。run-cleanup-provisioner中止并退出,除了error-cleanup-provisioner(如果有定义)之外不执行其他清理。
-only=foo,bar,baz- 仅运行指定的构建,名字用逗号分隔。在遗留 JSON 模板中,构建名称默认为其构建器的类型(例如docker、amazon-ebs、virtualbox-iso),除非在配置中指定了特定的名称属性。在 HCL2 模板中,指定的名称是source块的name标签,除非内置的source定义添加了name配置选项。-parallel-builds=N- 限制并行运行的构建数量,0表示没有限制(默认为0)。-timestamp-ui- 在每个 ui 输出前添加一个 RFC3339 时间戳作为前缀。-var- 设置一个 Packer 模板定义的变量的值。该选项可以多次使用。该功能在设置构建的版本号时很有用。-var-file- 指定一个变量文件。-warn-on-undeclared-var- 设置此标志后如果变量定义文件 (.pkrvars.hcl|.pkrvars.json) 中存在无匹配variable块的变量时返回一条警告。如果用 HCL2 模板定义构建,光是在变量文件中设置一个变量值不足以让其生效,因为还需要在模板文件pkr.hcl中为变量定义一个对应的variable块。默认情况下,当变量文件包含一个或多个未声明的变量时,packer build不会发出警告。