Skip to content

Modelowanie CI za pomocą YAML w systemie biletowym OTOBO

Ten rozdział pokazuje, jak definiować i rozszerzać elementy konfiguracji (CI) w systemie biletowym OTOBO za pomocą YAML – od struktury stron i układu po pola dynamiczne i typy pól.


1. Struktura definicji CI

Każda definicja CI w OTOBO składa się z kilku głównych komponentów:

yaml
- Class:
    Name: <Klasa CI>
    Categories:
      - All
      - <Inne kategorie>
    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 Strony (Pages)

  • Name: Nazwa zakładki w widoku szczegółów agenta.
  • Interfaces: Kontroluje, kto widzi zakładkę (Agent, Customer, …).
  • Content: Lista sekcji z pozycją (RowStart, ColumnStart, opcjonalnie Span).

1.2 Układ (Layout)

  • Columns: Liczba kolumn w zakładce.
  • ColumnWidth: Proporcjonalne szerokości kolumn (np. 1fr 2fr 1fr).

1.3 Role (Roles)

Role definiują sekcje i listy pól, które można ponownie wykorzystać:

yaml
- Definition: |
    Sections:
      General Information:
        Content:
          - Header: Informacje ogólne
          - DF: Nazwa systemu
          - DF: Wersja systemu
      Relations:
        Type: ConfigItemLinks
        Header: Powiązania
  RoleName: CMDB General Fields
  • RoleName: Unikalna nazwa roli.
  • Sections: Zawiera jedną lub więcej sekcji z odniesieniami do pól (DF:).

2. Pola dynamiczne (DynamicFields) i typy pól

Dzięki DynamicFields można rozszerzać klasy CI o niestandardowe atrybuty. Każde pole otrzymuje nazwę, typ i konfigurację:

yaml
DynamicFields:
  DynamicFieldName:
    FieldType: Text
    Label: Moja etykieta
    Name: Nazwa systemu
    ObjectType: ITSMConfigItem
    Config:
      DefaultValue: 'demo'
      MultiValue: '0'
      PossibleNone: '1'
      Tooltip: ''
  
  System-LifecycleStatus:
    FieldType: Dropdown
    Label: Status cyklu życia systemu
    Name: System-LifecycleStatus
    ObjectType: ITSMConfigItem
    Config:
      DefaultValue: ''
      MultiValue: '0'
      PossibleNone: '1'
      PossibleValues:
        demo: demo
        productive: productive
      Tooltip: ''

2.1 Ważne typy pól

FieldTypeOpis
TextProste pole jednoliniowe
TextAreaWieloliniowe pole tekstowe
DatePole daty (z ograniczeniami poprzez YearsInPast/...)
DropdownPole wyboru (jedno-/wielokrotne poprzez MultiValue)
AgentWyszukiwanie użytkownika LDAP/agenta
ConfigItemPowiązanie z innym CI (typ relacji można zdefiniować)
ScriptTemplateToolkitPole obliczeniowe za pomocą szablonu (np. sumy)

2.2 Opcje konfiguracji

  • DefaultValue: Wartość domyślna przy tworzeniu nowego wpisu.
  • MultiValue: '0' (wybór pojedynczy) lub '1' (wielokrotny).
  • PossibleNone: '1', aby zezwolić na pusty wybór.
  • PossibleValues: Pary klucz-wartość dla pól typu Dropdown.
  • EditFieldMode: np. Dropdown, AutoComplete.
  • ReferenceFilterList, ReferencedObjectType: Dla pól typu Lookup.

3. Przykład

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. Wskazówki i najlepsze praktyki

  • Modularność: Używaj ról dla powtarzalnych sekcji.
  • Przejrzystość: Grupuj powiązane pola w osobne strony.
  • Dokumentacja: Komentuj pliki YAML i utrzymuj wersjonowanie.
  • Testowanie: Najpierw waliduj nowe pola w instancji testowej.

Dzięki tej strukturze można elastycznie dostosowywać CMDB OTOBO do wymagań organizacji i zawsze utrzymywać ją w przejrzystym stanie.