Packer boot_command 中为什么使用 esc 和 bs?

问题描述 投票:0回答:1

我正在尝试学习 Packer,使我能够为我的虚拟机创建模板/黄金映像。从长远来看,我希望能够让 CI/CD 管道中的 Packer 不断更新我的虚拟机的映像。

现在我尝试使用

virtualbox-iso
作为我的构建器类型为 Ubuntu 桌面 ISO 创建映像。这意味着为了实现此过程的自动化,我遇到了新的挑战,例如
"boot_command"
preseed.cfg
vmlinuz
等等。

我想了解的第一件事是

boot_command
使用网上找到的示例。定义:

boot_command 指定首次启动虚拟机时要键入的键,以启动操作系统安装程序。

示例:

 "boot_command": [
  "<esc><wait>",
  "<esc><wait>",
  "<enter><wait>",
  "/install/vmlinuz<wait>",
  " auto<wait>",
       ...

我见过很多使用以下命令的示例:

bs
esc
。这对我来说没有意义,因为我从未在计算机或虚拟机启动期间使用过它们。

我的问题是:
1. 为什么使用这些命令?
2. 在这种特殊情况下他们会做什么?

谢谢。

virtualbox boot packer
1个回答
0
投票

boot_command
只不过是按键的列表,打包器将发送到虚拟机。它是一个字符串列表,只是为了便于阅读。如果需要,您也可以将所有命令放入一行。

如果您将文本写入

boot_command
,打包器将准确地将此文本发送到VM。为了模拟不可打印字符的击键,packer 提供了
<...>
语法来“按下”按键,例如:

  • Esc(退出)->
    <esc>
  • <-(退格键)->
    <bs>

要获得适合您系统的

boot_command
,只需手动执行一次安装并记下您按的键。然后告诉打包机帮你压。

© www.soinside.com 2019 - 2024. All rights reserved.