Packer Post-Processor plugin for updating JSON files
Go Makefile
Latest commit fe9dcd2 Nov 6, 2016 @cliffano Add colophon section.
Permalink
Failed to load latest commit information.
Godeps
testdata
.gitignore
.travis.yml
CHANGELOG.md
LICENSE
Makefile
README.md
avatar.jpg
main.go
post-processor.go
updater.go
updater_test.go

README.md

Avatar

Build Status

Packer Post-Processor JSON Updater

A Packer Post-Processor plugin for updating JSON files.

This is handy when you want to update one or more JSON files after Packer already finish executing the builders.

An example scenario is when you have several Packer templates where the built image of a template becomes the source of a number of other templates.

Installation

Download the plugin binaries from Releases page, or build from source using make build or other Go build tools of your choice. Then follow Packer plugins installation guide.

If you downloaded one of the pre-built binaries, make sure that you rename the binary file to packer-post-processor-json-updater (i.e. remove the _os_arch postfix).

Usage

Add json-updater type to Packer template's post-processor section:

"post-processors": [
    {
        "type": "json-updater",
        "ami_id": {
            "templates/child_template_1.json": [
                "variables.aws_source_ami"
            ],
            "templates/child_template_2.json": [
                "variables.aws_source_ami"
            ]
        }
    }
]

The above ami_id configuration indicates that the ID of the newly created AWS AMI will be set as the value of variables.aws_source_ami key in templates/child_template_1.json and templates/child_template_2.json files.

"variables": {
    "aws_source_ami": "<ami_id>"
}

Variable interpolation is also supported:

"variables": {
    "build_id": "build_123"
},
"post-processors": [
    {
        "type": "json-updater",
        "ami_id": {
            "templates/child_template_3.json": [
                "variables.aws_source_ami_{{user `build_id` }}"
            ],
        }
    }
]

The above ami_id configuration indicates that the ID of the newly created AWS AMI will be set as the value of variables.aws_source_ami_build_123 key in templates/child_template_3.json file.

"variables": {
    "aws_source_ami_build_123": "<ami_id>"
}

Colophon

Articles: