152 lines
4.4 KiB
YAML
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
|