os-upgrade-automation/docs
Automation Admin 15c9b4f1e4 feat: initial import os-upgrade-automation enterprise setup 2025-08-07 22:24:32 +00:00
..
CHANGELOG.md feat: initial import os-upgrade-automation enterprise setup 2025-08-07 22:24:32 +00:00
README.md feat: initial import os-upgrade-automation enterprise setup 2025-08-07 22:24:32 +00:00
Runbook_SelfService.md feat: initial import os-upgrade-automation enterprise setup 2025-08-07 22:24:32 +00:00

README.md

Enterprise Auto-Upgrade Playbook für SLES & RHEL

Übersicht

Dieses Projekt bietet ein modulares, Enterprise-taugliches Ansible-Playbook für automatisierte Upgrades und Patch-Management von SLES (SUSE Linux Enterprise Server) und RHEL (Red Hat Enterprise Linux) Systemen. Es unterstützt:

  • Automatische OS-Erkennung
  • Upgrade nach Hersteller-Best-Practice
  • VMware-Snapshots für Backup/Rollback
  • Logging
  • Mail-Benachrichtigung (lokal & extern via mailx)
  • Dynamische Zuweisung von CLM-Channels via SUSE Manager API

Verzeichnisstruktur

playbook/
├── group_vars/
│   ├── all.yml                # Globale Variablen
│   └── vault.yml              # Verschlüsselte Zugangsdaten (Vault)
├── host_vars/                 # (Optional) Host-spezifische Variablen
├── inventories/               # (Optional) Inventare
├── playbook.yml               # Haupt-Playbook
├── README.md                  # Diese Datei
└── roles/
    ├── common/                # Gemeinsame Tasks (z.B. Logging, mailx)
    ├── rhel_upgrade/          # RHEL-spezifische Upgrade-Tasks
    ├── sles_upgrade/          # SLES-spezifische Upgrade-Tasks
    ├── post_upgrade/          # Reboot etc.
    ├── suma_api_assign_clm/   # SUSE Manager API Integration
    └── vmware_snapshot/       # VMware Snapshot Handling

Voraussetzungen

  • Ansible >= 2.9
  • python3-pyvmomi auf dem Ansible-Host (für VMware)
  • Zielsysteme: SLES oder RHEL, angebunden an SUSE Manager (ggf. venv-salt-minion)
  • Zugang zur SUSE Manager API (XML-RPC, meist Port 443)
  • Zugang zum vCenter (API)
  • Optional: Ansible Vault für sichere Zugangsdaten

Nutzung

  1. Zugangsdaten für SUSE Manager & vCenter sicher speichern

    • Erstelle eine Datei vault.yml in group_vars:
      suma_api_url: "https://susemanager.example.com/rpc/api"
      suma_api_user: "admin"
      suma_api_pass: "geheim"
      vcenter_hostname: "vcenter.example.com"
      vcenter_user: "administrator@vsphere.local"
      vcenter_password: "dein_passwort"
      vcenter_datacenter: "DeinDatacenter"
      vcenter_folder: "/"
      
    • Verschlüssele die Datei mit Ansible Vault:
      ansible-vault encrypt playbook/group_vars/vault.yml
      
    • Passe group_vars/all.yml an:
      # ... bestehende Variablen ...
      suma_api_url: "{{ vault_suma_api_url }}"
      suma_api_user: "{{ vault_suma_api_user }}"
      suma_api_pass: "{{ vault_suma_api_pass }}"
      vcenter_hostname: "{{ vault_vcenter_hostname }}"
      vcenter_user: "{{ vault_vcenter_user }}"
      vcenter_password: "{{ vault_vcenter_password }}"
      vcenter_datacenter: "{{ vault_vcenter_datacenter }}"
      vcenter_folder: "{{ vault_vcenter_folder }}"
      
    • Lade die Vault-Datei im Playbook:
      vars_files:
        - group_vars/all.yml
        - group_vars/vault.yml
      
    • Playbook-Aufruf mit Vault-Passwort:
      ansible-playbook playbook.yml --ask-vault-pass -e "target_clm_version=prod-2024-06"
      
  2. VMware Snapshot Handling

    • Vor jedem Upgrade wird automatisch ein Snapshot erstellt.
    • Bei aktiviertem Rollback (Variable rollback: true) wird die VM auf den Snapshot zurückgesetzt.
    • Die Snapshot-Tasks laufen auf dem Ansible-Host (delegate_to: localhost).
  3. Upgrade auf bestimmte CLM-Version

    • Beim Playbook-Aufruf die gewünschte Version angeben:
      ansible-playbook playbook.yml -e "target_clm_version=prod-2024-06"
      
    • Das System wird per SUSE Manager API dem passenden Channel zugewiesen.
  4. Rollback aktivieren (optional)

    • In group_vars/all.yml:
      rollback: true
      
    • Das Playbook setzt die VM dann auf den Snapshot zurück.
  5. Mail-Benachrichtigung konfigurieren

    • Lokale Mail: mail_to: "root@localhost"
    • Externer SMTP:
      mail_smtp_host: "smtp.example.com"
      mail_smtp_port: 587
      mail_smtp_user: "user@example.com"
      mail_smtp_pass: "dein_passwort"
      

Wichtige Variablen (group_vars/all.yml)

  • upgrade_dry_run: true/false (Simulation)
  • reboot_after_upgrade: true/false
  • log_dir: Logverzeichnis
  • rollback: true/false
  • mail_to: Empfängeradresse
  • mail_smtp_*: SMTP-Parameter (optional)
  • target_clm_version: Ziel-CLM-Channel (z.B. prod-2024-06)
  • suma_api_url, suma_api_user, suma_api_pass: SUSE Manager API (empfohlen: Vault)
  • vcenter_hostname, vcenter_user, vcenter_password, vcenter_datacenter, vcenter_folder: VMware/vCenter (empfohlen: Vault)

Sicherheitshinweis

Lege Zugangsdaten (API, Mail, vCenter) niemals im Klartext ab! Nutze immer Ansible Vault für sensible Daten.

Erweiterungsideen

  • Integration mit Monitoring/Alerting
  • Approval-Workflows
  • Reporting
  • Zusätzliche OS-Unterstützung

Support & Doku


Fragen oder Wünsche? Einfach melden!