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.