summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
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: