-
Notifications
You must be signed in to change notification settings - Fork 11
/
dt-api-management-zone.yml
151 lines (151 loc) · 4.81 KB
/
dt-api-management-zone.yml
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
# create dynatrace management zone with host group value
# host_name -> target host to execute playbook
# dt_config_api_endpoint -> dynatrace configuration api endpoint (include trailing /)
# dt_api_token -> dynatrace api token with read & write access
# dt_mz_name -> name of assign dynatrace management zone
# dt_mz_64id -> unique 64 bit integer id to assign dynatrace management zone
# dt_host_group -> name of existing host group to apply to rules
---
-
hosts: "{{ host_name }}"
name: "create dynatrace management zone with host group value"
tasks:
-
name: "generate management zone 64 bit id"
set_fact:
dt_mz_64id: "{{ 999999999999999999 | random(100000000000000000, 10) }}"
when: dt_mz_64id is undefined
-
name: "validate management zone 64 bit id is available"
uri:
url: "{{ dt_config_api_endpoint }}managementZones?Api-Token={{ dt_api_token }}"
method: GET
return_content: yes
status_code: 200
register: existing_mz
failed_when: 'dt_mz_64id|string in existing_mz.content'
-
name: "validate management zone payload"
uri:
url: "{{ dt_config_api_endpoint }}managementZones/validator?Api-Token={{ dt_api_token }}"
method: POST
body:
name: "{{ dt_mz_name }}"
rules:
- type: SERVICE
enabled: true
propagationTypes: []
conditions:
- key:
attribute: HOST_GROUP_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
- type: PROCESS_GROUP
enabled: true
propagationTypes: []
conditions:
- key:
attribute: HOST_GROUP_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
- type: HOST
enabled: true
propagationTypes: []
conditions:
- key:
attribute: HOST_GROUP_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
- type: WEB_APPLICATION
enabled: true
propagationTypes: []
conditions:
- key:
attribute: WEB_APPLICATION_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
body_format: json
status_code: 204
return_content: yes
register: new_mz
-
name: "create management zone"
uri:
url: "{{ dt_config_api_endpoint }}managementZones/{{ dt_mz_64id }}?Api-Token={{ dt_api_token }}"
method: PUT
body:
id: "{{ dt_mz_64id }}"
name: "{{ dt_mz_name }}"
rules:
- type: SERVICE
enabled: true
propagationTypes: []
conditions:
- key:
attribute: HOST_GROUP_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
- type: PROCESS_GROUP
enabled: true
propagationTypes: []
conditions:
- key:
attribute: HOST_GROUP_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
- type: HOST
enabled: true
propagationTypes: []
conditions:
- key:
attribute: HOST_GROUP_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
- type: WEB_APPLICATION
enabled: true
propagationTypes: []
conditions:
- key:
attribute: WEB_APPLICATION_NAME
comparisonInfo:
type: STRING
operator: EQUALS
value: "{{ dt_host_group }}"
negate: false
caseSensitive: false
body_format: json
status_code: 201
return_content: yes
register: new_mz
-
name: "output management zone id"
debug:
msg: "{{ dt_mz_64id }}"