Execution
Date 14 Dec 2025 10:15:01 +0000
Duration 00:06:33.21
Controller aio1.openstack.local
User root
Versions
Ansible 2.18.6
ara 1.7.4 / 1.7.4
Python 3.13.5
Summary
7 Hosts
567 Tasks
554 Results
37 Plays
221 Files
0 Records

File: /etc/ansible/ansible_collections/openstack/osa/playbooks/ceph_pools.yml

---
# Copyright 2024, BBC R&D
#
# 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: Create ceph pools
  hosts: "{{ groups['ceph-mon'][0] | default([]) }}"
  user: root
  gather_facts: false
  vars:
    is_metal: "{{ properties.is_metal|default(false) }}"
  vars_files:
    - "defaults/{{ install_method }}_install.yml"
  pre_tasks:
    - name: Define discovered_interpreter_python
      ansible.builtin.set_fact:
        discovered_interpreter_python: /usr/bin/python3
  roles:
    - role: ceph-defaults
      tags:
        - skip_ansible_lint
  tasks:
    - name: Create openstack pool(s)
      ceph_pool:
        name: "{{ item.name }}"
        cluster: "{{ cluster }}"
        pg_num: "{{ item.pg_num | default(omit) }}"
        pgp_num: "{{ item.pgp_num | default(omit) }}"
        size: "{{ item.size | default(omit) }}"
        min_size: "{{ item.min_size | default(omit) }}"
        pool_type: "{{ item.type | default('replicated') }}"
        rule_name: "{{ item.rule_name | default(omit) }}"
        erasure_profile: "{{ item.erasure_profile | default(omit) }}"
        pg_autoscale_mode: "{{ item.pg_autoscale_mode | default(omit) }}"
        target_size_ratio: "{{ item.target_size_ratio | default(omit) }}"
        application: "{{ item.application | default(omit) }}"
      with_items: "{{ openstack_pools }}"

    - name: Generate keys
      ceph_key:
        name: "{{ item.name }}"
        caps: "{{ item.caps }}"
        secret: "{{ item.key | default('') }}"
        cluster: "{{ cluster }}"
        mode: "{{ item.mode | default(ceph_keyring_permissions) }}"
      with_items: "{{ openstack_keys }}"
      no_log: "{{ no_log_on_ceph_key_tasks }}"

    - name: Get keys from monitors
      ceph_key:
        name: "{{ item.name }}"
        cluster: "{{ cluster }}"
        output_format: plain
        state: info
      register: _osp_keys
      with_items: "{{ openstack_keys }}"
      no_log: "{{ no_log_on_ceph_key_tasks }}"

    - name: Distribute ceph keys to all mons
      ansible.builtin.copy:
        dest: "/etc/ceph/{{ cluster }}.{{ item.0.item.name }}.keyring"
        content: "{{ item.0.stdout + '\n' }}"
        owner: 'ceph'
        group: 'ceph'
        mode: "{{ item.0.item.mode | default(ceph_keyring_permissions) }}"
      with_nested:
        - "{{ _osp_keys.results }}"
        - "{{ groups['ceph-mon'] }}"
      delegate_to: "{{ item.1 }}"
      no_log: "{{ no_log_on_ceph_key_tasks }}"