summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorJonathan Bauer2017-04-11 18:46:54 +0200
committerJonathan Bauer2017-04-11 18:46:54 +0200
commitdc2de921c387edf0c215b33109f0b6a255f753fd (patch)
treebb20b7e5ad8cba3aad721e304a0b562c9b8bfc17 /Makefile
parent[ubuntu] support root password via ROOTPW env (diff)
downloadpacker-templates-dc2de921c387edf0c215b33109f0b6a255f753fd.tar.gz
packer-templates-dc2de921c387edf0c215b33109f0b6a255f753fd.tar.xz
packer-templates-dc2de921c387edf0c215b33109f0b6a255f753fd.zip
introduce Makefile to simplify building templates
updated ubuntu/centos templates to fixed output names, moved manifest.json to builder's subfolder, updated README.md to reflect the changes
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile38
1 files changed, 38 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..012ccbb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,38 @@
+# Simple Makefile to build packer templates
+# TODO:
+# - allow overriding packer variables
+# - check for hypervisors (and invalidate targets)
+# - provisioning logic
+BUILDERS = qemu vmware-iso virtualbox-iso
+TEMPLATES := $(basename $(filter-out base.json,$(wildcard *.json)))
+TARGETS := $(foreach builder, $(BUILDERS), $(foreach template, $(TEMPLATES), $(builder)/$(template)))
+PACKER_OPTS := -var-file=base.json
+
+.PHONY: all list clean
+all: list
+
+$(TARGETS):
+ifndef ROOTPW
+ $(error ROOTPW is not set)
+endif
+
+ $(info Building '$(@F)' with '$(@D)')
+ packer build -only=$(@D) \
+ $(PACKER_OPTS) \
+ -var='vm_name=$(@F)' \
+ $(@F).json
+
+list:
+ $(info Possible targets:)
+ @(for F in $(TARGETS); do echo -e "\t$$F" ; done)
+
+clean:
+ $(foreach builder,$(BUILDERS),rm -rf $(builder)/;)
+
+# convenience do-nothing targets for auto-complete
+qemu/ubuntu-16.04-amd64:
+qemu/centos-7.3-x86_64:
+virtualbox-iso/ubuntu-16.04-amd64:
+virtualbox-iso/centos-7.3-x86_64:
+vmware-iso/ubuntu-16.04-amd64:
+vmware-iso/centos-7.3-x86_64: