diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e8feee0 --- /dev/null +++ b/Makefile @@ -0,0 +1,183 @@ +#!make + +# if not set, set defaults +#PARALLEL_BUILDS ?= 0 +PACKER_LOG ?= 0 +# always use DISPLAY :99 +DISPLAY=:99 +#export DISPLAY +# include .env vars +-include .env +# export all +export + +VM_NAME_FILE := .vm_name +VM_NAME := $(shell cat $(VM_NAME_FILE)) +SRC_QCOW2 := iso/$(VM_NAME)-build1.qcow2 +DST_QCOW2 := iso/$(VM_NAME)-build2.qcow2 +SRC_CHECKSUM := iso/$(VM_NAME)-build1.qcow2.checksum +DST_CHECKSUM := iso/$(VM_NAME)-build2.qcow2.checksum + + +.PHONY: help +help: + @echo "make working:" + @echo "- will use local.pkrvars.hcl if exists or vyos.pkrvars.hcl" + @echo "- will load .env if file exists" + + @echo "make usage:" + @echo " make build - build image with 'packer build'" + @echo " make init - init 'packer init'" + @echo " make upgrade - init 'packer init -upgrade'" + @echo " make clean - remove output files" + @echo " make x11server - start Xvfb X11 server on DISPLAY=:99. Require apt install xvfb" + + + + + +# ifneq ("$(wildcard .env)","") +# include .env +# export +# endif + + +.PHONY: build1-1.3 +build1-1.3: +# if exist local.pkrvars.hcl load it +ifneq ($(wildcard local-vyos-1.3.pkrvars.hcl),) + packer build \ + -var-file=local-vyos-1.3.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image1-1.3.pkr.hcl +else + packer build \ + -var-file=vyos-1.3.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image1-1.3.pkr.hcl +endif + +.PHONY: build1-1.4 +build1-1.4: +# if exist local.pkrvars.hcl load it +ifneq ($(wildcard local-vyos-1.4.pkrvars.hcl),) + packer build \ + -var-file=local-vyos-1.4.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image1-1.4.pkr.hcl +else + packer build \ + -var-file=vyos-1.4.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image1-1.4.pkr.hcl +endif + + +.PHONY: build1-1.5 +build1-1.5: +# if exist local.pkrvars.hcl load it +ifneq ($(wildcard local-vyos-1.5.pkrvars.hcl),) + packer build \ + -var-file=local-vyos-1.5.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image1-1.5.pkr.hcl +else + packer build \ + -var-file=vyos-1.5.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image1-1.5.pkr.hcl +endif + + +.PHONY: build2-1.3 +build2-1.3: +# create a copy of qcow2 - if build2 fail you can run again + cp -f $(SRC_QCOW2) $(DST_QCOW2) + cp -f $(SRC_CHECKSUM) $(DST_CHECKSUM) + sed -i 's/$(VM_NAME)-build1.qcow2/$(VM_NAME)-build2.qcow2/' $(DST_CHECKSUM) + cat iso/*.checksum > iso/SHA256SUM + +# if exist local.pkrvars.hcl load it +ifneq ($(wildcard local-vyos-1.3.pkrvars.hcl),) + packer build \ + -var-file=local-vyos-1.3.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image2-1.3.pkr.hcl +else + packer build \ + -var-file=vyos-1.3.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image2-1.3.pkr.hcl +endif + + +.PHONY: build2-1.4 +build2-1.4: +# create a copy of qcow2 - if build2 fail you can run again + cp -f $(SRC_QCOW2) $(DST_QCOW2) + cp -f $(SRC_CHECKSUM) $(DST_CHECKSUM) + sed -i 's/$(VM_NAME)-build1.qcow2/$(VM_NAME)-build2.qcow2/' $(DST_CHECKSUM) + cat iso/*.checksum > iso/SHA256SUM + +# if exist local.pkrvars.hcl load it +ifneq ($(wildcard local-vyos-1.4.pkrvars.hcl),) + packer build \ + -var-file=local-vyos-1.4.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image2-1.4.pkr.hcl +else + packer build \ + -var-file=vyos-1.4.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image2-1.4.pkr.hcl +endif + +.PHONY: build2-1.5 +build2-1.5: +# create a copy of qcow2 - if build2 fail you can run again + cp -f $(SRC_QCOW2) $(DST_QCOW2) + cp -f $(SRC_CHECKSUM) $(DST_CHECKSUM) + sed -i 's/$(VM_NAME)-build1.qcow2/$(VM_NAME)-build2.qcow2/' $(DST_CHECKSUM) + cat iso/*.checksum > iso/SHA256SUM + +# if exist local.pkrvars.hcl load it +ifneq ($(wildcard local-vyos-1.5.pkrvars.hcl),) + packer build \ + -var-file=local-vyos-1.5.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image2-1.5.pkr.hcl +else + packer build \ + -var-file=vyos-1.5.pkrvars.hcl \ + -parallel-builds=0 \ + vyos-image2-1.5.pkr.hcl +endif + + +.PHONY: init +init: + packer init vyos-image1-1.3.pkr.hcl + packer init vyos-image1-1.4.pkr.hcl + packer init vyos-image1-1.5.pkr.hcl + packer init vyos-image2-1.3.pkr.hcl + packer init vyos-image2-1.4.pkr.hcl + packer init vyos-image2-1.5.pkr.hcl + +.PHONY: upgrade +upgrade: + packer init -upgrade vyos-image1-1.3.pkr.hcl + packer init -upgrade vyos-image1-1.4.pkr.hcl + packer init -upgrade vyos-image1-1.5.pkr.hcl + packer init -upgrade vyos-image2-1.3.pkr.hcl + packer init -upgrade vyos-image2-1.4.pkr.hcl + packer init -upgrade vyos-image2-1.5.pkr.hcl + +.PHONY: clean +clean: + rm -rf output/* + +# you need to run this first to use headless=false +.PHONY: x11server +x11server: + Xvfb :99 -screen 0 1024x768x16 & + export DISPLAY=:99 |