From e4a34996ea16dc63633747f54421c1d71982c97e Mon Sep 17 00:00:00 2001 From: Craig Tracey Date: Sun, 21 Jan 2018 22:10:44 -0500 Subject: [PATCH] Add packer builder for raw images This builder will build images, in the same manner as other builders, but with qemu as the "cloud provider." Right now these are for (large) raw images, but this could probably be easily evolved into supporting qcow2. Signed-off-by: Craig Tracey --- packer/.gitignore | 2 ++ packer/README.md | 10 +++++++++- packer/cloud.cfg | 5 +++++ packer/packer.json | 25 +++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 packer/.gitignore create mode 100644 packer/cloud.cfg diff --git a/packer/.gitignore b/packer/.gitignore new file mode 100644 index 0000000..d0c86f7 --- /dev/null +++ b/packer/.gitignore @@ -0,0 +1,2 @@ +packer_cache/ +output*/ diff --git a/packer/README.md b/packer/README.md index 80165b3..3d3f60d 100644 --- a/packer/README.md +++ b/packer/README.md @@ -20,12 +20,20 @@ build the AMI's From this directory, simply run: ``` -/path/to/packer build -var-file .json -var kubernetes_version= -var kubernetes_cni_version= -var build_version=`git rev-parse HEAD` packer.json +$ /path/to/packer build -var-file .json -var kubernetes_version= -var kubernetes_cni_version= -var build_version=`git rev-parse HEAD` packer.json ``` This will build AMI images in the us-east AWS region (additional region support to follow). You may limit which images build by adding the `-only=` flag to Packer. +build raw images +---------------- +From this directory, run: +``` +$ cloud-localds cloud.img cloud.cfg +$ /path/to/packer -var kubernetes_version= -var kubernetes_cni_version= -var build_version=`git rev-parse HEAD` packer.json +``` + deployment ---------- There is a helper script to aid in seeding built AMI's to all other AWS regions. diff --git a/packer/cloud.cfg b/packer/cloud.cfg new file mode 100644 index 0000000..278c303 --- /dev/null +++ b/packer/cloud.cfg @@ -0,0 +1,5 @@ +#cloud-config +password: ubuntu +ssh_pwauth: true +chpasswd: + expire: false diff --git a/packer/packer.json b/packer/packer.json index 93c4852..495eabe 100644 --- a/packer/packer.json +++ b/packer/packer.json @@ -47,6 +47,31 @@ "kubernetes_version": "{{user `kubernetes_version`}}", "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}" } + }, + { + "name": "raw-ubuntu-16.04", + "type": "qemu", + "iso_url": "http://mirrors.servercentral.com/ubuntu-cloud-images/xenial/current/xenial-server-cloudimg-amd64-disk1.img", + "iso_checksum": "bdfcdcba8c31dba48b5d5482ae922d153a4d46b2", + "iso_checksum_type": "sha1", + "disk_image": true, + "disk_size": 2500, + "format": "raw", + "headless": true, + "disk_compression": true, + "ssh_username": "ubuntu", + "ssh_password": "ubuntu", + "disk_interface": "virtio", + "accelerator": "none", + "qemuargs": [ + "-no-kvm", + [ "-machine", "pc" ], + [ "-m", "2048M" ], + ["-smp", "2"], + ["-fda", "cloud.img"], + ["-serial", "mon:stdio"] + ], + "vnc_bind_address": "0.0.0.0" } ], "provisioners": [