Files
openstack-ansible-os_cinder/tasks/cinder_install.yml
Dmitriy Rabotyagov 84dda235b1 Add EPEL repo for distro-based installs
python3-cinder is dependent on python3-zstd which
requires to have  libzstd(x86-64) >= 1.5.5 present. Older python3-zstd
can be installed from EPEL, but this needs EPEL repo to be present on
the host.

As we are adding code for handling extra repos for Cinder - I made it
more universal, to handle not only EPEL, but any arbitrary repo
in more clear way. This might be helpful as well in case of adding some
3rd party storage requirements.

Change-Id: I3039e84740da9c3684293b8e76792659136abf79
2025-04-28 17:23:06 +00:00

94 lines
3.2 KiB
YAML

---
# Copyright 2014, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Record the installation method
community.general.ini_file:
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
section: "cinder"
option: "install_method"
value: "{{ cinder_install_method }}"
mode: "0644"
- name: Refresh local facts to ensure the cinder section is present
ansible.builtin.setup:
filter: ansible_local
gather_subset: "!all"
- name: Include cinder_install_distro tasks
ansible.builtin.include_tasks: cinder_install_distro.yml
when:
- cinder_extra_repos or cinder_extra_gpg_keys
- name: Install distro packages
ansible.builtin.package:
name: "{{ cinder_package_list }}"
state: "{{ cinder_package_state }}"
update_cache: "{{ (ansible_facts['pkg_mgr'] == 'apt') | ternary('yes', omit) }}"
cache_valid_time: "{{ (ansible_facts['pkg_mgr'] == 'apt') | ternary(cache_timeout, omit) }}"
register: install_packages
until: install_packages is success
retries: 5
delay: 2
notify:
- "Restart cinder services"
- name: Install cinder packages from PIP
ansible.builtin.import_tasks: cinder_install_source.yml
when: cinder_install_method == 'source'
- name: Run the systemd service role
ansible.builtin.import_role:
name: systemd_service
vars:
systemd_user_name: "{{ cinder_system_user_name }}"
systemd_group_name: "{{ cinder_system_group_name }}"
systemd_tempd_prefix: openstack
systemd_slice_name: "{{ cinder_system_slice_name }}"
systemd_lock_dir: "{{ cinder_lock_dir }}"
systemd_service_cpu_accounting: true
systemd_service_block_io_accounting: true
systemd_service_memory_accounting: true
systemd_service_tasks_accounting: true
systemd_services: "{{ filtered_cinder_services }}"
tags:
- cinder-config
- systemd-service
- name: Record local facts for distro path
when: cinder_install_method == 'distro'
block:
- name: Record the osa version deployed
community.general.ini_file:
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
section: cinder
option: venv_tag
value: "{{ cinder_venv_tag }}"
mode: "0644"
- name: Set the upgrade facts
community.general.ini_file:
dest: "/etc/ansible/facts.d/openstack_ansible.fact"
section: cinder
option: "{{ item }}"
value: true
mode: "0644"
with_items:
- "need_online_data_migrations"
- "need_service_restart"
when:
- (install_packages is changed) or
('need_online_data_migrations' not in ansible_local['openstack_ansible']['cinder']) or
('need_service_restart' not in ansible_local['openstack_ansible']['cinder'])