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
FieldType | Opis |
---|---|
Text | Proste pole jednowierszowe |
TextArea | Pole tekstowe wielowierszowe |
Date | Pole daty (z ograniczeniami przez YearsInPast/... ) |
Dropdown | Pole wyboru (pojedyncze/wielokrotne przez MultiValue ) |
Agent | Wyszukiwanie użytkownika/agenta z LDAP |
ConfigItem | Łączenie z innym CI (typ relacji można zdefiniować) |
ScriptTemplateToolkit | Pole 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.