2017-09-11 3 views
0

Ich verwende Packer, um eine benutzerdefinierte virtuelle Maschine zu erstellen. Ich möchte den Postprozessor nach dem Build verwenden. Ich versuche es einfach zu halten, indem ich Inline-Befehle verwende. Einige von ihnen erfordern jedoch sudo. Dies ist das Problem, vor dem ich stehe - ich kann den execute_command anscheinend nicht richtig funktionieren lassen.Packer Shell-lokale Postprozessorberechtigungen

Zeit, was ich habe ist:

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

Daraus ergibt sich:

==> 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 ... 

Hat jemand eine Idee, wie ich das execute_command implementieren sollte es funktionieren zu machen?

Antwort

0

Sie sollten Ihr PASSWORD nicht an sudo weiterleiten!

Stattdessen, wenn Sie passwordless (NOPASSWD) sudo configure sudo, damit sie ausgeführt werden müssen. Überprüfen Sie auch, ob Sie benötigen. Siehe sudoers.conf.