Fix of oslomsg undefined variables for services notifications

A buch of defaults oslomsg related variables were configured.
In case of enabling ceilometer for services, role failed unless
all required vars has been specified manually by deployer.

Also vars ceilometer_oslomsg_rpc_servers
and ceilometer_oslomsg_notify_servers were removed
They were not used anywhere except ceilometer.conf.j2
and might be easily replaced with host_group vars.
Their removal allowed to simplify macros.

Fixed distro_install functional test for ubuntu,
as ceilometer-agent-notification package was missing.

Change-Id: I148ccaff9576b09d33d889b79963e88ca84d2ffe
Closes-Bug: 1794688
This commit is contained in:
Dmitriy Rabotjagov 2018-10-03 20:12:13 +03:00
parent 325c9741c4
commit ec29ffad36
4 changed files with 97 additions and 32 deletions

View File

@ -60,25 +60,94 @@ ceilometer_system_user_home: "/var/lib/{{ ceilometer_system_user_name }}"
## Oslo Messaging info
# RPC
ceilometer_oslomsg_rpc_host_group: "{{ oslomsg_rpc_host_group | default('rabbitmq_all') }}"
ceilometer_oslomsg_rpc_setup_host: "{{ (ceilometer_oslomsg_rpc_host_group in groups) | ternary(groups[ceilometer_oslomsg_rpc_host_group][0], 'localhost') }}"
ceilometer_oslomsg_rpc_transport: "{{ oslomsg_rpc_transport | default('rabbit') }}"
ceilometer_oslomsg_rpc_servers: "{{ oslomsg_rpc_servers | default('127.0.0.1') }}"
ceilometer_oslomsg_rpc_port: "{{ oslomsg_rpc_port | default('5672') }}"
ceilometer_oslomsg_rpc_use_ssl: "{{ oslomsg_rpc_use_ssl | default(False) }}"
ceilometer_oslomsg_rpc_userid: ceilometer
ceilometer_oslomsg_rpc_vhost: /ceilometer
ceilometer_oslomsg_rpc_host_group: "{{ oslomsg_rpc_host_group | default('rabbitmq_all') }}"
# Notify
ceilometer_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
ceilometer_oslomsg_notify_setup_host: "{{ (ceilometer_oslomsg_notify_host_group in groups) | ternary(groups[ceilometer_oslomsg_notify_host_group][0], 'localhost') }}"
ceilometer_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
ceilometer_oslomsg_notify_servers: "{{ oslomsg_notify_servers | default('127.0.0.1') }}"
ceilometer_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
ceilometer_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
ceilometer_oslomsg_notify_userid: "{{ ceilometer_oslomsg_rpc_userid }}"
ceilometer_oslomsg_notify_password: "{{ ceilometer_oslomsg_rpc_password }}"
ceilometer_oslomsg_notify_vhost: "{{ ceilometer_oslomsg_rpc_vhost }}"
ceilometer_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
# Glance notifications
glance_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
glance_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
glance_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
glance_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
glance_oslomsg_notify_userid: "{{ glance_oslomsg_rpc_userid | default('glance') }}"
glance_oslomsg_notify_password: "{{ glance_ceilometer_enabled | ternary(glance_oslomsg_rpc_password, '') }}"
glance_oslomsg_notify_vhost: "{{ glance_oslomsg_rpc_vhost | default('/glance') }}"
# Nova notifications
nova_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
nova_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
nova_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
nova_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
nova_oslomsg_notify_userid: "{{ nova_oslomsg_rpc_userid | default('nova') }}"
nova_oslomsg_notify_password: "{{ nova_ceilometer_enabled | ternary(nova_oslomsg_rpc_password, '') }}"
nova_oslomsg_notify_vhost: "{{ nova_oslomsg_rpc_vhost | default('/nova') }}"
# Cinder notifications
cinder_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
cinder_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
cinder_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
cinder_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
cinder_oslomsg_notify_userid: "{{ cinder_oslomsg_rpc_userid | default('cinder') }}"
cinder_oslomsg_notify_password: "{{ cinder_ceilometer_enabled | ternary(cinder_oslomsg_rpc_password, '') }}"
cinder_oslomsg_notify_vhost: "{{ cinder_oslomsg_rpc_vhost | default('/cinder') }}"
# Neutron notifications
neutron_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
neutron_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
neutron_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
neutron_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
neutron_oslomsg_notify_userid: "{{ neutron_oslomsg_rpc_userid | default('neutron') }}"
neutron_oslomsg_notify_password: "{{ neutron_ceilometer_enabled | ternary(neutron_oslomsg_rpc_password, '') }}"
neutron_oslomsg_notify_vhost: "{{ neutron_oslomsg_rpc_vhost | default('/neutron') }}"
# Heat notifications
heat_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
heat_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
heat_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
heat_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
heat_oslomsg_notify_userid: "{{ heat_oslomsg_rpc_userid | default('heat') }}"
heat_oslomsg_notify_password: "{{ heat_ceilometer_enabled | ternary(heat_oslomsg_rpc_password, '') }}"
heat_oslomsg_notify_vhost: "{{ heat_oslomsg_rpc_vhost | default('/heat') }}"
# Keystone notifications
keystone_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
keystone_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
keystone_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
keystone_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
keystone_oslomsg_notify_userid: "{{ keystone_oslomsg_rpc_userid | default('keystone') }}"
keystone_oslomsg_notify_password: "{{ keystone_ceilometer_enabled | ternary(keystone_oslomsg_rpc_password, '') }}"
keystone_oslomsg_notify_vhost: "{{ keystone_oslomsg_rpc_vhost | default('/keystone') }}"
# Swift notifications
swift_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
swift_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
swift_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
swift_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
swift_oslomsg_notify_userid: "swift"
swift_oslomsg_notify_vhost: "/swift"
# Sahara notifications
sahara_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}"
sahara_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}"
sahara_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}"
sahara_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}"
sahara_oslomsg_notify_userid: "{{ sahara_oslomsg_rpc_userid | default('sahara') }}"
sahara_oslomsg_notify_password: "{{ sahara_ceilometer_enabled | ternary(sahara_oslomsg_rpc_password, '') }}"
sahara_oslomsg_notify_vhost: "{{ sahara_oslomsg_rpc_vhost | default('/sahara') }}"
## (Qdrouterd) info
# TODO(ansmith): Change structure when more backends will be supported

View File

@ -0,0 +1,6 @@
---
upgrade:
- The variables ``ceilometer_oslomsg_rpc_servers`` and
``ceilometer_oslomsg_notify_servers`` have been
removed in favour of using ``ceilometer_oslomsg_rpc_host_group``
and ``ceilometer_oslomsg_notify_host_group`` instead.

View File

@ -1,4 +1,11 @@
#{{ ansible_managed}}
{% macro _oslomsg_url(transport, userid, password, hosts, port, vhost, query='') %}
{% set _url = [] %}
{% for host in hosts %}
{% set _ = _url.append(userid + ':' + password + '@' + hostvars[host]['ansible_host'] + ':' + port) %}
{% endfor %}
{{ transport }}://{{ _url | join(',') }}/{{ vhost }}?{{ query }}
{% endmacro %}
[DEFAULT]
use_journal = True
@ -9,7 +16,7 @@ auth_strategy = keystone
aodh_is_enabled = {{ ceilometer_aodh_enabled | bool }}
# RPC
transport_url = {{ ceilometer_oslomsg_rpc_transport }}://{% for host in ceilometer_oslomsg_rpc_servers.split(',') %}{{ ceilometer_oslomsg_rpc_userid }}:{{ ceilometer_oslomsg_rpc_password }}@{{ host }}:{{ ceilometer_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ ceilometer_oslomsg_rpc_vhost }}{% if ceilometer_oslomsg_rpc_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
transport_url = {{ _oslomsg_url(ceilometer_oslomsg_rpc_transport, ceilometer_oslomsg_rpc_userid, ceilometer_oslomsg_rpc_password, groups[ceilometer_oslomsg_rpc_host_group], ceilometer_oslomsg_rpc_port, ceilometer_oslomsg_rpc_vhost, query=(ceilometer_oslomsg_rpc_use_ssl | bool | ternary('ssl=1', ''))) }}
{% if ceilometer_gnocchi_enabled | bool %}
event_dispatchers = gnocchi
@ -36,64 +43,46 @@ store_events = {{ not ceilometer_gnocchi_enabled | bool }}
# Notification queues to listen on
# Ceilometer needs to connect to it's own notification vhost
{% for host in groups[ceilometer_oslomsg_notify_host_group] %}
messaging_urls = {{ ceilometer_oslomsg_notify_transport }}://{{ ceilometer_oslomsg_notify_userid }}:{{ ceilometer_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ ceilometer_oslomsg_notify_port }}/{{ ceilometer_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(ceilometer_oslomsg_notify_transport, ceilometer_oslomsg_notify_userid, ceilometer_oslomsg_notify_password, groups[ceilometer_oslomsg_notify_host_group], ceilometer_oslomsg_notify_port, ceilometer_oslomsg_notify_vhost, query=(ceilometer_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% if glance_ceilometer_enabled %}
# Glance notifications
{% for host in groups[glance_oslomsg_notify_host_group] %}
messaging_urls = {{ glance_oslomsg_notify_transport }}://{{ glance_oslomsg_notify_userid }}:{{ glance_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ glance_oslomsg_notify_port }}/{{ glance_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(glance_oslomsg_notify_transport, glance_oslomsg_notify_userid, glance_oslomsg_notify_password, groups[glance_oslomsg_notify_host_group], glance_oslomsg_notify_port, glance_oslomsg_notify_vhost, query=(glance_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if nova_ceilometer_enabled %}
# Nova notifications
{% for host in groups[nova_oslomsg_notify_host_group] %}
messaging_urls = {{ nova_oslomsg_notify_transport }}://{{ nova_oslomsg_notify_userid }}:{{ nova_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ nova_oslomsg_notify_port }}/{{ nova_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(nova_oslomsg_notify_transport, nova_oslomsg_notify_userid, nova_oslomsg_notify_password, groups[nova_oslomsg_notify_host_group], nova_oslomsg_notify_port, nova_oslomsg_notify_vhost, query=(nova_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if cinder_ceilometer_enabled %}
# Cinder notifications
{% for host in groups[cinder_oslomsg_notify_host_group] %}
messaging_urls = {{ cinder_oslomsg_notify_transport }}://{{ cinder_oslomsg_notify_userid }}:{{ cinder_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ cinder_oslomsg_notify_port }}/{{ cinder_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(cinder_oslomsg_notify_transport, cinder_oslomsg_notify_userid, cinder_oslomsg_notify_password, groups[cinder_oslomsg_notify_host_group], cinder_oslomsg_notify_port, cinder_oslomsg_notify_vhost, query=(cinder_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if neutron_ceilometer_enabled %}
# Neutron notifications
{% for host in groups[neutron_oslomsg_notify_host_group] %}
messaging_urls = {{ neutron_oslomsg_notify_transport }}://{{ neutron_oslomsg_notify_userid }}:{{ neutron_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ neutron_oslomsg_notify_port }}/{{ neutron_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(neutron_oslomsg_notify_transport, neutron_oslomsg_notify_userid, neutron_oslomsg_notify_password, groups[neutron_oslomsg_notify_host_group], neutron_oslomsg_notify_port, neutron_oslomsg_notify_vhost, query=(neutron_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if heat_ceilometer_enabled %}
# Heat notifications
{% for host in groups[heat_oslomsg_notify_host_group] %}
messaging_urls = {{ heat_oslomsg_notify_transport }}://{{ heat_oslomsg_notify_userid }}:{{ heat_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ heat_oslomsg_notify_port }}/{{ heat_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(heat_oslomsg_notify_transport, heat_oslomsg_notify_userid, heat_oslomsg_notify_password, groups[heat_oslomsg_notify_host_group], heat_oslomsg_notify_port, heat_oslomsg_notify_vhost, query=(heat_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if keystone_ceilometer_enabled %}
# Keystone notifications
{% for host in groups[keystone_oslomsg_notify_host_group] %}
messaging_urls = {{ keystone_oslomsg_notify_transport }}://{{ keystone_oslomsg_notify_userid }}:{{ keystone_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ keystone_oslomsg_notify_port }}/{{ keystone_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(keystone_oslomsg_notify_transport, keystone_oslomsg_notify_userid, keystone_oslomsg_notify_password, groups[keystone_oslomsg_notify_host_group], keystone_oslomsg_notify_port, keystone_oslomsg_notify_vhost, query=(keystone_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if swift_ceilometer_enabled %}
# Ceilometer notifications
{% for host in groups[swift_oslomsg_notify_host_group] %}
messaging_urls = {{ swift_oslomsg_notify_transport }}://{{ swift_oslomsg_notify_userid }}:{{ swift_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ swift_oslomsg_notify_port }}/{{ swift_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(swift_oslomsg_notify_transport, swift_oslomsg_notify_userid, swift_oslomsg_notify_password, groups[swift_oslomsg_notify_host_group], swift_oslomsg_notify_port, swift_oslomsg_notify_vhost, query=(swift_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if sahara_ceilometer_enabled %}
# Sahara notifications
{% for host in groups[sahara_oslomsg_notify_host_group] %}
messaging_urls = {{ sahara_oslomsg_notify_transport }}://{{ sahara_oslomsg_notify_userid }}:{{ sahara_oslomsg_notify_password }}@{{ hostvars[host]['ansible_host'] }}:{{ sahara_oslomsg_notify_port }}/{{ sahara_oslomsg_notify_vhost }}
{% endfor %}
messaging_urls = {{ _oslomsg_url(sahara_oslomsg_notify_transport, sahara_oslomsg_notify_userid, sahara_oslomsg_notify_password, groups[sahara_oslomsg_notify_host_group], sahara_oslomsg_notify_port, sahara_oslomsg_notify_vhost, query=(sahara_oslomsg_notify_use_ssl | bool | ternary('ssl=1', ''))) }}
{% endif %}
{% if ceilometer_gnocchi_enabled | bool %}

View File

@ -26,6 +26,7 @@ ceilometer_devel_distro_packages: []
ceilometer_service_distro_packages:
- ceilometer-agent-central
- ceilometer-agent-compute
- ceilometer-agent-notification
- ceilometer-polling
- python-systemd
- python3-systemd