bsdnix/Makefile

44 lines
1.1 KiB
Makefile

.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