PLAYBOOK := ansible/configuration.yml STAGE := vagrant ifeq ($(STAGE), prod) ANSIBLE_HOST_KEY_CHECKING := True INVENTORY := ansible/hosts_prod USER_ARGS := --user="major" --become else ANSIBLE_HOST_KEY_CHECKING := False INVENTORY := ansible/hosts_vagrant USER_ARGS := --user="root" endif ifneq ($(TAGS),) TAGS_ARGS := --tags="$(TAGS)" else TAGS_ARGS := endif # Tasks install-roles: ansible-galaxy install \ --role-file "ansible/requirements.yml" \ --force rebuild-test-machine: vagrant destroy -f && vagrant up edit-vars: EDITOR=micro \ ansible-vault edit ansible/vars/vars.yml configure: ANSIBLE_HOST_KEY_CHECKING=$(ANSIBLE_HOST_KEY_CHECKING) \ ansible-playbook \ $(USER_ARGS) \ $(TAGS_ARGS) \ --inventory="$(INVENTORY)" \ --extra-vars='ansible_python_interpreter=/usr/bin/python3' \ -vvv \ $(PLAYBOOK) configure-prod: $(MAKE) configure STAGE="prod" configure-monitoring: $(MAKE) configure STAGE="prod" TAGS="monitoring" configure-apps: $(MAKE) configure TAGS="webserver,apps,env" configure-apps-in-prod: $(MAKE) configure STAGE="prod" TAGS="webserver,apps,env" configure-users: $(MAKE) configure TAGS="apps,env" dry-run: ANSIBLE_HOST_KEY_CHECKING=$(ANSIBLE_HOST_KEY_CHECKING) \ ansible-playbook \ $(USER_ARGS) \ $(TAGS_ARGS) \ --inventory="$(INVENTORY)" \ --extra-vars='ansible_python_interpreter=/usr/bin/python3' \ --check \ --diff -vvv \ $(PLAYBOOK) list-tags: ansible-playbook \ --inventory="$(INVENTORY)" \ --list-tags \ $(PLAYBOOK) lint: ansible-lint "./ansible/configuration.yml" --exclude="./ansible/galaxy.roles/" -v || true ansible-lint "./ansible/roles/ssl-certificate/tasks/main.yml" -v || true caddy-hash-password: docker run -it caddy:2.5.2 caddy hash-password --plaintext="$(PASS)"