packerlicious - a python library to create packer templates.
This project leverages the logic engine of troposphere.
packerlicious can be installed via pip:
$ pip install packerlicious
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"
}
]
}
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
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