Packer Client
A ruby client for HashiCorp's Packer tool.
Installation
Add this line to your application's Gemfile:
gem 'packer-client'
And then execute:
$ bundle
Or install it yourself as:
$ gem install packer-client
Usage
require 'packer'
client = Packer::Client.new
# Override path to Packer executable
client.executable_path = 'C:\HashiCorp\Packer\packer.exe'
# Override maximum time that Packer may execute for
client.execution_timeout = 7200
Build: Build image(s) from template
client.build('template.json')
# Get build artifacts
client.build('template.json').artifacts
# Get packer output
result = client.build('template.json')
puts result.stdout
# Or have output streamed directly to stdout
result = client.build('template.json', live_stream: $STDOUT)
Fix: Fix template
# Get the fixed template JSON
client.fix('template.json').json
# Determine if template is valid
client.fix('template.json').valid?
Inspect: See components of a template
# Get user variables
client.inspect_template('template.json').template_variables
# Get builders
client.inspect_template('template.json').template_builders
# Get provisioners
client.inspect_template('template.json').template_provisioners
Push: Push a template to a Packer build service
client.push('template.json')
Validate: Check that a template is valid
client.validate('template.json').valid?
Version: Get the Packer version
# Get version
client.version.version
# Get version commit
client.version.version_commit
# Get prerelease version
client.version.version_prerelease
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/zl4bv/packer-client. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.