Skip to content

CI-Modellierung mit YAML im OTOBO-Ticketsystem

Dieses Kapitel zeigt, wie Sie Ihre Configuration Items (CIs) im OTOBO-Ticketsystem per YAML definieren und erweitern – von der Seiten- und Layout-Struktur bis zu dynamischen Feldern und Feldtypen.


1. Aufbau von CI-Definitionen

Jede CI-Definition in OTOBO besteht aus mehreren Hauptbestandteilen:

yaml
- Class:
    Name: <CI-Klasse>
    Categories:
      - All
      - <Weitere Kategorien>
    NumberModule: AutoIncrement
    PermissionGroup: itsm-configitem
    VersionStringModule: Incremental
  Definition: |
    Pages:
      - Name: Summary
        Layout:
          Columns: 3
          ColumnWidth: 1fr 1fr 1fr
        Interfaces:
          - Agent
          - Customer
        Content:
          - Section: General Fields::General Information
            RowStart: 1
            ColumnStart: 1
          - Section: ITSM Model::Model
            RowStart: 1
            ColumnStart: 2
          - Section: CMDB Description::Description
            RowStart: 2
            ColumnStart: 1
            ColumnSpan: 2
  DynamicFields: {  }

1.1 Pages

  • Name: Bezeichnung des Tabs im Agent-Zoom.
  • Interfaces: Steuerung, wer den Tab sieht (Agent, Customer, …).
  • Content: Liste von Sektionen, mit Position (RowStart, ColumnStart, ggf. Span).

1.2 Layout

  • Columns: Anzahl der Spalten im Tab.
  • ColumnWidth: Proportionale Breitenangaben (z. B. 1fr 2fr 1fr).

1.3 Rollen (Roles)

Rollen definieren wiederverwendbare Sektionen und Feldlisten:

yaml
- Definition: |
    Sections:
      General Information:
        Content:
          - Header: Allgemeine Informationen
          - DF: System-Name
          - DF: System-Version
      Relations:
        Type: ConfigItemLinks
        Header: Beziehungen
  RoleName: CMDB General Fields
  • RoleName: Eindeutiger Name der Rolle.
  • Sections: Enthält eine oder mehrere Sektionen mit Feldreferenzen (DF:).

2. Dynamische Felder (DynamicFields) und Feldtypen

Mit DynamicFields erweitern Sie Ihre CI-Klassen um individuelle Attribute. Jedes Feld erhält Name, Typ und Konfiguration:

yaml
DynamicFields:
  DynamicFieldName:
    FieldType: Text
    Label: My Label
    Name: System-Name
    ObjectType: ITSMConfigItem
    Config:
      DefaultValue: 'demo'
      MultiValue: '0'
      PossibleNone: '1'
      Tooltip: ''
  
  System-LifecycleStatus:
    FieldType: Dropdown
    Label: Lifecycle status of system
    Name: System-LifecycleStatus
    ObjectType: ITSMConfigItem
    Config:
      DefaultValue: ''
      MultiValue: '0'
      PossibleNone: '1'
      PossibleValues:
        demo: demo
        productive: productive
      Tooltip: ''

2.1 Wichtige Feldtypen

FieldTypeBeschreibung
TextEinfaches Einzeilig-Feld
TextAreaMehrzeiliges Freitextfeld
DateDatumsfeld (mit Einschränkungen via YearsInPast/...)
DropdownAuswahlfeld (Single/Multi via MultiValue)
AgentLDAP-User/Agent Lookup
ConfigItemVerknüpfung zu anderem CI (Relationstyp definierbar)
ScriptTemplateToolkitBerechnetes Feld via Template (z. B. Summen)

2.2 Konfigurationsoptionen

  • DefaultValue: Vorgabewert bei Neuanlage.
  • MultiValue: '0' (einzelne Auswahl) oder '1' (mehrfach).
  • PossibleNone: '1', um leere Auswahl zu erlauben.
  • PossibleValues: Key-Value-Paare für Dropdown-Felder.
  • EditFieldMode: z. B. Dropdown, AutoComplete.
  • ReferenceFilterList, ReferencedObjectType: Für Lookup-Felder.

3. Beispiel

yaml
- Class:
    Name: CIName
    Categories:
      - All
      - IT
    NumberModule: AutoIncrement
    PermissionGroup: itsm-configitem
    VersionStringModule: Incremental
  Definition: |
    Pages:
      - Name: Intro
        Layout:
          Columns: 2
          ColumnWidth: 1fr 1fr
        Interfaces:
          - Agent
        Content:
          - Section: CMDB General Fields::Information
            RowStart: 1
            ColumnStart: 1
          - Section: CMDB General Fields::Risks
            RowStart: 2
            ColumnStart: 1
      - Name: Details
        Layout:
          Columns: 1
          ColumnWidth: 1fr
        Interfaces:
          - Agent
        Content:
          - Section: CMDB General Fields::Software
            RowStart: 1
            ColumnStart: 1
  DynamicFields:
    System-Name: {  }
    System-Version: {  }
    System-LifecycleStatus: {  }

4. Tipps und Best Practices

  • Modularität: Nutzen Sie Rollen für wiederkehrende Sektionen.
  • Übersichtlichkeit: Gruppieren Sie verwandte Felder in eigene Pages.
  • Dokumentation: Kommentieren Sie Ihre YAML-Dateien und pflegen Sie Versions­trigger.
  • Testing: Validieren Sie neue Felder zuerst in einer Testinstanz.

Mit diesem Aufbau können Sie die OTOBO-CMDB flexibel an Ihre Organisationsanforderungen anpassen und stets transparent halten.