Skip to content

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

FieldTypeBeschrijving
TextEenvoudig veld voor één regel
TextAreaVeld voor meerdere regels vrije tekst
DateDatumveld (met beperkingen via YearsInPast/...)
DropdownKeuzelijst (Single/Multi via MultiValue)
AgentLDAP-gebruiker/Agent lookup
ConfigItemKoppeling naar andere CI (relatietype definieerbaar)
ScriptTemplateToolkitBerekend 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.