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
| FieldType | Opis |
|---|---|
| Text | Proste pole jednoliniowe |
| TextArea | Wieloliniowe pole tekstowe |
| Date | Pole daty (z ograniczeniami poprzez YearsInPast/...) |
| Dropdown | Pole wyboru (jedno-/wielokrotne poprzez MultiValue) |
| Agent | Wyszukiwanie użytkownika LDAP/agenta |
| ConfigItem | Powiązanie z innym CI (typ relacji można zdefiniować) |
| ScriptTemplateToolkit | Pole 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.