CI-modellering met YAML in het OTOBO-ticketsysteem
Dit hoofdstuk laat zien hoe u uw Configuration Items (CI's) in het OTOBO-ticketsysteem definieert en uitbreidt via YAML – van de paginastructuur en lay-out tot dynamische velden en veldtypen.
1. Opbouw van CI-definities
Elke CI-definitie in OTOBO bestaat uit meerdere hoofdbestanddelen:
yaml
- Class:
Name: <CI-klasse>
Categories:
- All
- <Meer categorieën>
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 Pagina's (Pages)
- Name: Naam van het tabblad in de Agent-zoom.
- Interfaces: Bepaalt wie het tabblad ziet (Agent, Customer, …).
- Content: Lijst van secties, met positie (RowStart, ColumnStart, eventueel Span).
1.2 Lay-out (Layout)
- Columns: Aantal kolommen in het tabblad.
- ColumnWidth: Proportionele breedte-aanduidingen (bijv.
1fr 2fr 1fr).
1.3 Rollen (Roles)
Rollen definiëren herbruikbare secties en veldlijsten:
yaml
- Definition: |
Sections:
General Information:
Content:
- Header: Algemene informatie
- DF: System-Name
- DF: System-Version
Relations:
Type: ConfigItemLinks
Header: Relaties
RoleName: CMDB General Fields- RoleName: Unieke naam van de rol.
- Sections: Bevat een of meerdere secties met veldreferenties (
DF:).
2. Dynamische velden (DynamicFields) en veldtypen
Met DynamicFields breidt u uw CI-klassen uit met individuele attributen. Elk veld krijgt een naam, type en configuratie:
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 Belangrijke veldtypen
| FieldType | Beschrijving |
|---|---|
| Text | Eenvoudig veld voor één regel |
| TextArea | Veld voor meerdere regels vrije tekst |
| Date | Datumveld (met beperkingen via YearsInPast/...) |
| Dropdown | Keuzelijst (Single/Multi via MultiValue) |
| Agent | LDAP-gebruiker/Agent lookup |
| ConfigItem | Koppeling naar andere CI (relatietype definieerbaar) |
| ScriptTemplateToolkit | Berekend veld via template (bijv. sommen) |
2.2 Configuratieopties
- DefaultValue: Standaardwaarde bij nieuwe aanmaak.
- MultiValue:
'0'(enkele selectie) of'1'(meerdere). - PossibleNone:
'1'om een lege selectie toe te staan. - PossibleValues: Key-value-paren voor dropdown-velden.
- EditFieldMode: bijv.
Dropdown,AutoComplete. - ReferenceFilterList, ReferencedObjectType: Voor lookup-velden.
3. Voorbeeld
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. Tips en Best Practices
- Modulariteit: Gebruik rollen voor terugkerende secties.
- Overzichtelijkheid: Groepeer gerelateerde velden in aparte pagina's.
- Documentatie: Documenteer uw YAML-bestanden en onderhoud versie-triggers.
- Testen: Valideer nieuwe velden eerst in een testinstantie.
Met deze opzet kunt u de OTOBO CMDB flexibel aanpassen aan uw organisatorische vereisten en deze te allen tijde transparant houden.