0.01
No commit activity in last 3 years
No release in over 3 years
A Ruby client for HashiCorp's Packer tool.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.10
~> 10.0
>= 0

Runtime

~> 0.9
 Project Readme

Packer Client

Build Status

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.