.PHONY: all deploy check clean create debug TOKEN = $(shell ansible-vault decrypt --vault-password-file \ ~/.config/ansible/hcloud.secret --output - \ group_vars/all/vars.yaml | cut -d' ' -f2) SNAPNAME = $(shell cat group_vars/all/all.yaml | yq .snapshot) SNAPSHOT = $(shell hcloud image list -t snapshot -o yaml | \ yq '. | map(select(.description == "$(SNAPNAME)")) | .[].id') OPTIONS = -i inventory -t active CREATE_COMMAND = ansible-playbook create.yaml $(OPTIONS) DEPLOY_COMMAND = ansible-playbook deploy.yaml $(OPTIONS) CLEAN_COMMAND = ansible-playbook cleanup.yaml $(OPTIONS) HOSTS_COMMAND = ansible-playbook knownhosts.yaml $(OPTIONS) DEBUG_COMMAND = ansible-playbook debug.yaml $(OPTIONS) ENV = HCLOUD_TOKEN="$(TOKEN)" SNAPSHOT="$(SNAPSHOT)" ANSIBLE_VERBOSITY=$(verbose) test: @echo SNAPSHOT="$(SNAPSHOT)" all: create deploy debug: $(ENV) $(DEBUG_COMMAND) create: $(ENV) $(CREATE_COMMAND) hosts: $(ENV) $(HOSTS_COMMAND) deploy: $(ENV) $(DEPLOY_COMMAND) clean: $(ENV) $(CLEAN_COMMAND) check: ansible-playbook -vvv --ask-vault-pass deploy.yaml -i inventory --syntax-check