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