summaryrefslogtreecommitdiffstats
path: root/roles/lib_zabbix/tasks/create_template.yml
blob: 2992505bf495bd4ece50e5580ea0e57447692c5f (plain)
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
---
- name: Template Create Template
  zbx_template:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    name: "{{ template.name }}"
  register: created_template


- set_fact:
    lzbx_item_applications: "{{ template.zitems | default([], True) | oo_select_keys_from_list(['applications']) | oo_flatten | unique }}"
    lzbx_itemprototype_applications: "{{ template.zitemprototypes | default([], True) | oo_select_keys_from_list(['applications']) | oo_flatten | unique }}"

- name: Create Application
  zbx_application:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    name: "{{ item }}"
    template_name: "{{ template.name }}"
  with_items:
  - "{{ lzbx_item_applications }}"
  - "{{ lzbx_itemprototype_applications }}"
  register: created_application
  when: template.zitems is defined or template.zitemprototypes is defined

- name: Create Items
  zbx_item:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    key: "{{ item.key }}"
    name: "{{ item.name | default(item.key, true) }}"
    value_type: "{{ item.value_type | default('int') }}"
    data_type: "{{ item.data_type | default('decimal') }}"
    description: "{{ item.description | default('', True) }}"
    multiplier: "{{ item.multiplier | default('', True) }}"
    units: "{{ item.units | default('', True) }}"
    template_name: "{{ template.name }}"
    applications: "{{ item.applications }}"
    zabbix_type: "{{ item.zabbix_type | default('trapper') }}"
    interval: "{{ item.interval | default(60, True) }}"
    delta: "{{ item.delta | default(0, True) }}"
  with_items: template.zitems
  register: created_items
  when: template.zitems is defined

- name: Create Triggers
  zbx_trigger:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    name: "{{ item.name }}"
    description: "{{ item.description | default('', True) }}"
    dependencies: "{{ item.dependencies | default([], True) }}"
    expression: "{{ item.expression }}"
    priority: "{{ item.priority }}"
    url: "{{ item.url | default(None, True) }}"
  with_items: template.ztriggers
  when: template.ztriggers is defined

- name: Create Discoveryrules
  zbx_discoveryrule:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    name: "{{ item.name }}"
    key: "{{ item.key }}"
    lifetime: "{{ item.lifetime }}"
    template_name: "{{ template.name }}"
    description: "{{ item.description | default('', True) }}"
  with_items: template.zdiscoveryrules
  when: template.zdiscoveryrules is defined

- name: Create Item Prototypes
  zbx_itemprototype:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    name: "{{ item.name }}"
    key: "{{ item.key }}"
    discoveryrule_key: "{{ item.discoveryrule_key }}"
    value_type: "{{ item.value_type }}"
    data_type: "{{ item.data_type | default('decimal') }}"
    template_name: "{{ template.name }}"
    applications: "{{ item.applications }}"
    description: "{{ item.description | default('', True) }}"
    multiplier: "{{ item.multiplier | default('', True) }}"
    units: "{{ item.units | default('', True) }}"
    interval: "{{ item.interval | default(60, True) }}"
    delta: "{{ item.delta | default(0, True) }}"
  with_items: template.zitemprototypes
  when: template.zitemprototypes is defined

- name: Create Trigger Prototypes
  zbx_triggerprototype:
    zbx_server: "{{ server }}"
    zbx_user: "{{ user }}"
    zbx_password: "{{ password }}"
    name: "{{ item.name }}"
    expression: "{{ item.expression }}"
    url: "{{ item.url | default('', True) }}"
    priority: "{{ item.priority | default('average', True) }}"
    description: "{{ item.description | default('', True) }}"
  with_items: template.ztriggerprototypes
  when: template.ztriggerprototypes is defined