python library to create hashicorp packer templates
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
examples
src
tests
tools
.editorconfig
.gitignore
.travis.yml
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
LICENSE-3RD-PARTY.txt
README.rst
appveyor.yml
requirements-test.txt
requirements-travis.txt
requirements.txt
setup.cfg
setup.py
tox.ini

README.rst

packerlicious

https://travis-ci.org/mayn/packerlicious.svg?branch=master https://ci.appveyor.com/api/projects/status/9av1rr1li2ah25gs/branch/master?svg=true https://coveralls.io/repos/github/mayn/packerlicious/badge.svg?branch=master

About

packerlicious - a python library to create packer templates.

This project leverages the logic engine of troposphere.

Installation

packerlicious can be installed via pip:

$ pip install packerlicious

Examples

Below is the packerlicious equivalent of packer's example template

>>> from packerlicious import builder, provisioner, Template
>>> template = Template()
>>> template.add_builder(
        builder.AmazonEbs(
            access_key="...",
            secret_key="...",
            region = "us-east-1",
            source_ami="ami-fce3c696",
            instance_type="t2.micro",
            ssh_username="ubuntu",
            ami_name="packer {{timestamp}}"
        )
    )
<packerlicious.builder.AmazonEbs object at 0x104e87ad0>
>>> template.add_provisioner(
        provisioner.Shell(
            script="setup_things.sh"
        )
    )
<packerlicious.provisioner.Shell object at 0x1048c08d0>
>>> print(template.to_json())
{
  "builders": [
    {
      "access_key": "...",
      "ami_name": "packer {{timestamp}}",
      "instance_type": "t2.micro",
      "region": "us-east-1",
      "secret_key": "...",
      "source_ami": "ami-fce3c696",
      "ssh_username": "ubuntu",
      "type": "amazon-ebs"
    }
  ],
  "provisioners": [
    {
      "script": "setup_things.sh",
      "type": "shell"
    }
  ]
}

Currently supported Packer resources

Builders:

  • alicloud-ecs
  • amazon-chroot
  • amazon-ebs
  • amazon-ebssurrogate
  • amazon-ebsvolume
  • amazon-instance
  • azure-arm
  • cloudstack
  • digitalocean
  • docker
  • file
  • googlecompute
  • hyperv-iso
  • hyperv-vmcx
  • lxc
  • lxd
  • ncloud
  • null
  • oneandone
  • openstack
  • oracle-classic
  • parallels-iso
  • parallels-pvm
  • profitbricks
  • qemu
  • scaleway
  • triton
  • virtualbox-iso
  • virtualbox-ovf
  • vmware-iso
  • vmware-vmx

Post Processors:

  • alicloud-import
  • amazon-import
  • artifice
  • atlas
  • checksum
  • compress
  • docker-import
  • docker-push
  • docker-save
  • docker-tag
  • googlecompute-import
  • googlecompute-export
  • manifest
  • shell-local
  • vagrant
  • vagrant-cloud
  • vsphere
  • vsphere-template

Provisioners:

  • ansible-local
  • ansible
  • chef-client
  • chef-solo
  • converge
  • file
  • powershell
  • puppet-masterless
  • puppet-server
  • salt-masterless
  • shell
  • shell-local
  • windows-shell
  • windows-restart

Community Plugins:

  • packer-provisioner-inspec

Licensing

packerlicious is licensed under the Apache license 2.0. See LICENSE for the full license text.

packerlicious contains source code from troposphere which is licensed under the BSD 2-Clause license