openstack-ansible-ceph_client/tasks/main.yml

152 lines
4.4 KiB
YAML

---
# 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
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
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
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
include_tasks: "ceph_preinstall_{{ ansible_facts['pkg_mgr'] }}.yml"
when:
- ceph_pkg_source != 'distro'
args:
apply:
tags:
- ceph-install
tags:
- ceph-install
- name: Including ceph_install tasks
include_tasks: ceph_install.yml
args:
apply:
tags:
- ceph-install
tags:
- ceph-install
- name: Including ceph_install_python_libs tasks
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
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
include_tasks: ceph_config.yml
args:
apply:
tags:
- ceph-config
tags:
- ceph-config
- name: Including ceph_auth tasks
include_tasks: ceph_auth.yml
when:
- cephx | bool
args:
apply:
tags:
- ceph-config
tags:
- ceph-config
- name: Including ceph_immutable_object_cache tasks
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:
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
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:
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