57 lines
2.6 KiB
Makefile
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
|