packer-bosh

module
v0.0.0-...-a663b2b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2016 License: MIT

README

BOSH provisioner for Packer

BOSH provisioner allows to provision VM by specifying regular BOSH deployment manifest.

You might also be interested in vagrant-bosh.

Usage

  1. Run go get github.com/cppforlife/packer-bosh to download packer-bosh. Make sure to run git submodule update --init from inside packer-bosh directory.

  2. Configure Packer's $HOME/.packerconfig to know about packer-bosh executable:

{
  "provisioners": {
    "packer-bosh": "/your-bin-dir/packer-bosh"
  }
}

See Packer core configuration for more details on how to configure custom provisioners.

  1. Add new provisioning step to your template.json. For example:
{
  ...

  "provisioners": [{
    "type": "packer-bosh",
    "manifest_path": "example-bosh-lite-manifest.yml",
    "assets_dir": "/your-go-dir/src/github.com/cppforlife/packer-bosh/bosh-provisioner/assets",
    "ssh_password": "ubuntu"
  }]
}

See dev/template-vbox-*.json for example using VirtualBox.

  1. Create a deployment manifest and specify it via manifest_path option. See dev/example-bosh-manifest.yml for an example deployment manifest used to deploy BOSH Director with BOSH Warden CPI.

  2. Run packer build to build a VM

Provisioner options

  • manifest_path (String, default: nil) must contain a local path to a full BOSH deployment manifest (unless remote_manifest_path is provided)

  • remote_manifest_path (String, default: nil)

    • if manifest_path is not provided, a manifest must be present at remote_manifest_path
    • if manifest_path is also provided, it will be uploaded to remote_manifest_path instead of the default location
  • assets_dir (String, default: nil) should contain path to directory with bosh-provisioner assets

  • ssh_password (String, default: nil) should contain password of SSH user to run sudo; can be empty if password-less sudo is configured

  • full_stemcell_compatibility (Boolean, default: false) forces provisioner to install all (not just minimum) dependencies usually found on a stemcell

  • agent_infrastructure (String, default: warden) configures BOSH Agent infrastructure (e.g. aws, openstack)

  • agent_platform (String, default: ubuntu) configures BOSH Agent platform (e.g. ubuntu, centos)

  • agent_configuration (Hash, default: '{ ... }')

Using provisioner to build BOSH stemcells

See building AWS Stemcell.

Directories

Path Synopsis
Godeps
_workspace/src/code.google.com/p/go.crypto/ssh
Package ssh implements an SSH client and server.
Package ssh implements an SSH client and server.
_workspace/src/code.google.com/p/go.crypto/ssh/agent
Package agent implements a client to an ssh-agent daemon.
Package agent implements a client to an ssh-agent daemon.
_workspace/src/code.google.com/p/go.crypto/ssh/terminal
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
Package terminal provides support functions for dealing with terminals, as commonly found on UNIX systems.
_workspace/src/code.google.com/p/go.crypto/ssh/test
This package contains integration tests for the code.google.com/p/go.crypto/ssh package.
This package contains integration tests for the code.google.com/p/go.crypto/ssh package.
_workspace/src/github.com/hashicorp/go-msgpack/codec
High Performance, Feature-Rich Idiomatic Go encoding library for msgpack and binc .
High Performance, Feature-Rich Idiomatic Go encoding library for msgpack and binc .
_workspace/src/github.com/mitchellh/mapstructure
The mapstructure package exposes functionality to convert an abitrary map[string]interface{} into a native Go structure.
The mapstructure package exposes functionality to convert an abitrary map[string]interface{} into a native Go structure.
_workspace/src/github.com/mitchellh/multistep
multistep is a library for bulding up complex actions using individual, discrete steps.
multistep is a library for bulding up complex actions using individual, discrete steps.
_workspace/src/github.com/mitchellh/packer/packer
The packer package contains the core components of Packer.
The packer package contains the core components of Packer.
_workspace/src/github.com/mitchellh/packer/packer/plugin
The plugin package provides the functionality to both expose a Packer plugin binary and to connect to an existing Packer plugin binary.
The plugin package provides the functionality to both expose a Packer plugin binary and to connect to an existing Packer plugin binary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL