Skip to content

mayn/packerlicious

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jul 13, 2019
0d91aa3 · Jul 13, 2019
Oct 14, 2017
Apr 23, 2018
Jul 13, 2019
Jul 13, 2019
Oct 18, 2017
Aug 5, 2017
Mar 15, 2018
Oct 17, 2018
Jul 13, 2019
Jul 16, 2017
Aug 12, 2017
Jul 16, 2017
Aug 12, 2017
Jul 13, 2019
Oct 13, 2018
Jul 16, 2017
Aug 13, 2017
Aug 12, 2017
Jul 23, 2018
Oct 13, 2018
Oct 13, 2018

Repository files navigation

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
  • hcloud
  • hetznercloud
  • hyperone
  • hyperv-iso
  • hyperv-vmcx
  • linode
  • lxc
  • lxd
  • ncloud
  • null
  • oneandone
  • openstack
  • oracle-classic
  • parallels-iso
  • parallels-pvm
  • profitbricks
  • proxmox
  • qemu
  • scaleway
  • tencentcloud-cvm
  • triton
  • vagrant
  • virtualbox-iso
  • virtualbox-ovf
  • vmware-iso
  • vmware-vmx
  • yandex

Post Processors:

  • alicloud-import
  • amazon-import
  • artifice
  • atlas
  • checksum
  • compress
  • digitalocean-import
  • 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
  • breakpoint
  • chef-client
  • chef-solo
  • converge
  • file
  • inspec
  • powershell
  • puppet-masterless
  • puppet-server
  • salt-masterless
  • shell
  • shell-local
  • windows-shell
  • windows-restart

Community Plugins:

Builders:

  • jetbrains-infra/packer-builder-vsphere (vsphere-iso, vsphere-clone)
  • solo-io/packer-builder-arm-image

Provisioners:

  • jrbeilke/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