Chris,
I have never worked a full production workflow, but I had played with a semi-manual process using PXE/kickstart before looking at tools like Vagrant. What particularly appealed to me was the concept of taking things like kickstart files or additional provisioning script (be it shell scripts, Puppet manifests, or Chef recipes), and automating image builds with something like Jenkins.
Several of the Packer builders (e.g., vmware-iso, virtualbox-iso, qemu, etc) build VMs from iso files, boot commands, and associated setup scripts (e.g., kickstart files). These processes feel very similar to a PXE boot type process, and you can reuse your boot commands and kickstart files largely as is with these builders.
To your concerns, my thoughts:
- Image Management: AWS and VMware server tooling should help with some aspects of image management, but you'll need to determine how many instances of an imagine you wish to keep. Outside of storage, to me this is actually not a bad trade compared to some of the PXE stuff you won't need to manage.
- How much to push into the image: One use case for Packer is to bake most of your configuration into an image, and then connect it into your configuration management tool to keep it updated from there. You save time with the initial provisioning, but still can handle a long running instance staying configured. Packer's puppet provisioner can also use the same puppet manifests you would use in production when building the image.
- How does image processing/sizing work: this is a harder question to answer, because it depends on the builder and what is supported by the target environment. Packer builders I've worked with all rely on the tools of the target platform (vmware or virtualbox) to build images, so Packer does not bring any sizing magic that a given platform does not natively support. The only exception to this are some of the post-processors, like the Vagrant post-processor, which supports compressing the the builder artifacts and supporting files for distribution.
Hope that helps. I'd highly recommend running a few experiments with reusing your kickstart files from your PXE setup, along with some of your puppet manifests to get a feel for the behavior and what might work for you.
-Jason