Packer shell-local post-процессор разрешений

Я использую 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, чтобы он работал?

1 ответ

Вы не должны связывать свой ПАРОЛЬ с sudo!

Вместо этого, если вам нужно запустить без пароля (NOPASSWD) sudo настроить sudo, чтобы разрешить это. Также проверьте, если вам нужно !requiretty, Смотрите sudoers.conf.

Другие вопросы по тегам