netbox-ansible/Makefile
2025-09-27 13:36:00 -04:00

57 lines
2.6 KiB
Makefile

# 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
backup: ## Backup NetBox
ansible-playbook -i inventory/hosts.yml playbooks/backup-netbox.yml
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