blob: deef86b9ff05df8beecb0060fccc9be60a7da80d (
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
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
|
---
- name: Wait for OpenSearch to become ready
become: true
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_internal_endpoint }}/_cluster/stats"
status_code: 200
ca_path: "{{ openstack_cacert }}"
register: result
until: result.get('status') == 200
retries: 30
delay: 2
run_once: true
when: not ansible_check_mode
- name: Wait for OpenSearch cluster to become healthy
become: true
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_internal_endpoint }}/_cluster/health"
ca_path: "{{ openstack_cacert }}"
register: opensearch_result
until: opensearch_result.json.status != "red"
retries: 30
delay: 2
run_once: true
when: not ansible_check_mode
- name: Check if a log retention policy exists
become: true
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_internal_endpoint }}/_plugins/_ism/policies/retention"
method: GET
status_code: 200, 404
return_content: true
ca_path: "{{ openstack_cacert }}"
register: opensearch_retention_policy_check
delegate_to: "{{ groups['opensearch'][0] }}"
run_once: true
- name: Create new log retention policy
become: true
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_internal_endpoint }}/_plugins/_ism/policies/retention"
method: PUT
status_code: 201
return_content: true
body: "{{ opensearch_retention_policy | from_yaml | to_json }}"
body_format: json
ca_path: "{{ openstack_cacert }}"
register: opensearch_retention_policy_create
delegate_to: "{{ groups['opensearch'][0] }}"
run_once: true
changed_when: opensearch_retention_policy_create.status == 201
when:
- not ansible_check_mode
- opensearch_retention_policy_check.status == 404
- name: Apply retention policy to existing indices
become: true
vars:
opensearch_set_policy_body: {"policy_id": "retention"}
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_internal_endpoint }}/_plugins/_ism/add/{{ opensearch_log_index_prefix }}-*"
method: POST
status_code: 200
return_content: true
body: "{{ opensearch_set_policy_body | to_json }}"
body_format: json
ca_path: "{{ openstack_cacert }}"
delegate_to: "{{ groups['opensearch'][0] }}"
run_once: true
changed_when: opensearch_retention_policy_create.status == 201
when:
- not ansible_check_mode
- opensearch_retention_policy_check.status == 404
- name: Wait for OpenSearch Dashboards API to become ready
become: true
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_dashboards_internal_endpoint }}/api/status"
method: GET
status_code: 200
url_username: "{{ opensearch_dashboards_user }}"
url_password: "{{ opensearch_dashboards_password }}"
force_basic_auth: true
ca_path: "{{ openstack_cacert }}"
register: result
until: result.get('status') == 200
retries: 30
delay: 10
delegate_to: "{{ groups['opensearch'][0] }}"
run_once: true
when: not ansible_check_mode
- name: Create OpenSearch Dashboards Index Pattern
become: true
kolla_toolbox:
container_engine: "{{ kolla_container_engine }}"
module_name: uri
module_args:
url: "{{ opensearch_dashboards_internal_endpoint }}/api/saved_objects/index-pattern/{{ opensearch_log_index_prefix }}-pattern"
method: POST
status_code: 200, 409
url_username: "{{ opensearch_dashboards_user }}"
url_password: "{{ opensearch_dashboards_password }}"
force_basic_auth: true
headers:
osd-xsrf: "true"
body:
attributes:
title: "{{ opensearch_log_index_prefix }}-*"
timeFieldName: "@timestamp"
body_format: json
ca_path: "{{ openstack_cacert }}"
register: opensearch_index_pattern_create
changed_when: opensearch_index_pattern_create.status == 200
delegate_to: "{{ groups['opensearch'][0] }}"
run_once: true
when:
- not ansible_check_mode
|