2024-11-21 19:38:55 +01:00
|
|
|
.PHONY: all deploy check clean create debug editvars test
|
2024-11-08 20:08:56 +01:00
|
|
|
|
2024-11-17 16:34:32 +01:00
|
|
|
|
2024-11-27 12:42:27 +01:00
|
|
|
VARS = group_vars/all/vars.yaml
|
|
|
|
|
VALL = group_vars/all/all.yaml
|
|
|
|
|
SECRET = ~/.config/ansible/hcloud.secret
|
2024-12-10 17:47:38 +01:00
|
|
|
KEYDIR = roles/pub/files/keys
|
2024-11-27 12:42:27 +01:00
|
|
|
TOKEN = $(shell ansible-vault decrypt --output - $(VARS) | grep hetzner_cloud_token | cut -d' ' -f2)
|
2024-12-10 17:47:38 +01:00
|
|
|
DNSTOKEN = $(shell ansible-vault decrypt --output - $(VARS) | grep hetzner_dns_token | cut -d' ' -f2)
|
2024-11-27 12:42:27 +01:00
|
|
|
SNAPNAME = $(shell cat $(VALL) | yq .snapshot)
|
|
|
|
|
|
|
|
|
|
SNAPSHOT = $(shell hcloud image list -t snapshot -o yaml | \
|
2024-11-17 17:54:49 +01:00
|
|
|
yq '. | map(select(.description == "$(SNAPNAME)")) | .[].id')
|
2024-11-11 19:28:55 +01:00
|
|
|
|
2024-11-17 16:34:32 +01:00
|
|
|
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)
|
2024-11-26 13:09:26 +01:00
|
|
|
SHOW_COMMAND = ansible-inventory -i inventory/hosts.hcloud.yaml --list
|
2024-11-06 19:51:04 +01:00
|
|
|
|
2024-12-10 17:47:38 +01:00
|
|
|
ENV = HCLOUD_TOKEN="$(TOKEN)" HETZNER_DNS_TOKEN="$(DNSTOKEN)" SNAPSHOT="$(SNAPSHOT)" ANSIBLE_VERBOSITY=$(verbose)
|
2024-11-08 20:08:56 +01:00
|
|
|
|
2024-11-16 11:16:54 +01:00
|
|
|
all: create deploy
|
|
|
|
|
|
2024-11-12 19:09:20 +01:00
|
|
|
debug:
|
|
|
|
|
$(ENV) $(DEBUG_COMMAND)
|
|
|
|
|
|
2024-11-12 14:08:53 +01:00
|
|
|
create:
|
|
|
|
|
$(ENV) $(CREATE_COMMAND)
|
2024-11-08 20:08:56 +01:00
|
|
|
|
2024-11-12 14:08:53 +01:00
|
|
|
hosts:
|
|
|
|
|
$(ENV) $(HOSTS_COMMAND)
|
2024-11-08 20:08:56 +01:00
|
|
|
|
2024-12-13 18:39:21 +01:00
|
|
|
# remove ssh control point, which may lead to hangs if wifi breaks during deployment
|
2024-11-12 19:09:20 +01:00
|
|
|
deploy:
|
2024-12-13 18:39:21 +01:00
|
|
|
rm -rf ~/.ansible/cp/*
|
2024-11-12 14:08:53 +01:00
|
|
|
$(ENV) $(DEPLOY_COMMAND)
|
2024-11-11 19:28:55 +01:00
|
|
|
|
|
|
|
|
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
|
2024-11-27 12:42:27 +01:00
|
|
|
bin/encryptkeys $(KEYDIR) $(SECRET) check
|
|
|
|
|
|
|
|
|
|
encryptkeys:
|
|
|
|
|
bin/encryptkeys $(KEYDIR) $(SECRET) encrypt
|
2024-11-18 18:33:33 +01:00
|
|
|
|
|
|
|
|
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 -
|
2024-11-26 13:09:26 +01:00
|
|
|
|
|
|
|
|
showinventory:
|
|
|
|
|
$(ENV) $(SHOW_COMMAND)
|