# NetBox Ansible Deployment Makefile .PHONY: help install-collections deploy update backup check-syntax encrypt-vault decrypt-vault traefik-status traefik-logs traefik-access-logs traefik-restart traefik-update-ca help: ## Show this help message @echo "NetBox Ansible Deployment" @echo "========================" @echo "" @echo "Available commands:" @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-20s %s\n", $$1, $$2}' $(MAKEFILE_LIST) install-collections: ## Install required Ansible collections ansible-galaxy collection install -r requirements.yml deploy: ## Deploy NetBox (requires vault password) ansible-playbook -i inventory/hosts.yml playbooks/deploy-netbox.yml --vault-password-file .vault-password update: ## Update NetBox ansible-playbook -i inventory/hosts.yml playbooks/update-netbox.yml --vault-password-file .vault-password backup: ## Backup NetBox ansible-playbook -i inventory/hosts.yml playbooks/backup-netbox.yml --vault-password-file .vault-password check-syntax: ## Check Ansible playbook syntax ansible-playbook -i inventory/hosts.yml playbooks/deploy-netbox.yml --syntax-check ansible-playbook -i inventory/hosts.yml playbooks/update-netbox.yml --syntax-check ansible-playbook -i inventory/hosts.yml playbooks/backup-netbox.yml --syntax-check encrypt-vault: ## Encrypt vault file ansible-vault encrypt inventory/group_vars/netbox_servers_vault decrypt-vault: ## Decrypt vault file ansible-vault decrypt inventory/group_vars/netbox_servers_vault edit-vault: ## Edit encrypted vault file ansible-vault edit inventory/group_vars/netbox_servers_vault dry-run: ## Run playbook in check mode (dry run) ansible-playbook -i inventory/hosts.yml playbooks/deploy-netbox.yml --check --vault-password-file .vault-password test-connection: ## Test connection to hosts ansible netbox -i inventory/hosts.yml -m ping traefik-status: ## Check Traefik container status ansible netbox -i inventory/hosts.yml -m shell -a "docker compose ps" --args "chdir=/opt/traefik" traefik-logs: ## Show Traefik container logs ansible netbox -i inventory/hosts.yml -m shell -a "docker compose logs traefik" --args "chdir=/opt/traefik" traefik-access-logs: ## Show Traefik access logs (JSON format) ansible netbox -i inventory/hosts.yml -m shell -a "docker compose logs traefik | grep -E '^traefik.*access' | tail -50" traefik-restart: ## Restart Traefik container ansible netbox -i inventory/hosts.yml -m shell -a "docker compose restart traefik" --args "chdir=/opt/traefik" traefik-update-ca: ## Update custom root CA certificate ansible-playbook -i inventory/hosts.yml playbooks/deploy-netbox.yml --tags "custom-ca" --vault-password-file .vault-password