diff --git a/defaults/main.yml b/defaults/main.yml index 3dc04381..22675dda 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -20,7 +20,11 @@ debug: False # for the service setup. The host must already have # clouds.yaml properly configured. ceilometer_service_setup_host: "{{ openstack_service_setup_host | default('localhost') }}" -ceilometer_service_setup_host_python_interpreter: "{{ openstack_service_setup_host_python_interpreter | default((ceilometer_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) }}" +ceilometer_service_setup_host_python_interpreter: >- + {{ + openstack_service_setup_host_python_interpreter | default( + (ceilometer_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) + }} # Set the package install state for distribution packages # Options are 'present' and 'latest' @@ -35,7 +39,8 @@ ceilometer_git_repo: https://opendev.org/openstack/ceilometer ceilometer_git_install_branch: master ## The packages to build from source -ceilometer_upper_constraints_url: "{{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }}" +ceilometer_upper_constraints_url: >- + {{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }} ceilometer_git_constraints: - "--constraint {{ ceilometer_upper_constraints_url }}" @@ -67,7 +72,8 @@ ceilometer_oslomsg_rpc_ssl_ca_file: "{{ oslomsg_rpc_ssl_ca_file | default('') }} # 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_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_port: "{{ oslomsg_notify_port | default('5672') }}" ceilometer_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}" @@ -201,7 +207,7 @@ trove_oslomsg_notify_ssl_ca_file: "{{ oslomsg_rpc_ssl_ca_file | default('') }}" # TODO(ansmith): Change structure when more backends will be supported ceilometer_oslomsg_amqp1_enabled: "{{ ceilometer_oslomsg_rpc_transport == 'amqp' }}" -#Ceilometer services info +# Ceilometer services info ceilometer_role_name: admin ## Service Type and Data @@ -217,7 +223,8 @@ ceilometer_service_in_ldap: "{{ service_ldap_backend_enabled | default(False) }} ## Ceilometer config # Cap the maximum number of threads / workers when a user value is unspecified ceilometer_notification_workers_max: 16 -ceilometer_notification_workers: "{{ [[ansible_facts['processor_vcpus']|default(2) // 2, 1] | max, ceilometer_notification_workers_max] | min }}" +ceilometer_notification_workers: >- + {{ [[ansible_facts['processor_vcpus'] | default(2) // 2, 1] | max, ceilometer_notification_workers_max] | min }} # Enable/Disable Ceilometer per service cinder_ceilometer_enabled: "{{ (groups['cinder_all'] is defined) and (groups['cinder_all'] | length > 0) }}" @@ -294,7 +301,7 @@ ceilometer_required_secrets: - ceilometer_oslomsg_notify_password - ceilometer_service_password -#: Tunable file-based overrides +## Tunable file-based overrides # The contents of these files, if they exist, are read from the # specified path on the deployment host, interpreted by the # template engine and copied to the target host. If they do diff --git a/meta/main.yml b/meta/main.yml index e8a6af28..132a0ae4 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -18,19 +18,21 @@ galaxy_info: description: Installation and setup of ceilometer company: Rackspace license: Apache2 - min_ansible_version: 2.2 + role_name: os_ceilometer + namespace: openstack + min_ansible_version: "2.10" platforms: - name: Debian versions: - - buster + - bullseye - name: Ubuntu versions: - - bionic - focal + - jammy - name: EL versions: - - 8 - categories: + - "9" + galaxy_tags: - cloud - python - ceilometer diff --git a/tasks/ceilometer_db_setup.yml b/tasks/ceilometer_db_setup.yml index 96aa71cb..db805b1b 100644 --- a/tasks/ceilometer_db_setup.yml +++ b/tasks/ceilometer_db_setup.yml @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -- name: check for gnocchi resource file +- name: Check for gnocchi resource file stat: path: "{{ ceilometer_lib_dir }}/ceilometer/publisher/data/gnocchi_resources.yaml" register: gnocchi_resource_file diff --git a/tasks/ceilometer_install.yml b/tasks/ceilometer_install.yml index 3376057b..935bf4ce 100644 --- a/tasks/ceilometer_install.yml +++ b/tasks/ceilometer_install.yml @@ -19,6 +19,7 @@ section: "ceilometer" option: "install_method" value: "{{ ceilometer_install_method }}" + mode: "0644" - name: Refresh local facts to ensure the ceilometer section is present setup: @@ -57,7 +58,12 @@ venv_install_destination_path: "{{ ceilometer_bin | dirname }}" venv_install_distro_package_list: "{{ ceilometer_distro_packages }}" venv_pip_install_args: "{{ ceilometer_pip_install_args }}" - venv_pip_packages: "{{ (ceilometer_oslomsg_amqp1_enabled | bool) | ternary(ceilometer_pip_packages + ceilometer_optional_oslomsg_amqp1_pip_packages + ceilometer_extra_pip_packages | default([]), ceilometer_pip_packages + ceilometer_extra_pip_packages | default([])) }}" + venv_pip_packages: >- + {{ + (ceilometer_oslomsg_amqp1_enabled | bool) | ternary( + ceilometer_pip_packages + ceilometer_optional_oslomsg_amqp1_pip_packages + ceilometer_extra_pip_packages | default([]), + ceilometer_pip_packages + ceilometer_extra_pip_packages | default([])) + }} venv_packages_to_symlink: "{{ ceilometer_packages_to_symlink }}" venv_facts_when_changed: - section: "ceilometer" diff --git a/tasks/ceilometer_post_install.yml b/tasks/ceilometer_post_install.yml index eda34976..f293c096 100644 --- a/tasks/ceilometer_post_install.yml +++ b/tasks/ceilometer_post_install.yml @@ -25,7 +25,7 @@ - name: Copy ceilometer configuration files openstack.config_template.config_template: content: "{{ item.content | default(omit) }}" - src: "{{ item.src | default(omit) }}" + src: "{{ item.src | default(omit) }}" dest: "{{ item.dest }}" owner: "{{ item.owner | default(ceilometer_system_user_name) }}" group: "{{ item.group | default(ceilometer_system_group_name) }}" diff --git a/tasks/ceilometer_pre_install.yml b/tasks/ceilometer_pre_install.yml index 6142f2c7..efbeef15 100644 --- a/tasks/ceilometer_pre_install.yml +++ b/tasks/ceilometer_pre_install.yml @@ -68,8 +68,8 @@ src: "{{ item.src | default(omit) }}" dest: "{{ item.dest | default(omit) }}" state: "{{ item.state | default('directory') }}" - owner: "{{ item.owner|default(ceilometer_system_user_name) }}" - group: "{{ item.group|default(ceilometer_system_group_name) }}" + owner: "{{ item.owner | default(ceilometer_system_user_name) }}" + group: "{{ item.group | default(ceilometer_system_group_name) }}" mode: "{{ item.mode | default(omit) }}" force: "{{ item.force | default(omit) }}" when: diff --git a/tasks/main.yml b/tasks/main.yml index 7446a78b..a6f0a922 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -51,15 +51,18 @@ tags: - always -- import_tasks: ceilometer_pre_install.yml +- name: Importing ceilometer_pre_install tasks + import_tasks: ceilometer_pre_install.yml tags: - ceilometer-install -- import_tasks: ceilometer_install.yml +- name: Importing ceilometer_install tasks + import_tasks: ceilometer_install.yml tags: - ceilometer-install -- import_tasks: ceilometer_post_install.yml +- name: Importing ceilometer_post_install tasks + import_tasks: ceilometer_post_install.yml tags: - ceilometer-config @@ -72,10 +75,10 @@ systemd_tempd_prefix: openstack systemd_slice_name: ceilometer systemd_lock_path: /var/lock/ceilometer - systemd_CPUAccounting: true - systemd_BlockIOAccounting: true - systemd_MemoryAccounting: true - systemd_TasksAccounting: true + systemd_service_cpu_accounting: true + systemd_service_block_io_accounting: true + systemd_service_memory_accounting: true + systemd_service_tasks_accounting: true systemd_services: |- {% set services = [] %} {% for service in ceilometer_services.values() %} @@ -95,7 +98,8 @@ - ceilometer-config - systemd-service -- include_role: +- name: Including osa.service_setup role + include_role: name: openstack.osa.service_setup apply: tags: @@ -117,7 +121,8 @@ tags: - always -- include_role: +- name: Including osa.mq_setup role + include_role: name: openstack.osa.mq_setup apply: tags: @@ -139,7 +144,8 @@ tags: - always -- import_tasks: ceilometer_db_setup.yml +- name: Importing ceilometer_db_setup tasks + import_tasks: ceilometer_db_setup.yml when: - _ceilometer_is_first_play_host tags: diff --git a/vars/distro_install.yml b/vars/distro_install.yml index af1359be..af225c7d 100644 --- a/vars/distro_install.yml +++ b/vars/distro_install.yml @@ -14,7 +14,7 @@ # limitations under the License. ceilometer_package_list: |- - {% set packages = (ceilometer_distro_packages + ceilometer_service_distro_packages) %} + {% set packages = ceilometer_distro_packages + ceilometer_service_distro_packages %} {% if ceilometer_oslomsg_amqp1_enabled | bool %} {% set _ = packages.extend(ceilometer_oslomsg_amqp1_distro_packages) %} {% endif %} diff --git a/vars/main.yml b/vars/main.yml index cd3f1efe..aed62b2c 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -32,7 +32,12 @@ _ceilometer_polling_namespaces: | {% endif %} {{ _polling_namespaces }} -_ceilometer_is_first_play_host: "{{ (ceilometer_services['ceilometer-agent-notification']['group'] | intersect(group_names) | length > 0) and (inventory_hostname == groups[ceilometer_services['ceilometer-agent-notification']['group'] | intersect(group_names) | first] | intersect(ansible_play_hosts) | first) }}" +_ceilometer_is_first_play_host: >- + {{ + (ceilometer_services['ceilometer-agent-notification']['group'] | intersect(group_names) | length > 0) and + (inventory_hostname == groups[ceilometer_services['ceilometer-agent-notification']['group'] | intersect(group_names) | first] | intersect( + ansible_play_hosts) | first) + }} _ceilometer_rootwrap_conf_overrides: DEFAULT: @@ -41,96 +46,96 @@ _ceilometer_rootwrap_conf_overrides: _ceilometer_pipeline_yaml_overrides: sources: - - name: meter_source - interval: "{{ ceilometer_meter_sample_interval }}" - meters: - - "*" - sinks: - - meter_sink - - name: cpu_source - interval: "{{ ceilometer_cpu_source_sample_interval }}" - meters: - - "cpu" - sinks: - - cpu_sink - - cpu_delta_sink - - name: disk_source - interval: "{{ ceilometer_disk_source_sample_interval }}" - meters: - - "disk.read.bytes" - - "disk.read.requests" - - "disk.write.bytes" - - "disk.write.requests" - - "disk.device.read.bytes" - - "disk.device.read.requests" - - "disk.device.write.bytes" - - "disk.device.write.requests" - sinks: - - disk_sink - - name: network_source - interval: "{{ ceilometer_network_source_sample_interval }}" - meters: - - "network.incoming.bytes" - - "network.incoming.packets" - - "network.outgoing.bytes" - - "network.outgoing.packets" - sinks: - - network_sink + - name: meter_source + interval: "{{ ceilometer_meter_sample_interval }}" + meters: + - "*" + sinks: + - meter_sink + - name: cpu_source + interval: "{{ ceilometer_cpu_source_sample_interval }}" + meters: + - "cpu" + sinks: + - cpu_sink + - cpu_delta_sink + - name: disk_source + interval: "{{ ceilometer_disk_source_sample_interval }}" + meters: + - "disk.read.bytes" + - "disk.read.requests" + - "disk.write.bytes" + - "disk.write.requests" + - "disk.device.read.bytes" + - "disk.device.read.requests" + - "disk.device.write.bytes" + - "disk.device.write.requests" + sinks: + - disk_sink + - name: network_source + interval: "{{ ceilometer_network_source_sample_interval }}" + meters: + - "network.incoming.bytes" + - "network.incoming.packets" + - "network.outgoing.bytes" + - "network.outgoing.packets" + sinks: + - network_sink sinks: - - name: meter_sink - transformers: - publishers: - - gnocchi:// - - name: cpu_sink - transformers: - - name: "rate_of_change" - parameters: - target: - name: "cpu_util" - unit: "%" - type: "gauge" - scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" - publishers: - - gnocchi:// - - name: cpu_delta_sink - transformers: - - name: "delta" - parameters: - target: - name: "cpu.delta" - growth_only: True - publishers: - - gnocchi:// - - name: disk_sink - transformers: - - name: "rate_of_change" - parameters: - source: - map_from: - name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)" - unit: "(B|request)" - target: - map_to: - name: "\\1.\\2.\\3.rate" - unit: "\\1/s" - type: "gauge" - publishers: - - gnocchi:// - - name: network_sink - transformers: - - name: "rate_of_change" - parameters: - source: - map_from: - name: "network\\.(incoming|outgoing)\\.(bytes|packets)" - unit: "(B|packet)" - target: - map_to: - name: "network.\\1.\\2.rate" - unit: "\\1/s" - type: "gauge" - publishers: - - gnocchi:// + - name: meter_sink + transformers: + publishers: + - gnocchi:// + - name: cpu_sink + transformers: + - name: "rate_of_change" + parameters: + target: + name: "cpu_util" + unit: "%" + type: "gauge" + scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" + publishers: + - gnocchi:// + - name: cpu_delta_sink + transformers: + - name: "delta" + parameters: + target: + name: "cpu.delta" + growth_only: True + publishers: + - gnocchi:// + - name: disk_sink + transformers: + - name: "rate_of_change" + parameters: + source: + map_from: + name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)" + unit: "(B|request)" + target: + map_to: + name: "\\1.\\2.\\3.rate" + unit: "\\1/s" + type: "gauge" + publishers: + - gnocchi:// + - name: network_sink + transformers: + - name: "rate_of_change" + parameters: + source: + map_from: + name: "network\\.(incoming|outgoing)\\.(bytes|packets)" + unit: "(B|packet)" + target: + map_to: + name: "network.\\1.\\2.rate" + unit: "\\1/s" + type: "gauge" + publishers: + - gnocchi:// ceilometer_core_files: - tmp_f: "/tmp/rootwrap.conf" @@ -142,7 +147,11 @@ ceilometer_core_files: mode: "0640" - tmp_f: "{{ (ceilometer_pipeline_user_content | length > 0) | ternary(false, '/tmp/pipeline.yaml') }}" source_f: "{{ ceilometer_lib_dir }}/ceilometer/pipeline/data/pipeline.yaml" - config_overrides: "{{ (ceilometer_pipeline_user_content | length > 0) | ternary(_ceilometer_pipeline_yaml_overrides | combine(ceilometer_pipeline_yaml_overrides, recursive=True), ceilometer_pipeline_yaml_overrides) }}" + config_overrides: >- + {{ + (ceilometer_pipeline_user_content | length > 0) | ternary( + _ceilometer_pipeline_yaml_overrides | combine(ceilometer_pipeline_yaml_overrides, recursive=True), ceilometer_pipeline_yaml_overrides) + }} config_type: "yaml" list_extend: false content: "{{ ceilometer_pipeline_user_content }}" diff --git a/vars/source_install.yml b/vars/source_install.yml index a1766e0a..1e658720 100644 --- a/vars/source_install.yml +++ b/vars/source_install.yml @@ -14,7 +14,7 @@ # limitations under the License. ceilometer_package_list: |- - {% set packages = (ceilometer_distro_packages) %} + {% set packages = ceilometer_distro_packages %} {% if ceilometer_oslomsg_amqp1_enabled | bool %} {% set _ = packages.extend(ceilometer_oslomsg_amqp1_distro_packages) %} {% endif %}