initial commital
This commit is contained in:
103
Makefile
Normal file
103
Makefile
Normal file
@@ -0,0 +1,103 @@
|
||||
# =============================================================================
|
||||
# Minecraft Podman Deployment - Makefile
|
||||
# =============================================================================
|
||||
# Usage:
|
||||
# make install # Install dependencies
|
||||
# make deploy # Deploy Minecraft server
|
||||
# make check # Dry-run (check mode)
|
||||
# make debug # Verbose output
|
||||
# make status # Check server status
|
||||
# make backup # Run manual backup
|
||||
# make restore # Restore from latest backup
|
||||
# make logs # View server logs
|
||||
# make stop # Stop Minecraft server
|
||||
# make start # Start Minecraft server
|
||||
# make restart # Restart Minecraft server
|
||||
# make update # Update Minecraft to latest version
|
||||
# make uninstall # Remove Minecraft deployment (dangerous!)
|
||||
# =============================================================================
|
||||
|
||||
PLAYBOOK := site.yml
|
||||
LIMIT ?= external-apps
|
||||
INVENTORY := inventory/hosts
|
||||
|
||||
.PHONY: help install deploy check debug status backup restore logs stop start restart update uninstall
|
||||
|
||||
help:
|
||||
@echo "Minecraft Podman Deployment Makefile"
|
||||
@echo ""
|
||||
@echo "Usage: make [target]"
|
||||
@echo ""
|
||||
@echo "Targets:"
|
||||
@echo " install Install Ansible collections and dependencies"
|
||||
@echo " deploy Deploy Minecraft server (default: $(LIMIT))"
|
||||
@echo " check Dry-run deployment (--check mode)"
|
||||
@echo " debug Deploy with verbose output"
|
||||
@echo " status Check server status on remote"
|
||||
@echo " backup Run manual backup on remote"
|
||||
@echo " restore Restore from latest backup on remote"
|
||||
@echo " logs View Minecraft server logs"
|
||||
@echo " stop Stop Minecraft server"
|
||||
@echo " start Start Minecraft server"
|
||||
@echo " restart Restart Minecraft server"
|
||||
@echo " update Update Minecraft to latest version"
|
||||
@echo " uninstall Remove Minecraft deployment (DANGEROUS)"
|
||||
@echo ""
|
||||
@echo "Override target host: make deploy LIMIT=my-server"
|
||||
|
||||
install:
|
||||
@echo "Installing Ansible collections..."
|
||||
ansible-galaxy collection install -r requirements.yml
|
||||
|
||||
deploy:
|
||||
@echo "Deploying Minecraft to $(LIMIT)..."
|
||||
ansible-playbook $(PLAYBOOK) --limit $(LIMIT)
|
||||
|
||||
check:
|
||||
@echo "Dry-run deployment for $(LIMIT)..."
|
||||
ansible-playbook $(PLAYBOOK) --limit $(LIMIT) --check
|
||||
|
||||
debug:
|
||||
@echo "Deploying with debug output for $(LIMIT)..."
|
||||
ansible-playbook $(PLAYBOOK) --limit $(LIMIT) -vvv
|
||||
|
||||
status:
|
||||
@echo "Checking server status on $(LIMIT)..."
|
||||
ansible $(LIMIT) -m shell -a 'systemctl status minecraft --no-pager'
|
||||
|
||||
backup:
|
||||
@echo "Running backup on $(LIMIT)..."
|
||||
ansible $(LIMIT) -m shell -a '/opt/minecraft/backup.sh'
|
||||
|
||||
restore:
|
||||
@echo "Running restore on $(LIMIT)..."
|
||||
ansible $(LIMIT) -m shell -a '/opt/minecraft/restore.sh'
|
||||
|
||||
logs:
|
||||
@echo "Viewing logs for $(LIMIT)..."
|
||||
ansible $(LIMIT) -m shell -a 'journalctl -u minecraft -n 100 --no-pager'
|
||||
|
||||
stop:
|
||||
@echo "Stopping Minecraft server on $(LIMIT)..."
|
||||
ansible $(LIMIT) -m systemd -a 'name=minecraft state=stopped'
|
||||
|
||||
start:
|
||||
@echo "Starting Minecraft server on $(LIMIT)..."
|
||||
ansible $(LIMIT) -m systemd -a 'name=minecraft state=started'
|
||||
|
||||
restart:
|
||||
@echo "Restarting Minecraft server on $(LIMIT)..."
|
||||
ansible $(LIMIT) -m systemd -a 'name=minecraft state=restarted'
|
||||
|
||||
update:
|
||||
@echo "Updating Minecraft on $(LIMIT)..."
|
||||
ansible-playbook $(PLAYBOOK) --limit $(LIMIT) --tags update
|
||||
|
||||
uninstall:
|
||||
@echo "WARNING: This will remove the Minecraft deployment from $(LIMIT)"
|
||||
@read -p "Are you sure? Type 'yes' to continue: " CONFIRM; \
|
||||
if [ "$$CONFIRM" = "yes" ]; then \
|
||||
ansible-playbook $(PLAYBOOK) --limit $(LIMIT) --tags uninstall; \
|
||||
else \
|
||||
echo "Aborted."; \
|
||||
fi
|
||||
Reference in New Issue
Block a user