| {%- from "ceilometer/map.jinja" import server with context %} |
| {%- if server.enabled %} |
| |
| ceilometer_server_packages: |
| pkg.installed: |
| - names: {{ server.pkgs }} |
| |
| /etc/ceilometer/ceilometer.conf: |
| file.managed: |
| - source: salt://ceilometer/files/{{ server.version }}/ceilometer-server.conf.{{ grains.os_family }} |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| |
| {%- for service_name in server.services %} |
| {{ service_name }}_default: |
| file.managed: |
| - name: /etc/default/{{ service_name }} |
| - source: salt://ceilometer/files/default |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| - defaults: |
| service_name: {{ service_name }} |
| values: {{ server }} |
| - watch_in: |
| - service: ceilometer_server_services |
| {%- endfor %} |
| |
| {%- if server.logging.log_appender %} |
| |
| {%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %} |
| ceilometer_server_fluentd_logger_package: |
| pkg.installed: |
| - name: python-fluent-logger |
| {%- endif %} |
| |
| ceilometer_general_logging_conf: |
| file.managed: |
| - name: /etc/ceilometer/logging.conf |
| - source: salt://ceilometer/files/logging.conf |
| - template: jinja |
| - user: ceilometer |
| - group: ceilometer |
| - require: |
| - pkg: ceilometer_server_packages |
| {%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %} |
| - pkg: ceilometer_server_fluentd_logger_package |
| {%- endif %} |
| - defaults: |
| service_name: ceilometer |
| values: {{ server }} |
| - watch_in: |
| - service: ceilometer_server_services |
| {%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %} |
| - service: ceilometer_apache_restart |
| {%- endif %} |
| |
| /var/log/ceilometer/ceilometer.log: |
| file.managed: |
| - user: ceilometer |
| - group: ceilometer |
| - watch_in: |
| - service: ceilometer_server_services |
| {%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %} |
| - service: ceilometer_apache_restart |
| {%- endif %} |
| |
| {%- for service_name in server.get('services', []) %} |
| {{ service_name }}_logging_conf: |
| file.managed: |
| - name: /etc/ceilometer/logging/logging-{{ service_name }}.conf |
| - source: salt://ceilometer/files/logging.conf |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| {%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %} |
| - pkg: ceilometer_server_fluentd_logger_package |
| {%- endif %} |
| - makedirs: True |
| - defaults: |
| service_name: {{ service_name }} |
| values: {{ server }} |
| - watch_in: |
| - service: ceilometer_server_services |
| {%- endfor %} |
| |
| {%- endif %} |
| |
| {%- for name, rule in server.get('policy', {}).items() %} |
| |
| {%- if rule != None %} |
| rule_{{ name }}_present: |
| keystone_policy.rule_present: |
| - path: /etc/ceilometer/policy.json |
| - name: {{ name }} |
| - rule: {{ rule }} |
| - require: |
| - pkg: ceilometer_server_packages |
| |
| {%- else %} |
| |
| rule_{{ name }}_absent: |
| keystone_policy.rule_absent: |
| - path: /etc/ceilometer/policy.json |
| - name: {{ name }} |
| - require: |
| - pkg: ceilometer_server_packages |
| |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| {%- for publisher_name, publisher in server.get('publisher', {}).items() %} |
| |
| {%- if server.version in ['liberty', 'juno', 'kilo', 'mitaka', 'newton', 'ocata'] %} |
| {%- if publisher_name not in ['default', 'gnocchi', 'panko'] %} |
| |
| ceilometer_publisher_{{ publisher_name }}_pkg: |
| pkg.latest: |
| - name: ceilometer-publisher-{{ publisher_name }} |
| |
| {%- endif %} |
| {%- elif publisher.get('enabled', False) %} |
| {%- if publisher.pkg is defined %} |
| |
| ceilometer_publisher_{{ publisher_name }}_pkg: |
| pkg.latest: |
| - name: {{ publisher.pkg }} |
| |
| {%- endif %} |
| |
| {%- if publisher_name == 'gnocchi' %} |
| |
| ceilometer_gnocchiclient_pkg: |
| pkg.latest: |
| - name: python-gnocchiclient |
| |
| {%- if publisher.create_resources %} |
| |
| ceilometer_server_gnocchi_resources: |
| file.managed: |
| - name: /etc/ceilometer/gnocchi_resources.yaml |
| - source: salt://ceilometer/files/{{ server.version }}/gnocchi_resources.yaml |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| - pkg: ceilometer_gnocchiclient_pkg |
| |
| ceilometer_upgrade: |
| cmd.run: |
| - name: ceilometer-upgrade --skip-metering-database |
| {%- if grains.get('noservices') %} |
| - onlyif: /bin/false |
| {%- endif %} |
| - onchanges: |
| - ceilometer_server_gnocchi_resources |
| |
| {%- endif %} |
| {%- endif %} |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| /etc/ceilometer/pipeline.yaml: |
| file.managed: |
| - source: salt://ceilometer/files/{{ server.version }}/pipeline.yaml |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| |
| {%- if server.version != "kilo" %} |
| |
| /etc/ceilometer/event_pipeline.yaml: |
| file.managed: |
| - source: salt://ceilometer/files/{{ server.version }}/event_pipeline.yaml |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| - watch_in: |
| - service: ceilometer_server_services |
| |
| /etc/ceilometer/event_definitions.yaml: |
| file.managed: |
| - source: salt://ceilometer/files/{{ server.version }}/event_definitions.yaml |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| - watch_in: |
| - service: ceilometer_server_services |
| |
| /etc/ceilometer/gabbi_pipeline.yaml: |
| file.managed: |
| - source: salt://ceilometer/files/{{ server.version }}/gabbi_pipeline.yaml |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| - watch_in: |
| - service: ceilometer_server_services |
| |
| {%- endif %} |
| |
| # for Newton and newer |
| {%- if server.version not in ['liberty', 'juno', 'kilo', 'mitaka'] %} |
| |
| ceilometer_api_apache_config: |
| file.managed: |
| {%- if server.version == 'newton' %} |
| - name: /etc/apache2/sites-available/ceilometer.conf |
| {%- else %} |
| - name: /etc/apache2/sites-available/ceilometer-api.conf |
| {%- endif %} |
| - source: salt://ceilometer/files/{{ server.version }}/ceilometer.apache2.conf.Debian |
| - template: jinja |
| - require: |
| - pkg: ceilometer_server_packages |
| |
| ceilometer_api_config: |
| file.symlink: |
| {%- if server.version == 'newton' %} |
| - name: /etc/apache2/sites-enabled/ceilometer.conf |
| - target: /etc/apache2/sites-available/ceilometer.conf |
| {%- else %} |
| - name: /etc/apache2/sites-enabled/ceilometer-api.conf |
| - target: /etc/apache2/sites-available/ceilometer-api.conf |
| {%- endif %} |
| |
| ceilometer_apache_restart: |
| service.running: |
| - enable: true |
| - name: apache2 |
| {%- if grains.get('noservices') %} |
| - onlyif: /bin/false |
| {%- endif %} |
| - watch: |
| - file: /etc/ceilometer/ceilometer.conf |
| - file: ceilometer_api_apache_config |
| - file: /etc/ceilometer/event_definitions.yaml |
| - file: /etc/ceilometer/event_pipeline.yaml |
| - file: /etc/ceilometer/gabbi_pipeline.yaml |
| - file: /etc/ceilometer/pipeline.yaml |
| # ceilometer-upgrade requires operational Gnocchi service API, |
| # which can be run on the same node as Ceilometer under apache, |
| # the command is executed only when Gnocchi is enabled. |
| {%- set gnocchi_publisher = server.get('publisher', {}).get('gnocchi', {}) %} |
| {%- if gnocchi_publisher.get('create_resources', False) and gnocchi_publisher.get('enabled', False) %} |
| - require: |
| - ceilometer_upgrade |
| {%- endif %} |
| |
| {%- endif %} |
| |
| {%- if server.message_queue.get('ssl',{}).get('enabled', False) %} |
| rabbitmq_ca_ceilometer_server: |
| {%- if server.message_queue.ssl.cacert is defined %} |
| file.managed: |
| - name: {{ server.message_queue.ssl.cacert_file }} |
| - contents_pillar: ceilometer:server:message_queue:ssl:cacert |
| - mode: 0444 |
| - makedirs: true |
| - require_in: |
| - file: /etc/ceilometer/ceilometer.conf |
| - watch_in: |
| - ceilometer_server_services |
| {%- else %} |
| file.exists: |
| - name: {{ server.message_queue.ssl.get('cacert_file', server.cacert_file) }} |
| - require_in: |
| - file: /etc/ceilometer/ceilometer.conf |
| - watch_in: |
| - ceilometer_server_services |
| {%- endif %} |
| {%- endif %} |
| |
| ceilometer_server_services: |
| service.running: |
| - names: {{ server.services }} |
| - enable: true |
| {%- if grains.get('noservices') %} |
| - onlyif: /bin/false |
| {%- endif %} |
| - watch: |
| - file: /etc/ceilometer/ceilometer.conf |
| |
| {%- endif %} |