Skip to content

A command line convenience wrapper around Packer to create Bitswarm base and application images

License

Notifications You must be signed in to change notification settings

bitswarmlabs/bitswarmbox

 
 

Repository files navigation

BitswarmBox - Packer Convenience Wrapper for building Bitswarm.io

Packer templates for provisioning host operating system environments for the Bitswarm ecosystem.

Packer Templates:

Before building any of these templates, you will need to ensure you have suitable AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables available.

bitswarm-base

Creates image suitable for general purpose usage, including Puppet 4 pre-configured against puppet master server.

bitswarm-puppetmaster

A puppet master server, preloaded with Puppet 4, PuppetDB 4, Facter, Hiera, and mCollective.

If the Packer configuration variables puppet_scm_repo and github_webhook_api_token are set in Packer, this repo will be preconfigured for use via r10k.

When this template is built, scripts/local-ssh-key.sh is invoked which will create an RSA keypair locally within keys/ and this will be preloaded into the resulting AMIs.

Pre-requisites

  • AWS api key and secret for user with sufficient permissions
  • Github API token for user with "owner" role of repos to be used as r10k sources. Owner is necessary for the ability to interact with the Github API on the repos to install deployment keys.

Installation & Requirements

[sudo] gem install bitswarmbox

bitswarmbox leans on [Packer][] and [VirtualBox][], [VMware Fusion][fusion] or [VMware Workstation][workstation] for building boxes and these will need to available in your $PATH.

Example Usage

bitswarmbox is driven by the bitswarmbox command line tool, and works with artifacts inside it's own working directory. You need to specify a name for the build, a template to work with and the output provider. Something like so:

bitswarmbox build \
  --name=trusty64-empty \
  --template=ubuntu/trusty64 \
  --provider=vmware

This will build a file called trusty64-empty.box in the current directory.

There's lots more to bitswarmbox than building simple empty Vagrant boxes like this, which can be see in the inline help.

Acknowledgements

Many thanks to the upstream sources from which this derives, most notably Nick Charlton's Boxes.io.

Disclaimer

No warranties given, expressed or implied. Use with parental supervision.

For more information

http://bitswarm.io/

About

A command line convenience wrapper around Packer to create Bitswarm base and application images

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 36.0%
  • Ruby 35.1%
  • Shell 16.3%
  • Puppet 11.4%
  • Gherkin 1.2%