Skip to content

Modelowanie CI za pomocą YAML w systemie biletowym OTOBO

W tym rozdziale pokazano, jak definiować i rozwijać Configuration Items (CIs) w systemie biletowym OTOBO przy użyciu języka YAML – od struktury stron i układów po pola dynamiczne i typy pól.


1. Struktura definicji CI

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

yaml
- Class:
    Name: <Klasa_CI>
    Categories:
      - All
      - <Dodatkowe_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 widocznej w widoku agenta.
  • Interfaces: Określa, kto widzi daną zakładkę (Agent, Customer itd.).
  • Content: Lista sekcji z pozycją (RowStart, ColumnStart, ewentualnie ColumnSpan).

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ą wielokrotnie używane sekcje i listy pól:

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: Unikalna nazwa roli.
  • Sections: Zawiera jedną lub więcej sekcji z odwołaniami do pól (DF:).

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

Za pomocą DynamicFields można rozszerzyć klasy CI o indywidualne atrybuty. Każde pole otrzymuje nazwę, typ i konfigurację:

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 Ważne typy pól

FieldTypeOpis
TextProste pole jednowierszowe
TextAreaPole tekstowe wielowierszowe
DatePole daty (z ograniczeniami przez YearsInPast/...)
DropdownPole wyboru (pojedyncze/wielokrotne przez MultiValue)
AgentWyszukiwanie użytkownika/agenta z LDAP
ConfigItemŁączenie z innym CI (typ relacji można zdefiniować)
ScriptTemplateToolkitPole obliczane za pomocą szablonu (np. sumy)

2.2 Opcje konfiguracji

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

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

  • Modułowość: Używaj ról dla powtarzających się sekcji.
  • Przejrzystość: Grupuj powiązane pola na osobnych stronach.
  • Dokumentacja: Komentuj pliki YAML i prowadź śledzenie wersji.
  • Testowanie: Nowe pola najpierw waliduj w środowisku testowym.

Taka struktura pozwala elastycznie dostosować CMDB w OTOBO do potrzeb organizacji i utrzymać ją w sposób przejrzysty i zorganizowany.