1
- OS = $(strip $(shell uname -s) )
1
+ # Colors
2
+ YLW = \033[1;33m
3
+ RED = \033[0;31m
4
+ GRN = \033[0;32m
5
+ BLU = \033[0;34m
6
+ BLD = \033[1m
7
+ RST = \033[0m
2
8
3
- ifeq ($(OS ) ,Darwin)
4
- ARCH = darwin_amd64
9
+ OS = $(shell uname -s | tr A-Z a-z)
10
+ ARCH = "${OS}-$(shell uname -m) "
11
+
12
+ ifeq ($(OS ) ,darwin)
5
13
PROVISIONER_SHA1 = bd688a503f526beedaf6ef5d2dba1128051573b6
6
14
else
7
- ARCH = linux_amd64
8
- PROVISIONER_SHA1 = da9cdf019d8f860a6e417257d81b1b21aceba7b7
15
+ PROVISIONER_SHA1 = 1cbdf2bafe9e968a039264a6d3e6b58a2d2576eb
9
16
endif
10
17
11
18
TF_PLUGINS_DIR = $(HOME ) /.terraform.d/plugins
12
19
13
20
PROVISIONER_NAME = terraform-provisioner-ansible
14
- PROVISIONER_VERSION = v2.5.0
15
- PROVISIONER_ARCHIVE = $(PROVISIONER_NAME ) -$(subst _,-, $( ARCH )) _ $(PROVISIONER_VERSION )
16
- PROVISIONER_URL = https://github.com/radekg /terraform-provisioner-ansible/releases/download/$(PROVISIONER_VERSION ) /$(PROVISIONER_ARCHIVE )
17
- PROVISIONER_PATH = $(TF_PLUGINS_DIR ) /$(ARCH ) / $( PROVISIONER_NAME ) _ $( PROVISIONER_VERSION )
21
+ PROVISIONER_VERSION = v2.5.1
22
+ PROVISIONER_ARCHIVE = $(PROVISIONER_NAME ) -$(ARCH ) - $(PROVISIONER_VERSION )
23
+ PROVISIONER_URL = https://github.com/status-im /terraform-provisioner-ansible/releases/download/$(PROVISIONER_VERSION ) /$(PROVISIONER_ARCHIVE )
24
+ PROVISIONER_PATH = $(TF_PLUGINS_DIR ) /$(PROVISIONER_NAME )
18
25
19
- all : roles-install install-provisioner secrets init-terraform
26
+ all : roles-install install-provisioner secrets init-terraform checks
20
27
@echo " Success!"
21
28
22
29
roles-install :
23
- ansible/roles.py --install
30
+ @ ansible/roles.py --install
24
31
25
32
roles-check :
26
- ansible/roles.py --check
33
+ @ansible/roles.py --check || \
34
+ echo -e ' \n$(YLW)WARNING: Local role versions appear to be incorrect.$(RST)' >&2
27
35
28
36
roles-update :
29
- ansible/roles.py --update
37
+ @ ansible/roles.py --update
30
38
31
39
roles : roles-install roles-check
32
40
@@ -47,13 +55,30 @@ secrets:
47
55
pass services/vault/certs/client-user/cert > ansible/files/vault-client-user.crt
48
56
pass services/vault/certs/client-user/privkey > ansible/files/vault-client-user.key
49
57
50
- consul-token-check :
51
- ifndef CONSUL_HTTP_TOKEN
52
- $(error No CONSUL_HTTP_TOKEN env variable set!)
53
- endif
54
-
55
- init-terraform : consul-token-check
58
+ init-terraform : consul-check
56
59
terraform init -upgrade=true
57
60
58
61
cleanup :
59
62
rm -r $(TF_PLUGINS_DIR ) /$(ARCHIVE )
63
+
64
+ consul-check :
65
+ ifndef CONSUL_HTTP_TOKEN
66
+ @echo -e "$(RED)$(BLD)ERROR: No CONSUL_HTTP_TOKEN env variable set!$(RST)"; exit 1
67
+ endif
68
+
69
+ vault-check :
70
+ ifndef VAULT_TOKEN
71
+ @echo -e "$(RED)$(BLD)ERROR: No VAULT_TOKEN env variable set!$(RST)"; exit 1
72
+ endif
73
+
74
+ DIRENV_LOADED ?= $(shell direnv status --json | jq .state.loadedRC.allowed)
75
+ direnv-check :
76
+ @if [[ " $( DIRENV_LOADED) " -ne 0 ]] && [[ -z " $$ {DIRENV_IN_ENVRC}" ]]; then \
77
+ echo -e " $( YLW) WARNING: This repo assumes use of Direnv:$( RST) " \
78
+ " $( BLD) " ' eval "$$(direnv hook zsh)"; direnv allow' " $( RST) " ; \
79
+ fi
80
+
81
+ checks : roles-check direnv-check consul-check vault-check
82
+ @echo -e " \n$( GRN) $( BLD) WELCOME BACK, COMMANDER$( RST) "
83
+
84
+ .PHONY = checks roles-check direnv-check consul-check vault-check
0 commit comments