blob: 83f90571335da66b697db870f3c05cc31e3705c0 [file] [log] [blame]
Filip Pytlouna87b4712015-10-06 16:28:31 +02001{%- from "ceilometer/map.jinja" import server with context %}
2{%- if server.enabled %}
3
4ceilometer_server_packages:
5 pkg.installed:
6 - names: {{ server.pkgs }}
7
8/etc/ceilometer/ceilometer.conf:
9 file.managed:
10 - source: salt://ceilometer/files/{{ server.version }}/ceilometer-server.conf.{{ grains.os_family }}
11 - template: jinja
12 - require:
13 - pkg: ceilometer_server_packages
14
Dmitry Kalashnik4b83f4c2017-12-07 16:17:03 +040015{%- for service_name in server.services %}
16{{ service_name }}_default:
17 file.managed:
18 - name: /etc/default/{{ service_name }}
19 - source: salt://ceilometer/files/default
20 - template: jinja
21 - require:
22 - pkg: ceilometer_server_packages
23 - defaults:
24 service_name: {{ service_name }}
25 values: {{ server }}
26 - watch_in:
27 - service: ceilometer_server_services
28{%- endfor %}
29
30{%- if server.logging.log_appender %}
31
32{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
33ceilometer_server_fluentd_logger_package:
34 pkg.installed:
35 - name: python-fluent-logger
36{%- endif %}
37
38ceilometer_general_logging_conf:
39 file.managed:
40 - name: /etc/ceilometer/logging.conf
41 - source: salt://ceilometer/files/logging.conf
42 - template: jinja
43 - user: ceilometer
44 - group: ceilometer
45 - require:
46 - pkg: ceilometer_server_packages
47{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
48 - pkg: ceilometer_server_fluentd_logger_package
49{%- endif %}
50 - defaults:
51 service_name: ceilometer
52 values: {{ server }}
53 - watch_in:
54 - service: ceilometer_server_services
55{%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %}
56 - service: ceilometer_apache_restart
57{%- endif %}
58
59/var/log/ceilometer/ceilometer.log:
60 file.managed:
61 - user: ceilometer
62 - group: ceilometer
63 - watch_in:
64 - service: ceilometer_server_services
65{%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %}
66 - service: ceilometer_apache_restart
67{%- endif %}
68
69{%- for service_name in server.get('services', []) %}
70{{ service_name }}_logging_conf:
71 file.managed:
Dmitry Kalashnik87670122018-01-19 19:03:30 +040072 - name: /etc/ceilometer/logging/logging-{{ service_name }}.conf
Dmitry Kalashnik4b83f4c2017-12-07 16:17:03 +040073 - source: salt://ceilometer/files/logging.conf
74 - template: jinja
75 - require:
76 - pkg: ceilometer_server_packages
77{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
78 - pkg: ceilometer_server_fluentd_logger_package
79{%- endif %}
80 - makedirs: True
81 - defaults:
82 service_name: {{ service_name }}
83 values: {{ server }}
84 - watch_in:
85 - service: ceilometer_server_services
86{%- endfor %}
87
88{%- endif %}
89
Benjamin Drungd473ad22018-02-13 23:39:58 +010090{%- for name, rule in server.get('policy', {}).items() %}
Dmitry Ukov2bb7cac2017-05-15 14:04:03 +040091
92{%- if rule != None %}
93rule_{{ name }}_present:
94 keystone_policy.rule_present:
95 - path: /etc/ceilometer/policy.json
96 - name: {{ name }}
97 - rule: {{ rule }}
98 - require:
99 - pkg: ceilometer_server_packages
100
101{%- else %}
102
103rule_{{ name }}_absent:
104 keystone_policy.rule_absent:
105 - path: /etc/ceilometer/policy.json
106 - name: {{ name }}
107 - require:
108 - pkg: ceilometer_server_packages
109
110{%- endif %}
111
112{%- endfor %}
113
Benjamin Drungd473ad22018-02-13 23:39:58 +0100114{%- for publisher_name, publisher in server.get('publisher', {}).items() %}
Filip Pytlouna87b4712015-10-06 16:28:31 +0200115
Mykyta Karpinbb7b95f2018-06-01 12:40:24 +0300116{%- if server.version in ['liberty', 'juno', 'kilo', 'mitaka', 'newton', 'ocata'] %}
Mykyta Karpin096d8e12018-03-01 14:57:10 +0200117{%- if publisher_name not in ['default', 'gnocchi', 'panko'] %}
Filip Pytlouna87b4712015-10-06 16:28:31 +0200118
119ceilometer_publisher_{{ publisher_name }}_pkg:
120 pkg.latest:
121 - name: ceilometer-publisher-{{ publisher_name }}
122
123{%- endif %}
Mykyta Karpinbb7b95f2018-06-01 12:40:24 +0300124{%- elif publisher.get('enabled', False) %}
125{%- if publisher.pkg is defined %}
Filip Pytlouna87b4712015-10-06 16:28:31 +0200126
Mykyta Karpinbb7b95f2018-06-01 12:40:24 +0300127ceilometer_publisher_{{ publisher_name }}_pkg:
128 pkg.latest:
129 - name: {{ publisher.pkg }}
130
131{%- endif %}
132
133{%- if publisher_name == 'gnocchi' %}
Mykyta Karpin096d8e12018-03-01 14:57:10 +0200134
135ceilometer_gnocchiclient_pkg:
136 pkg.latest:
137 - name: python-gnocchiclient
138
139{%- if publisher.create_resources %}
140
141ceilometer_server_gnocchi_resources:
142 file.managed:
143 - name: /etc/ceilometer/gnocchi_resources.yaml
144 - source: salt://ceilometer/files/{{ server.version }}/gnocchi_resources.yaml
145 - template: jinja
146 - require:
147 - pkg: ceilometer_server_packages
148 - pkg: ceilometer_gnocchiclient_pkg
149
150ceilometer_upgrade:
151 cmd.run:
152 - name: ceilometer-upgrade --skip-metering-database
153 {%- if grains.get('noservices') %}
154 - onlyif: /bin/false
155 {%- endif %}
156 - onchanges:
157 - ceilometer_server_gnocchi_resources
158
159{%- endif %}
160{%- endif %}
Mykyta Karpinbb7b95f2018-06-01 12:40:24 +0300161{%- endif %}
Mykyta Karpin096d8e12018-03-01 14:57:10 +0200162
Filip Pytlouna87b4712015-10-06 16:28:31 +0200163{%- endfor %}
164
165/etc/ceilometer/pipeline.yaml:
166 file.managed:
167 - source: salt://ceilometer/files/{{ server.version }}/pipeline.yaml
168 - template: jinja
169 - require:
170 - pkg: ceilometer_server_packages
171
Jakub Pavlikd55475e2016-09-21 11:44:32 +0200172{%- if server.version != "kilo" %}
173
174/etc/ceilometer/event_pipeline.yaml:
175 file.managed:
176 - source: salt://ceilometer/files/{{ server.version }}/event_pipeline.yaml
177 - template: jinja
178 - require:
179 - pkg: ceilometer_server_packages
180 - watch_in:
181 - service: ceilometer_server_services
182
183/etc/ceilometer/event_definitions.yaml:
184 file.managed:
185 - source: salt://ceilometer/files/{{ server.version }}/event_definitions.yaml
186 - template: jinja
187 - require:
188 - pkg: ceilometer_server_packages
189 - watch_in:
190 - service: ceilometer_server_services
191
192/etc/ceilometer/gabbi_pipeline.yaml:
193 file.managed:
194 - source: salt://ceilometer/files/{{ server.version }}/gabbi_pipeline.yaml
195 - template: jinja
196 - require:
197 - pkg: ceilometer_server_packages
198 - watch_in:
199 - service: ceilometer_server_services
200
201{%- endif %}
202
Ildar Svetlov554ac902017-07-03 14:39:01 +0400203# for Newton and newer
204{%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %}
Petr Jediný1c34abb2017-06-07 14:34:13 +0200205
Ildar Svetlovec83f652017-07-07 18:33:11 +0400206ceilometer_api_apache_config:
Petr Jediný1c34abb2017-06-07 14:34:13 +0200207 file.managed:
Ildar Svetlovec83f652017-07-07 18:33:11 +0400208 {%- if server.version == 'newton' %}
209 - name: /etc/apache2/sites-available/ceilometer.conf
210 {%- else %}
211 - name: /etc/apache2/sites-available/ceilometer-api.conf
212 {%- endif %}
Ildar Svetlov554ac902017-07-03 14:39:01 +0400213 - source: salt://ceilometer/files/{{ server.version }}/ceilometer.apache2.conf.Debian
Petr Jediný1c34abb2017-06-07 14:34:13 +0200214 - template: jinja
215 - require:
216 - pkg: ceilometer_server_packages
217
218ceilometer_api_config:
219 file.symlink:
Ildar Svetlovec83f652017-07-07 18:33:11 +0400220 {%- if server.version == 'newton' %}
Ildar Svetlov554ac902017-07-03 14:39:01 +0400221 - name: /etc/apache2/sites-enabled/ceilometer.conf
222 - target: /etc/apache2/sites-available/ceilometer.conf
Ildar Svetlovec83f652017-07-07 18:33:11 +0400223 {%- else %}
224 - name: /etc/apache2/sites-enabled/ceilometer-api.conf
225 - target: /etc/apache2/sites-available/ceilometer-api.conf
226 {%- endif %}
Petr Jediný1c34abb2017-06-07 14:34:13 +0200227
228ceilometer_apache_restart:
229 service.running:
230 - enable: true
231 - name: apache2
Mykyta Karpin72d0b992018-02-16 12:01:11 +0200232 {%- if grains.get('noservices') %}
233 - onlyif: /bin/false
234 {%- endif %}
Petr Jediný1c34abb2017-06-07 14:34:13 +0200235 - watch:
236 - file: /etc/ceilometer/ceilometer.conf
Ildar Svetlovec83f652017-07-07 18:33:11 +0400237 - file: ceilometer_api_apache_config
Petr Jediný1c34abb2017-06-07 14:34:13 +0200238 - file: /etc/ceilometer/event_definitions.yaml
239 - file: /etc/ceilometer/event_pipeline.yaml
240 - file: /etc/ceilometer/gabbi_pipeline.yaml
241 - file: /etc/ceilometer/pipeline.yaml
Mykyta Karpin60fdb202018-03-15 19:22:24 +0200242 # ceilometer-upgrade requires operational Gnocchi service API,
243 # which can be run on the same node as Ceilometer under apache,
244 # the command is executed only when Gnocchi is enabled.
245 {%- set gnocchi_publisher = server.get('publisher', {}).get('gnocchi', {}) %}
246 {%- if gnocchi_publisher.get('create_resources', False) and gnocchi_publisher.get('enabled', False) %}
247 - require:
248 - ceilometer_upgrade
249 {%- endif %}
Petr Jediný1c34abb2017-06-07 14:34:13 +0200250
251{%- endif %}
252
Mykyta Karpin72d0b992018-02-16 12:01:11 +0200253{%- if server.message_queue.get('ssl',{}).get('enabled', False) %}
254rabbitmq_ca_ceilometer_server:
255{%- if server.message_queue.ssl.cacert is defined %}
256 file.managed:
257 - name: {{ server.message_queue.ssl.cacert_file }}
258 - contents_pillar: ceilometer:server:message_queue:ssl:cacert
259 - mode: 0444
260 - makedirs: true
261 - require_in:
262 - file: /etc/ceilometer/ceilometer.conf
263 - watch_in:
264 - ceilometer_server_services
265{%- else %}
266 file.exists:
267 - name: {{ server.message_queue.ssl.get('cacert_file', server.cacert_file) }}
268 - require_in:
269 - file: /etc/ceilometer/ceilometer.conf
270 - watch_in:
271 - ceilometer_server_services
272{%- endif %}
273{%- endif %}
274
Filip Pytlouna87b4712015-10-06 16:28:31 +0200275ceilometer_server_services:
276 service.running:
277 - names: {{ server.services }}
278 - enable: true
Mykyta Karpin72d0b992018-02-16 12:01:11 +0200279 {%- if grains.get('noservices') %}
280 - onlyif: /bin/false
281 {%- endif %}
Filip Pytlouna87b4712015-10-06 16:28:31 +0200282 - watch:
283 - file: /etc/ceilometer/ceilometer.conf
284
285{%- endif %}