--- - name: Erstelle/aktualisiere Change in ServiceNow (vor Patch) community.general.snow_record: instance: "{{ servicenow_instance }}" username: "{{ servicenow_user }}" password: "{{ servicenow_pass }}" state: present table: change_request data: short_description: "OS Patch/Upgrade {{ inventory_hostname }}" description: "Automatisiertes Upgrade via Ansible" category: "Software" risk: "2" impact: "2" priority: "3" work_start: "{{ ansible_date_time.iso8601 }}" requested_by: "{{ servicenow_requested_by | default('ansible_automation') }}" register: snow_change ignore_errors: true - name: Dokumentiere Change-Nummer debug: msg: "ServiceNow Change: {{ snow_change.record.number | default('N/A') }}" - name: Erstelle Incident bei Fehlern (optional) community.general.snow_record: instance: "{{ servicenow_instance }}" username: "{{ servicenow_user }}" password: "{{ servicenow_pass }}" state: present table: incident data: short_description: "Patch/Upgrade FAILED auf {{ inventory_hostname }}" description: "Siehe Logs unter {{ log_dir }}. Zeitpunkt: {{ ansible_date_time.iso8601 }}" severity: "2" urgency: "2" impact: "2" when: ansible_failed_result is defined and ansible_failed_result is not none ignore_errors: true - name: Aktualisiere Change (Abschluss) community.general.snow_record: instance: "{{ servicenow_instance }}" username: "{{ servicenow_user }}" password: "{{ servicenow_pass }}" state: present table: change_request number: "{{ snow_change.record.number | default(omit) }}" data: work_end: "{{ ansible_date_time.iso8601 }}" close_notes: "Upgrade abgeschlossen auf {{ inventory_hostname }}" state: "3" when: snow_change is defined and snow_change.record is defined ignore_errors: true