Skip to content
This repository was archived by the owner on Sep 7, 2025. It is now read-only.

Commit 3a2d774

Browse files
committed
add ceilometer
1 parent 1dc1765 commit 3a2d774

16 files changed

Lines changed: 258 additions & 0 deletions

File tree

main.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@
9797
tags: openstack,swift-ceph
9898
when: is_controller_node
9999
and swift_ceph_enabled | default(false)
100+
- role: ceilometer
101+
tags: openstack,ceilometer
102+
when: ceilometer_enabled | default(false)
100103

101104
# logging services
102105
- role: loki

roles/ceilometer/defaults/main.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
ceilometer_gnocchi_db_user_password: "{{secrets_ceilometer_gnocchi_dbpass}}"
2+
ceilometer_user_password: "{{secrets_ceilometer_pass}}"
3+
ceilometer_gnocchi_user_password: "{{secrets_ceilometer_gnocchi_pass}}"
4+
ceilometer_rabbitmq_user: openstack
5+
ceilometer_rabbitmq_user_password: "{{secrets_rabbit_pass}}"
6+
7+
ceilometer_gnocchi_url: "http://{{ansible_nodename}}:8041"

roles/ceilometer/handlers/main.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
- name: init gnocchi db
2+
shell: su -s /bin/sh -c "gnocchi-upgrade" gnocchi
3+
args:
4+
warn: false
5+
when: is_controller_node
6+
7+
- name: restart gnocchi-api
8+
systemd:
9+
name: openstack-gnocchi-api
10+
state: restarted
11+
when: is_controller_node
12+
13+
- name: restart gnocchi-metricd
14+
systemd:
15+
name: openstack-gnocchi-metricd
16+
state: restarted
17+
when: is_controller_node
18+
19+
- name: init ceilometer db
20+
shell: su -s /bin/sh -c "ceilometer-upgrade" ceilometer
21+
args:
22+
warn: false
23+
when: is_controller_node
24+
25+
- name: restart ceilometer-notification
26+
systemd:
27+
name: openstack-ceilometer-notification
28+
state: restarted
29+
when: is_controller_node
30+
31+
- name: restart ceilometer-central
32+
systemd:
33+
name: openstack-ceilometer-central
34+
state: restarted
35+
when: is_controller_node

roles/ceilometer/tasks/compute.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
- name: install compute
2+
package:
3+
name: openstack-ceilometer-compute
4+
state: "{{package_state | default('present')}}"
5+
6+
- name: configure ceilometer
7+
template:
8+
src: ceilometer.conf.j2
9+
dest: /etc/ceilometer/ceilometer.conf
10+
backup: true
11+
notify:
12+
- restart ceilometer-compute
13+
14+
- name: flush handlers
15+
meta: flush_handlers
16+
17+
- name: start and enable ceilometer-compute
18+
systemd:
19+
name: openstack-ceilometer-compute
20+
state: started
21+
enabled: true
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
- name: init gnocchi database
2+
include_role:
3+
name: mariadb
4+
tasks_from: init_db.yml
5+
vars:
6+
db_name: ceilometer-gnocchi
7+
db_user: ceilometer-gnocchi
8+
db_user_password: "{{ceilometer_gnocchi_db_user_password}}"
9+
10+
- name: init keystone ceilometer service
11+
include_role:
12+
name: keystone
13+
tasks_from: init_auth.yml
14+
vars:
15+
keystone_user: ceilometer
16+
keystone_user_password: "{{ceilometer_user_password}}"
17+
keystone_service_name: ceilometer
18+
keystone_service_description: Telemetry
19+
keystone_service_type: metering
20+
keystone_service_endpoint_interfaces: []
21+
22+
- name: init keystone gnocchi service
23+
include_role:
24+
name: keystone
25+
tasks_from: init_auth.yml
26+
vars:
27+
keystone_user: gnocchi
28+
keystone_user_password: "{{ceilometer_gnocchi_user_password}}"
29+
keystone_service_name: gnocchi
30+
keystone_service_description: Metric Service
31+
keystone_service_type: metric
32+
keystone_service_url: "{{ceilometer_gnocchi_url}}"
33+
34+
- name: install controller
35+
package:
36+
name:
37+
- openstack-gnocchi-api
38+
- openstack-gnocchi-metricd
39+
- "{{'python' if ansible_distribution_major_version|int < 8 else 'python3'}}-gnocchiclient"
40+
- uwsgi
41+
- uwsgi-plugin-common
42+
- uwsgi-plugin-python3
43+
- openstack-ceilometer-notification
44+
- openstack-ceilometer-central
45+
state: "{{package_state | default('present')}}"
46+
notify:
47+
- init gnocchi db
48+
- restart gnocchi-api
49+
- restart gnocchi-metricd
50+
- init ceilometer db
51+
- restart ceilometer-notification
52+
- restart ceilometer-central
53+
54+
- name: configure gnocchi
55+
template:
56+
src: gnocchi.conf.j2
57+
dest: /etc/gnocchi/gnocchi.conf
58+
backup: true
59+
notify:
60+
- init gnocchi db
61+
- restart gnocchi-api
62+
- restart gnocchi-metricd
63+
64+
- name: configure ceilometer
65+
template:
66+
src: "{{item}}.j2"
67+
dest: "/etc/ceilometer/{{item}}"
68+
backup: true
69+
loop:
70+
- pipeline.yaml
71+
- ceilometer.conf
72+
notify:
73+
- init ceilometer db
74+
- restart ceilometer-notification
75+
- restart ceilometer-central
76+
77+
- name: flush handlers
78+
meta: flush_handlers
79+
80+
- name: start and enable gnocchi
81+
systemd:
82+
name: "{{item}}"
83+
state: started
84+
enabled: true
85+
loop:
86+
- gnocchi-api
87+
- gnocchi-metricd
88+
89+
- name: start and enable ceilometer
90+
systemd:
91+
name: "{{item}}"
92+
state: started
93+
enabled: true
94+
loop:
95+
- openstack-ceilometer-notification
96+
- openstack-ceilometer-central

roles/ceilometer/tasks/main.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- name: install controller
2+
include_tasks: controller.yml
3+
when: is_controller_node
4+
5+
- name: install compute
6+
include_tasks: compute.yml
7+
when: is_compute_node
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[DEFAULT]
2+
transport_url = rabbit://{{ceilometer_rabbitmq_user}}:{{ceilometer_rabbitmq_user_password}}@{{rabbitmq_host}}
3+
4+
[service_credentials]
5+
auth_type = password
6+
auth_url = {{keystone_url}}
7+
project_domain_id = default
8+
user_domain_id = default
9+
project_name = service
10+
username = ceilometer
11+
password = {{ceilometer_user_password}}
12+
interface = internalURL
13+
region_name = {{os_region}}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[indexer]
2+
url = mysql+pymysql://ceilometer-gnocchi:{{secrets_ceilometer_gnocchi_dbpass}}@{{db_host}}/ceilometer-gnocchi
3+
4+
[api]
5+
auth_mode = keystone
6+
port = 8041
7+
uwsgi_mode = http-socket
8+
9+
[keystone_authtoken]
10+
auth_type = password
11+
auth_url = {{keystone_url}}
12+
project_domain_name = Default
13+
user_domain_name = Default
14+
project_name = service
15+
username = gnocchi
16+
password = {{ceilometer_gnocchi_user_password}}
17+
interface = internalURL
18+
region_name = {{os_region}}
19+
20+
[storage]
21+
file_basepath = /var/lib/gnocchi
22+
driver = file
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
sources:
3+
- name: meter_source
4+
meters:
5+
- "*"
6+
sinks:
7+
- meter_sink
8+
sinks:
9+
- name: meter_sink
10+
publishers:
11+
- gnocchi://?filter_project=service&archive_policy=low

roles/cinder/templates/cinder.conf.j2

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ password = {{cinder_user_password}}
5050
[oslo_concurrency]
5151
lock_path = /var/lib/cinder/tmp
5252

53+
{% if ceilometer_enabled | default(false) %}
54+
[oslo_messaging_notifications]
55+
driver = messagingv2
56+
{% endif %}
57+
5358
{% if is_block_storage_node %}
5459
{% if 'lvm' in cinder_backends %}
5560
# lvm backends

0 commit comments

Comments
 (0)