Skip to content

GLPI


This playbook is designed to run Automations against GLPI. The intented usage is for a workflow wherein you create a ticket (optionally with template), create a ticket task with the notes/details of the automation and then close the ticket after recording time and marking the ticket task as closed.
If this playbook is used with AWX / Ansible Automation Platform, artifacts are set with ticket and task creation used at the start of the workflow and the closing of the ticket at the end. As artifacts are set the workflow will pass these to each node of the flow.

Playbook AWX / Ansible Automation Platform Template Import

This playbook includes the AWX feature where it imports the playbook as job templates in to AWX / Ansible Automation Platform. The following job templates that will be created:

  • ITIL/GLPI/Plugin/FormCreator/Delete/Form_Answer Delete the specified form answer from the GLPI Plugin formcreator.

  • ITIL/GLPI/Plugin/FormCreator/to_JSON_Object Fetch a Form Creator Plugin formcreator.

  • ITIL/GLPI/Ticket/Assign/Error Assigns the ticket to the specified user on error.

  • ITIL/GLPI/Ticket/Close Close a ticket in GLPI

  • ITIL/GLPI/Ticket/Create Create a ticket in GLPI

  • ITIL/GLPI/Ticket/Task/Create Create a ticket task

  • ITIL/GLPI/Ticket/Template/From_ITIL_Category Provide an ITIL Category and this play will fetch and generate the ticket template.

On import to AWX / Ansible Automation Platform a credential type will also be created, playbook/glpi/api that can be used to supply the required secrets and glpi FQDN.

Plugin - FormCreator Form to JSON Object

  • Job tag is plugin_form_fetch_json

This task fetches a single form only that has the lowest ID. The intent is that after you have processed the form it is deleted.

This play utilizes the following variables.

nfc_pb_glpi_form_to_ticket: false        # Optional, boolean. Used to Create the variables required to create a ticket
                                         # with the form added to a ticket task in JSON format
nfc_pb_glpi_ticket_task_category: 0      # Mandatory*, integer. Only Mandatory if `nfc_pb_glpi_form_to_ticket=false. otherwise Optional`
                                         # This value is the ITIL Task Category from GLPI.
nfc_pb_glpi_no_log_sensitive_data: true  # Optional, boolean. used to turn `no_log` on/off for logging sensitive data
                                         # NOTE: Sensitive data will be logged. i.e. user and app token.

Within the playbook, this task runs first. This is by design so that a ticket forms can be gathered and in the same play have the ticket created with the form data saved within a ticket task.

Tip

If you wish to create the ticket and fetch the form ensure job tags plugin_form_fetch_json ticket_template_from_itil_category ticket_create ticket_task_create plugin_form_delete_answer are set and no other variables outside of this task.

Specifying the variables for the below tasks for creating a ticket and ticket task, the details from the form will not be used.

Prior to the play completing the following artifact/stats are set:

{
  "nfc_pb_glpi": {
    "ticket":{
      "approval": {},         // dict. generated if the form has approval configured.
    }
  },
  // The variables below this line are only created if variable 'nfc_pb_glpi_form_to_ticket=true'
  "nfc_pb_glpi_itil_category": 0,
  "nfc_pb_glpi_ticket_create": {},
  "nfc_pb_glpi_ticket_task_create": {},
  "nfc_pb_glpi_ticket_type": "request"
}

Ticket Template From ITIL Category

  • Job tag is ticket_template_from_itil_category

This play utilizes the following variables.

nfc_pb_glpi_host: glpi.hostname.tld      # Mandatory, string. FQDN that forms part of the url. Don't specify http|https.
nfc_pb_glpi_app_token: ''                # Mandatory, string. application token as generated from GLPI.
nfc_pb_glpi_user_token: ''               # Mandatory, string. user token as generated from GLPI.
nfc_pb_glpi_itil_category: 4             # Mandatory, integer. The ITIL Category to use from GLPI.
nfc_pb_glpi_ticket_type: request         # Mandatory, string. Choice incident|request
nfc_pb_glpi_no_log_sensitive_data: true  # Optional, boolean. used to turn `no_log` on/off for logging sensitive data
                                         # NOTE: Sensitive data will be logged. i.e. user and app token.

Prior to the play completing the following artifact/stats are set:

{
  "nfc_pb_glpi": {
    "ticket":{
      "template": {},         // dict. generated ticket template in the same format as would be used to send to the GLPI API 
      "mandatory_fields": []  // list. field names that are set as required from the ticket template.
    }
  }
}

Create Ticket

  • Job tag is ticket_create

Tip

Aditionally you can specify tag ticket_template_from_itil_category to collect the ticket template from the ITIL category which will be used to create the ticket.

This play utilizes the following variables.

nfc_pb_glpi_host: glpi.hostname.tld      # Mandatory, string. FQDN that forms part of the url. Don't specify http|https.
nfc_pb_awx_hostname: host.domain.tld     # Optional, String. FQDN of the awx host. used to build job url for ticket description.
nfc_pb_glpi_app_token: ''                # Mandatory, string. application token as generated from GLPI.
nfc_pb_glpi_user_token: ''               # Mandatory, string. user token as generated from GLPI.
nfc_pb_glpi_ticket_create:               # Mandatory, dict. The ticket body in API Format.
  name: ""                               # Mandatory, string. Title of the ticket. If using ticket template will be appended to existing.
  content: ""                            # Mandatory, string. The ticket description. If using ticket template will be appended to existing.
  entities_id: 0                         # Mandatory, integer. entities ID for ticket to be created in.
  type: 1                                # Mandatory, choice. 1=incident|2=Request
  itilcategories_id: 0                   # Mandatory*, integer. the ticket category. ONLY mandatory for create
nfc_pb_glpi_no_log_sensitive_data: true  # Optional, boolean. used to turn `no_log` on/off for logging sensitive data
                                         # NOTE: Sensitive data will be logged. i.e. user and app token.
nfc_pb_glpi_assign_ticket: true          # Optional, boolean. Default=true. Assign the ticket to the API user.
nfc_pb_glpi_ticket_assign_error_user: 0  # Optional, integer. Default= Not specified. Assign the ticket to the specified user on error.

Prior to the play completing the following artifact/stats are set:

{
  "nfc_pb_glpi": {
    "ticket":{
      "assembled": {},   // dict. Assembled ticket in API format
      "create": {},      // dict. contents of 'nfc_pb_glpi_ticket_create' variable
      "items_id": []     // list. List of items to be assosiated to a tickeck on creation in API format
    }
  }
}

If there is an error during the play and artifact variable nfc_automation.error is updated to integer 1, when this playbook next runs, on the proviso that there is an existing ticket, the ticket will be assigned to the user in variable nfc_pb_glpi_ticket_assign_error_user.

Tip

Using the ticket assignment on error as a node within an AWX / Ansible Automation Platform workflow can be done by simply specifying job_tags: always and variable nfc_pb_glpi_ticket_assign_error_user: {glpi_user_id}. This node could then be used as a path from any node on error to notify the user.

Create Ticket Task

  • Job tag is ticket_task_create

Tip

Aditionally you can specify tags ticket_template_from_itil_category and ticket_createto collect the ticket template from the ITIL category which will be used to create the ticket, with the ticket task being created as the last step.

This play utilizes the following variables.

nfc_pb_glpi_host: glpi.hostname.tld      # Mandatory, string. FQDN that forms part of the url. Don't specify http|https.
nfc_pb_glpi_app_token: ''                # Mandatory, string. application token as generated from GLPI.
nfc_pb_glpi_user_token: ''               # Mandatory, string. user token as generated from GLPI.
nfc_pb_glpi_ticket_task_create:          # Mandatory, dict. The ticket task body in API Format.
  id: 1                                  # Optional, integer. if specified will update the task. NOTE: the tickets_id must be specified
  taskcategories_id: 1                   # Mandatory, integer. task ITIL Category (ONLY Mandatory for create)
  tickets_id: 64                         # Optional, integer. Only required if not creating a ticket first. Mandatory if 'id' specified
  content: ""                           # Mandatory, string. The content of the ticket task.
  state: 1                               # Optional, choice. 0=Information|1=todo|2=Done.
  actiontime: 0                          # Optional, integer. time in seconds for task duration
  is_private: 0                          # Optional, choice 0=public|1=private
  users_id_tech: 0                       # Optional, integer. the user id of the person to assign the task.
nfc_pb_glpi_no_log_sensitive_data: true  # Optional, boolean. used to turn `no_log` on/off for logging sensitive data
                                         # NOTE: Sensitive data will be logged. i.e. user and app token.

Prior to the play completing the following artifact/stats are set:

{
  "nfc_pb_glpi": {
    "ticket":{
      "task": {}    // dict. ticket task in API format
    }
  }
}

Plugin - Delete FormCreator Form

  • Job tag is plugin_form_delete_answer

This Deletes a form answer from the GLPI Plugin Form Creator. Within the playbook, this task is placed to run before ticket close/solve and can safely be ran with the other tasks as listed above.

This play utilizes the following variables.

nfc_pb_glpi_plugin_formcreator_delete_id: 0  # Mandatory*, integer or list of integer. ID of the form answers to delete. Only required if task ran alone.
                                             # Note: This var takes precedence over artifact 'nfc_pb_glpi.plugins.form_creator.answer_id'
nfc_pb_glpi_no_log_sensitive_data: true      # Optional, boolean. used to turn `no_log` on/off for logging sensitive data
                                             # NOTE: Sensitive data will be logged. i.e. user and app token.

Tip

If you wish to delete multiple forms you can by setting variable nfc_pb_glpi_plugin_formcreator_delete_id as a JSON list. i.e.

nfc_pb_glpi_plugin_formcreator_delete_id: [1,2,3]

Closing the Ticket

  • Job tag is ticket_close

This task is completely automagic. The artifacts from the ticket and task creation runs are used for the wizardry to close the ticket and ticket task if it exists. The Automation time is added to the ticket task as well.

Playbook Definition

common.yaml
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
---
#
# No Fuss Computing
# https://gitlab.com/nofusscomputing/projects/ansible/ansible_playbooks
#
# Documentation: https://nofusscomputing.com/projects/ansible/playbooks
#
# image: nofusscomputing/ansible-ee >= 0.3.0
#
#
- name: GLPI
  hosts: localhost
  become: false
  gather_facts: false


  pre_tasks:


      # Play and task set time
    - name: Set Start Time
      ansible.builtin.set_fact:
        nfc_task_starttime: "{{ ('%Y-%m-%dT%H:%M:%S %z' | strftime) | string }}"
      no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
      tags:
        - always


    # Setup dictionary 'nfc_automation'
    - name: Set Automation Facts
      ansible.builtin.set_fact:
        nfc_automation: {
          "time": {
            "start": "{{ nfc_task_starttime | string }}",
            "end": 0
          }
        }
      no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
      when: nfc_automation is not defined
      tags:
        - always


    # Setup dictionary 'nfc_task'
    - name: Set Automation Facts
      ansible.builtin.set_fact:
        nfc_task: {
          "name": "{{ ansible_play_name | default('') | lower | string }}",
          "error": 0,
          "roles": "{{ ansible_play_role_names | default('') | string }}",
          "skip_tags": "{{ ansible_skip_tags | default([])| list }}",
          "start": "{{ nfc_task_starttime | string }}",
          "tags": "{{ ansible_run_tags | default([]) | list }}"
        }
      no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
      tags:
        - always


    - name: Block - pre_tasks
      block:


        - name: Ensure Job Tags have been Specified
          ansible.builtin.assert:
            that:
              - ansible_run_tags | default([]) | list | length | int > 0
              - >
                not (
                  ansible_run_tags | default([]) | list | length | int == 1
                    and
                  'all' in (ansible_run_tags | default([]) | list)
                )
              - >
                (
                  'plugin_form_fetch_json' in ansible_run_tags | default([]) | list
                    or
                  'ticket_template_from_itil_category' in ansible_run_tags | default([]) | list
                    or
                  'ticket_create' in ansible_run_tags | default([]) | list
                    or
                  'ticket_task_create' in ansible_run_tags | default([]) | list
                    or
                  'plugin_form_delete_answer' in ansible_run_tags | default([]) | list
                    or
                  'ticket_close' in ansible_run_tags | default([]) | list
                )
            msg: This playbook requires job tags be set.
          when: not nfc_pb_glpi_ticket_assign_error_user is defined
          tags:
            - always


        - name: Validate User for ticket assignment on error
          ansible.builtin.assert:
            that:
              - nfc_pb_glpi_ticket_assign_error_user | int > 0
          when: nfc_pb_glpi_ticket_assign_error_user is defined
          tags:
            - always


        - name: Variable Setup - project_dir
          ansible.builtin.include_tasks:
            file: tasks/var_project_dir.yaml
            apply:
              tags:
                - always
          when: var_project_dir is not defined
          tags:
            - always

      rescue:

          # there was an error, set error object
        - name: Set error fact
          ansible.builtin.set_fact:
            nfc_task: "{{ nfc_task | combine({
                'error': 1
              }) }}"
          no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
          tags:
            - always


      always:


          # Check if error occured and fail task
        - name: Error Check
          ansible.builtin.assert:
            that:
              - nfc_task.error | int == 0
            msg: Error occured, Fail the play run
          tags:
            - always


    # Don't use the 'roles' section.
  roles: []
    # if the included role(s) do not contain a rescue block, the playbook may stop
    # executing in this section (roles) with the post_tasks not running. This will
    # cause the artifacts to be incomplete. It's recommended to include your roles
    # in section(s) 'pre_tasks', 'tasks' or 'post_tasks' and from within a block with
   # rescue so that the playbook can complete and ensure that all artifacts are set.


  tasks:


    - name: Block - tasks
      block:

          # Check for error and fail play on error
        - name: Error Check
          ansible.builtin.assert:
            that:
              - nfc_task.error | int == 0
            msg: Error eccured, follow error path to fail play
          tags:
            - always


        - name: "[Plugin] FormCreator to JSON"
          ansible.builtin.include_tasks:
            file: tasks/glpi/plugin-formcreator-to-json.yaml
            apply:
              tags:
                - always
          tags:
            - plugin_form_fetch_json


        - name: Fetch Ticket Template From ITIL Category
          ansible.builtin.include_tasks:
            file: tasks/glpi/tickets/template-from-itil-category.yaml
            apply:
              tags:
                - always
          tags:
            - ticket_template_from_itil_category


        - name: Create GLPI Ticket
          ansible.builtin.include_tasks:
            file: tasks/glpi/tickets/create.yaml
            apply:
              tags:
                - always
          tags:
            - ticket_create


        - name: Create GLPI Ticket Task
          ansible.builtin.include_tasks:
            file: tasks/glpi/tickets/task_create.yaml
            apply:
              tags:
                - always
          tags:
            - ticket_task_create


        - name: "[Plugin] FormCreator Delete Answers"
          ansible.builtin.include_tasks:
            file: tasks/glpi/plugin-formcreator-delete-form.yaml
            apply:
              tags:
                - always
          tags:
            - plugin_form_delete_answer


        - name: Close GLPI Ticket Task
          ansible.builtin.include_tasks:
            file: tasks/glpi/tickets/close.yaml
            apply:
              tags:
                - always
          tags:
            - ticket_close

      rescue:


          # there was an error, set error object
        - name: Set error fact
          ansible.builtin.set_fact:
            nfc_task: "{{ nfc_task | combine({
                'error': 1
              }) }}"
          no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
          tags:
            - always


      always:


          # Check if error occured and fail task
        - name: Error Check
          ansible.builtin.assert:
            that:
              - nfc_task.error | int == 0
            msg: Error occured, Fail the play run
          tags:
            - always


  post_tasks:

    - name: Tasks post_task
      block:


          # Check for error and fail play on error
        - name: Error Check
          ansible.builtin.assert:
            that:
              - nfc_task.error | int == 0
            msg: Error occured, follow error path to fail play
          tags:
            - always


        ########################################################################
        #
        # Your tasks here
        #
        ########################################################################


      rescue:


          # there was an error, set error object
        - name: Set error fact
          ansible.builtin.set_fact:
            nfc_task: "{{ nfc_task | combine({
                'error': 1
              }) }}"
          no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
          tags:
            - always


      always:


          # Task and automation end time.
        - name: Fetch End time
          ansible.builtin.set_fact:
            nfc_task_endtime: "{{ '%Y-%m-%dT%H:%M:%S %z' | strftime }}"
          no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
          tags:
            - always


          # Set task end time
        - name: Set task Facts
          ansible.builtin.set_fact:
            nfc_tasks: "{{ nfc_tasks | default([]) + [ nfc_task | combine({
                'end': nfc_task_endtime | string
              }) ] }}"
          no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
          tags:
            - always


          # Set Automation end time.
          # every playbook must set this variable so that the end time
          # is equal to the fail time or the end of a group of playbooks.
        - name: Set automation end time
          ansible.builtin.set_fact:
            nfc_automation: "{{ nfc_automation | combine({
                'time': nfc_automation.time | combine({
                  'end': nfc_task_endtime | string
                })
              }) }}"
            nfc_task_endtime: null
          no_log: "{{ nfc_pb_no_log_setup_facts | default(false) | bool }}"
          tags:
            - always


          # Set the artifacts as a fact for subsequent playbook useage
          # Note: variable 'per_host' must be 'false' so that the artifacts
          # work within AWX / Ansible Automation Platform.
        - name: Create Automation Artifact
          ansible.builtin.set_stats:
            data:
              nfc_automation: "{{ nfc_automation }}"
              nfc_tasks: "{{ nfc_tasks }}"
            per_host: false
          tags:
            - always


        - name: Assign ticket to specified user due to error
          ansible.builtin.include_tasks:
            file: tasks/glpi/api-create.yaml
          vars:
            glpi_api_create_name: Assign ticket to specified User due to error
            glpi_api_create_path: Ticket/{{ nfc_pb_glpi.ticket.id | int }}/Ticket_User
            glpi_api_body: {
              "tickets_id": "{{ nfc_pb_glpi.ticket.id | int }}",
              "users_id": "{{ nfc_pb_glpi.ticket.error_user }}",
              "type": 2,
              "use_notification": 1
            }
          tags:
            - always
          when: >
            (
              nfc_task.error | int == 1
            )
              and
            nfc_pb_glpi.ticket.error_user is defined
              and
            nfc_pb_glpi.ticket.id is defined


          # Final error check to fail the entire play run on error
        - name: Error Check
          ansible.builtin.assert:
            that:
              - nfc_task.error | int == 0
            msg: Error occured, Fail the play run
          tags:
            - always


  vars:


    nfc_pb_awx_tower_template:
      - name: "ITIL/GLPI/Plugin/FormCreator/Delete/Form_Answer"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: false
        ask_variables_on_launch: true
        concurrent_jobs_enabled: true
        description: |
          Delete A Form Creator Form Answer.
        execution_environment: "No Fuss Computing EE"
        extra_vars:
          nfc_pb_glpi_plugin_formcreator_delete_id: 0
        job_tags: plugin_form_delete_answer
        job_type: "run"
        labels:
          - delete
          - forms
          - glpi
          - itsm
          - plugin
          - service_catalog
          - ticket
        survey_enabled: false
        use_fact_cache: false

      - name: "ITIL/GLPI/Plugin/FormCreator/to_JSON_Object"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: false
        ask_variables_on_launch: false
        concurrent_jobs_enabled: true
        description: |
          Fetch Form Creator Form and create JSON Object.
          Optionaly add to ticket task body as string.
        execution_environment: "No Fuss Computing EE"
        extra_vars:
          nfc_pb_glpi_form_to_ticket: false
          nfc_pb_glpi_ticket_task_category: 0
        job_tags: plugin_form_fetch_json,ticket_template_from_itil_category,ticket_create,ticket_task_create
        job_type: "run"
        labels:
          - forms
          - glpi
          - itsm
          - plugin
          - service_catalog
          - ticket
        survey_enabled: false
        use_fact_cache: false

      - name: "ITIL/GLPI/Ticket/Close"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: false
        ask_variables_on_launch: false
        concurrent_jobs_enabled: true
        description: |
          Close a Ticket in GLPI.
          NOTE: Requires first that the ticket creation job has already run.
        execution_environment: "No Fuss Computing EE"
        job_tags: ticket_close
        job_type: "run"
        labels:
          - close
          - glpi
          - itil
          - itsm
          - ticket
        survey_enabled: false
        use_fact_cache: false

      - name: "ITIL/GLPI/Ticket/Create"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: true
        ask_variables_on_launch: true
        concurrent_jobs_enabled: true
        description: |
          Create a Ticket in GLPI.
          Available tags:
            'ticket_template_from_itil_category' Optional Tag to fetch ticket templete from itil category,
            'ticket_create' Create ticket.
          A Tag MUST be set.
        execution_environment: "No Fuss Computing EE"
        extra_vars:
          nfc_pb_glpi_itil_category: 0
          nfc_pb_glpi_ticket_type: request
          nfc_pb_glpi_ticket_create:
            name: 'Ticket Title'
            content: 'Ticket Dscription'
        job_tags: ticket_template_from_itil_category,ticket_create
        job_type: "run"
        labels:
          - create
          - glpi
          - itil
          - itsm
          - ticket
          - template
        survey_enabled: false
        use_fact_cache: false

      - name: "ITIL/GLPI/Ticket/Task/Create"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: true
        ask_variables_on_launch: true
        concurrent_jobs_enabled: true
        description: |
          Create a Ticket Task in GLPI.
          Available tags:
            'ticket_template_from_itil_category' Optional Tag to fetch ticket templete from itil category,
            'ticket_create' Create ticket.
            'ticket_task_create' Create a Ticket task from the created or specified ticket
          A Tag MUST be set.
        execution_environment: "No Fuss Computing EE"
        extra_vars:
          nfc_pb_glpi_itil_category: 0
          nfc_pb_glpi_ticket_type: request
          nfc_pb_glpi_ticket_create:
            name: 'Ticket Title'
            content: 'Ticket Dscription'
          nfc_pb_glpi_ticket_task_create:
            id: 0
            taskcategories_id: 1,
            tickets_id: 0
            content: "Created Ticket Task via AWX"
        job_tags: ticket_task_create
        job_type: "run"
        labels:
          - create
          - glpi
          - itil
          - itsm
          - ticket
          - template
        survey_enabled: false
        use_fact_cache: false

      - name: "ITIL/GLPI/Ticket/Assign/Error"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: false
        ask_variables_on_launch: true
        concurrent_jobs_enabled: true
        description: |
          Create a Ticket Task in GLPI.
          The always tag must be specified for this task to run.
        execution_environment: "No Fuss Computing EE"
        extra_vars:
          nfc_pb_glpi_ticket_assign_error_user: 0
        job_tags: always
        job_type: "run"
        labels:
          - assign
          - error
          - glpi
          - itil
          - itsm
          - ticket
          - template
        survey_enabled: false
        use_fact_cache: true

      - name: "ITIL/GLPI/Ticket/Template/From_ITIL_Category"
        ask_credential_on_launch: true
        ask_inventory_on_launch: true
        ask_tags_on_launch: false
        ask_variables_on_launch: true
        concurrent_jobs_enabled: true
        description: |
          Using the ITIL Category Fetch the ticket template id then build a default
          template. Also Returns Mandatory fields for validation usage when creating
          the ticket.
        execution_environment: "No Fuss Computing EE"
        extra_vars:
          nfc_pb_glpi_itil_category: 0
          nfc_pb_glpi_ticket_type: request
        job_tags: ticket_template_from_itil_category
        job_type: "run"
        labels:
          - glpi
          - itil
          - itsm
          - ticket
          - template
        survey_enabled: false
        use_fact_cache: false
        credential_types:

          - name: playbook/glpi/api
            description: A Credential type for No Fuss Computings Public Playbooks glpi.yaml
            inputs: |
              fields:
                - id: host
                  type: string
                  label: GLPI FQDN
                  secret: false
                - id: app_token
                  type: string
                  label: GLPI APP Token
                  secret: true
                - id: user_token
                  type: string
                  label: GLPI User Token
                  secret: true
              required:
                - host
                - app_token
                - user_token
            injectors: >
              extra_vars:
                nfc_pb_glpi_host: '{{ host }}'
                nfc_pb_glpi_app_token: '{{ app_token }}'
                nfc_pb_glpi_user_token: '{{ user_token }}'

About:

This page forms part of our Project Ansible Playbooks.

Page Metadata
Version: ToDo: place files short git commit here
Date Created: 2023-12-11
Date Edited: 2024-02-07

Contribution:

Would You like to contribute to our Ansible Playbooks project? You can assist in the following ways:

 

ToDo: Add the page list of contributors