Execution
Date 15 Dec 2025 10:19:13 +0000
Duration 00:23:12.82
Controller aio1.openstack.local
User root
Versions
Ansible 2.18.6
ara 1.7.4 / 1.7.4
Python 3.12.3
Summary
9 Hosts
618 Tasks
960 Results
108 Plays
456 Files
0 Records

File: /home/zuul/src/opendev.org/openstack/openstack-ansible-ceph_client/tasks/main.yml

---
# Copyright 2015, Serge van Ginderachter <serge@vanginderachter.be>
#
# 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: End playbook if disabled
  ansible.builtin.meta: end_play
  when:
    - ceph_mons | list | length == 0 and ceph_conf_file is not defined
  tags:
    - always

- name: Gather variables for each operating system
  ansible.builtin.include_vars: "{{ lookup('first_found', params) }}"
  vars:
    params:
      files:
        - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower }}.yml"
        - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
        - "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
        - "{{ ansible_facts['distribution'] | lower }}.yml"
        - "{{ ansible_facts['os_family'] | lower }}.yml"
      paths:
        - "{{ role_path }}/vars"
  tags:
    - always

- name: Fail if ceph_pkg_source uses an incorrect parameter
  ansible.builtin.fail:
    msg: "Invalid value for ceph_pkg_source. Valid parameters are ceph, distro."
  when:
    - ceph_pkg_source not in ['ceph', 'distro']

- name: Including ceph_preinstall tasks
  ansible.builtin.include_tasks: "ceph_preinstall_{{ ansible_facts['pkg_mgr'] }}.yml"
  args:
    apply:
      tags:
        - ceph-install
  tags:
    - ceph-install

- name: Including ceph_install tasks
  ansible.builtin.include_tasks: ceph_install.yml
  args:
    apply:
      tags:
        - ceph-install
  tags:
    - ceph-install

- name: Including ceph_install_python_libs tasks
  ansible.builtin.include_tasks: ceph_install_python_libs.yml
  when:
    - openstack_service_venv_bin | length > 0
  args:
    apply:
      tags:
        - ceph-install
  tags:
    - ceph-install

- name: Including ceph_get_mon_host tasks
  ansible.builtin.include_tasks: ceph_get_mon_host.yml
  when: ceph_conf_file is not defined or ceph_keyrings_dir is not defined
  args:
    apply:
      tags:
        - ceph-config
  tags:
    - ceph-config

- name: Including ceph_config tasks
  ansible.builtin.include_tasks: ceph_config.yml
  args:
    apply:
      tags:
        - ceph-config
  tags:
    - ceph-config

- name: Including ceph_auth tasks
  ansible.builtin.include_tasks: ceph_auth.yml
  when:
    - cephx | bool
  args:
    apply:
      tags:
        - ceph-config
  tags:
    - ceph-config

- name: Including ceph_immutable_object_cache tasks
  ansible.builtin.include_tasks: ceph_immutable_object_cache.yml
  when:
    - ceph_immutable_object_cache_enabled | bool
  args:
    apply:
      tags:
        - ceph-config
  tags:
    - ceph-config

- name: Write AppArmor configuration for ceph immutable object caching
  ansible.builtin.blockinfile:
    create: true
    mode: "0644"
    path: /etc/apparmor.d/local/abstractions/libvirt-qemu
    marker: "### {mark} OSA CEPH_CLIENT IMMUTABLE OBJECT CACHE BLOCK ###"
    block: |
      {{ ceph_immutable_object_cache_dir }}/** r,
      {{ ceph_immutable_object_cache_socket }} rw,
    state: "{{ ceph_immutable_object_cache_enabled | bool | ternary('present', 'absent') }}"
  when:
    - ansible_facts['os_family'] == "Debian"
    - "'nova_compute' in group_names"
  tags:
    - ceph-config

- name: Set permissions on persistent write log cache directory
  ansible.builtin.file:
    path: "{{ ceph_persistent_write_log_cache_dir }}"
    owner: "{{ ceph_persistent_write_log_cache_owner }}"
    group: "{{ ceph_persistent_write_log_cache_group }}"
    mode: "{{ ceph_persistent_write_log_cache_mode }}"
  when: ceph_persistent_write_log_cache_enabled | bool
  tags:
    - ceph-config

- name: Write AppArmor configuration for ceph write log caching
  ansible.builtin.blockinfile:
    create: true
    mode: "0644"
    path: /etc/apparmor.d/local/abstractions/libvirt-qemu
    marker: "### {mark} OSA CEPH_CLIENT WRITE LOG CACHE BLOCK ###"
    block: |
      {{ ceph_persistent_write_log_cache_dir }}/** rwk,
    state: "{{ ceph_persistent_write_log_cache_enabled | bool | ternary('present', 'absent') }}"
  when:
    - ansible_facts['os_family'] == "Debian"
    - "'nova_compute' in group_names"
  tags:
    - ceph-config