ivoronin / packer-plugin-sshkey

Packer plugin used to generate SSH keys.
17 stars 10 forks source link
packer plugin ssh

Packer SSH key plugin

Packer plugin used to generate SSH keys.

For the full list of available features for this plugin see documentation.

Packer 1.7.3 or later is required.

Usage example

packer {
  required_plugins {
    sshkey = {
      version = ">= 1.1.0"
      source = "github.com/ivoronin/sshkey"
    }
  }
}

variables {
  temporary_key_pair_name = "my_temp_key"
}

data "sshkey" "install" {
  name = var.temporary_key_pair_name
}

source "qemu" "install" {
  ssh_username              = "root"
  ssh_private_key_file      = data.sshkey.install.private_key_path
  ssh_clear_authorized_keys = true
  temporary_key_pair_name   = var.temporary_key_pair_name
  http_content = {
    "/preseed.cfg" = templatefile("preseed.cfg.pkrtpl", {
        "ssh_public_key" : data.sshkey.install.public_key
    })
  }
  <...>
}

build {
  sources = ["source.qemu.install"]
}

Starting from version 1.7, Packer supports a new packer init command allowing automatic installation of Packer plugins. Read the Packer documentation for more information.

[!NOTE] Packer 1.8.5 has a -evaluate-datasources option which solves the ssh_private_key_file is invalid issue. Run: packer validate test.pkr.hcl -evaluate-datasources