bsdnix/Makefile

61 lines
1.7 KiB
Makefile
Raw Normal View History

.PHONY: all deploy check clean create debug editvars test
VARS = group_vars/all/vars.yaml
VALL = group_vars/all/all.yaml
SECRET = ~/.config/ansible/hcloud.secret
KEYDIR = roles/pub/files/keys
TOKEN = $(shell ansible-vault decrypt --output - $(VARS) | grep hetzner_cloud_token | cut -d' ' -f2)
DNSTOKEN = $(shell ansible-vault decrypt --output - $(VARS) | grep hetzner_dns_token | cut -d' ' -f2)
SNAPNAME = $(shell cat $(VALL) | 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)
SHOW_COMMAND = ansible-inventory -i inventory/hosts.hcloud.yaml --list
2024-11-06 19:51:04 +01:00
ENV = HCLOUD_TOKEN="$(TOKEN)" HETZNER_DNS_TOKEN="$(DNSTOKEN)" SNAPSHOT="$(SNAPSHOT)" ANSIBLE_VERBOSITY=$(verbose)
all: create deploy
debug:
$(ENV) $(DEBUG_COMMAND)
create:
$(ENV) $(CREATE_COMMAND)
hosts:
$(ENV) $(HOSTS_COMMAND)
# remove ssh control point, which may lead to hangs if wifi breaks during deployment
deploy:
rm -rf ~/.ansible/cp/*
$(ENV) $(DEPLOY_COMMAND)
clean:
$(ENV) $(CLEAN_COMMAND)
2024-11-06 19:51:04 +01:00
check:
2024-11-25 18:29:17 +01:00
$(ENV) ansible-playbook deploy.yaml --syntax-check
bin/encryptkeys $(KEYDIR) $(SECRET) check
encryptkeys:
bin/encryptkeys $(KEYDIR) $(SECRET) encrypt
editvars:
ansible-vault decrypt $(VARS)
vi $(VARS)
ansible-vault encrypt $(VARS)
2024-11-19 18:38:45 +01:00
showvars:
ansible-vault decrypt $(VARS) --output -
showinventory:
$(ENV) $(SHOW_COMMAND)