55 lines
1.9 KiB
YAML
55 lines
1.9 KiB
YAML
---
|
|
- 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
|