0

我正在使用 Packer 创建自定义虚拟机。我想在构建完成后使用后处理器。我试图保持简单,使用内联命令。但是,其中一些需要 sudo。这是我面临的问题 - 我似乎无法让 execute_command 正常工作。

目前我拥有的是:

"post-processors": [
    {
        "type":"shell-local",
        "execute_command": "echo 'password' | sudo",
        "inline": ["command 1", "command 2", "sudo command 3"]
    }
  ]

这导致:

==> vmware-iso: Running post-processor: shell-local
==> vmware-iso (shell-local): Post processing with local shell script: /tmp/packer-shell867480064
    vmware-iso (shell-local): usage: sudo -h | -K | -k | -V
    vmware-iso (shell-local): usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
    vmware-iso (shell-local): usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user]
    vmware-iso (shell-local): [command]
    vmware-iso (shell-local): usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
    vmware-iso (shell-local): prompt] [-u user] [VAR=value] [-i|-s] [<command>]
    vmware-iso (shell-local): usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
    vmware-iso (shell-local): prompt] [-u user] file ...

有谁知道我应该如何实现 execute_command 以使其工作?

4

1 回答 1

0

您不应该将您的密码传递给 sudo!

相反,如果您需要运行无密码 ( NOPASSWD) sudo,请配置 sudo 以允许它。还要验证您是否需要!requiretty. 请参阅sudoers.conf

于 2017-09-11T12:10:54.827 回答