avoid panic debugging ssh key

This commit is contained in:
Adrien Delorme 2020-10-20 16:59:46 +02:00
parent f51b231c17
commit d1e0214bec
2 changed files with 3 additions and 5 deletions

View File

@ -66,6 +66,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
multistep.If(b.config.PackerDebug && b.config.Comm.SSHPrivateKeyFile == "",
&communicator.StepDumpSSHKey{
Path: fmt.Sprintf("gce_%s.pem", b.config.PackerBuildName),
SSH: &b.config.Comm.SSH,
},
),
&StepImportOSLoginSSHKey{

View File

@ -13,18 +13,15 @@ import (
// keypair somewhere.
type StepDumpSSHKey struct {
Path string
SSH *SSH
}
func (s *StepDumpSSHKey) Run(_ context.Context, state multistep.StateBag) multistep.StepAction {
ui := state.Get("ui").(packer.Ui)
// Put communicator config into state so we can pass it to provisioners
// for specialized interpolation later
comm := state.Get("communicator_config").(Config)
ui.Message(fmt.Sprintf("Saving key for debug purposes: %s", s.Path))
err := ioutil.WriteFile(s.Path, comm.SSHPrivateKey, 0700)
err := ioutil.WriteFile(s.Path, s.SSH.SSHPrivateKey, 0700)
if err != nil {
state.Put("error", fmt.Errorf("Error saving debug key: %s", err))
return multistep.ActionHalt