Files
michaelschiemer/.deployment-backup/x_ansible/playbooks/deploy.yml
Michael Schiemer 9b74ade5b0 feat: Fix discovery system critical issues
Resolved multiple critical discovery system issues:

## Discovery System Fixes
- Fixed console commands not being discovered on first run
- Implemented fallback discovery for empty caches
- Added context-aware caching with separate cache keys
- Fixed object serialization preventing __PHP_Incomplete_Class

## Cache System Improvements
- Smart caching that only caches meaningful results
- Separate caches for different execution contexts (console, web, test)
- Proper array serialization/deserialization for cache compatibility
- Cache hit logging for debugging and monitoring

## Object Serialization Fixes
- Fixed DiscoveredAttribute serialization with proper string conversion
- Sanitized additional data to prevent object reference issues
- Added fallback for corrupted cache entries

## Performance & Reliability
- All 69 console commands properly discovered and cached
- 534 total discovery items successfully cached and restored
- No more __PHP_Incomplete_Class cache corruption
- Improved error handling and graceful fallbacks

## Testing & Quality
- Fixed code style issues across discovery components
- Enhanced logging for better debugging capabilities
- Improved cache validation and error recovery

Ready for production deployment with stable discovery system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 12:04:17 +02:00

93 lines
2.6 KiB
YAML

---
- name: Deployment in jeweilige Umgebung
hosts: web
become: true
gather_facts: true
vars:
project_source: "{{ playbook_dir }}/../.."
docker_compose_project_path: "{{ deploy_root }}"
pre_tasks:
- name: Überprüfe Server-Verbindung
ping:
tags: [always, check]
- name: Zeige Server-Informationen
debug:
msg: "Verbunden mit {{ inventory_hostname }} ({{ ansible_host | default('IP unbekannt') }})"
tags: [always, check]
roles:
- common
- docker
- nginx
tasks:
- name: Stelle sicher, dass Zielverzeichnisse existieren
file:
path: "{{ item }}"
state: directory
owner: "{{ deploy_user }}"
group: "{{ deploy_user }}"
mode: '0755'
loop:
- "{{ deploy_root }}"
- "{{ deploy_root }}/public"
- "{{ deploy_root }}/ssl"
- "{{ deploy_root }}/src"
- "{{ deploy_root }}/docker"
- "{{ deploy_root }}/docker/nginx"
- "{{ deploy_root }}/docker/php"
tags: [deploy, folders]
- name: Kopiere Docker-Konfigurationen
copy:
src: "{{ playbook_dir }}/../docker/"
dest: "{{ deploy_root }}/docker/"
mode: '0644'
owner: "{{ deploy_user }}"
group: "{{ deploy_user }}"
tags: [deploy, docker]
- name: Kopiere docker-compose.yml
copy:
src: "{{ playbook_dir }}/../docker-compose.yml"
dest: "{{ deploy_root }}/docker-compose.yml"
mode: '0644'
owner: "{{ deploy_user }}"
group: "{{ deploy_user }}"
tags: [deploy, docker]
- name: Container starten oder neustarten
ansible.builtin.shell: |
cd "{{ deploy_root }}" && \
docker-compose -f docker-compose.yml -p michaelschiemer up -d --build
tags: [deploy, docker]
post_tasks:
- name: Überprüfe Anwendungsstatus
uri:
url: "http://{{ ansible_host }}/"
return_content: no
status_code: 200, 301, 302, 403, 404
validate_certs: no
timeout: 10
register: app_status
ignore_errors: yes
delegate_to: localhost
become: no
tags: [check]
- name: Zeige Deployment-Ergebnis
debug:
msg: |
Deployment abgeschlossen:
- Server: {{ inventory_hostname }}
- Umgebung: {{ environment | default('unbekannt') }}
- Status: {% if app_status.status is defined and app_status.status == 200 %}Erfolgreich (HTTP 200){% else %}Überprüfung erforderlich{% endif %}
Anwendung sollte erreichbar sein unter: http://{{ ansible_host }}/
tags: [check]