os-upgrade-automation/playbook/roles/servicenow_tickets/tasks/main.yml

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