OpenStack-Ansible Ceph client¶
This Ansible role installs the Ceph operating system packages used to interact with a Ceph cluster.
To clone or view the source code for this repository, visit the role repository for ceph_client.
Default variables¶
# Set the package install state for distribution packages
# Options are 'present' and 'latest'
ceph_client_package_state: "{{ package_state | default('latest') }}"
# to use Ceph in OSA, you need to
# - have the needed pools and a client user (for glance, cinder and/or nova)
# pre-provisioned in your ceph cluster; OSA assumes to have root access to
# the monitor hosts
# - configure / overrules following defaults in osa's user config
# - some ceph specific vars are (also) part of other role defaults:
# * glance
# * nova
# - cinder gets configured with ceph if there are cinder backends defined with
# the rbd driver (see openstack_user_config.yml.example)
# The ceph_pkg_source variable controls the install source for the Ceph packages.
# Valid values include:
# * ceph This option installs Ceph from a ceph.com repo. Additional variables to
# adjust items such as Ceph release and regional download mirror can be found
# in vars/*.yml
#
# * distro This options installs Ceph from the operating system's default repository and
# unlike the other options does not attempt to manage package keys or add additional
# package repositories.
ceph_pkg_source: ceph
ceph_stable_release: reef
ceph_apt_pinned_packages: [{package: "*", release: "ceph.com", priority: 1001}]
ceph_repo_url_region: "download" # see here for other mirros http://docs.ceph.com/docs/master/install/mirrors/
ceph_repo_url: https://{{ ceph_repo_url_region }}.ceph.com/{{ _ceph_repo_distro_suffix }}-{{ ceph_stable_release }}
ceph_repos: "{{ _ceph_repos }}"
# Mappings from Ansible reported architecture to distro release architecture
ceph_architecture_mapping:
x86_64: amd64
ppc64le: ppc64el
s390x: s390x
armv7l: armhf
aarch64: arm64
# Ceph Authentication
cephx: true
# Ceph Monitors
# A list of the IP addresses for your Ceph monitors
ceph_mons: []
# Name of ceph cluster that we interact with.
# It would affect config file name and commands issued to the cluster.
ceph_cluster_name: ceph
# Path to local ceph.conf file
# Leave this commented to obtain a ceph.conf from one of the monitors defined in ceph_mons
# ceph_conf_file: |
# [global]
# fsid = 4037aa5f-abde-4378-9470-f73dbd6ceaba
# mon_initial_members = mon1.example.local,mon2.example.local,mon3.example.local
# mon_host = 10.16.5.40,10.16.5.41,10.16.5.42
# auth_cluster_required = cephx
# auth_service_required = cephx
# auth_client_required = cephx
# Path to local keyrings directory
# If you want to provide keyrings from existing files, because you do not have ssh access to the monitors
# set the path to the repository containing the keyrings files.
# ie : ceph_keyrings_dir: /etc/openstack_deploy/ceph-conf
# The filenames inside the keyring directory must be in the structure of client-name.keyring
# ie: /etc/openstack_deploy/ceph-conf
# cinder.keyring
# glance.keyring
# etc..
# ceph_keyrings_dir: "/etc/openstack/ceph-keyrings"
# Ceph client usernames for glance, cinder+nova, gnocchi and object cache
glance_ceph_client: glance
cinder_ceph_client: cinder
manila_ceph_client: manila
cinder_backup_ceph_client: cinder-backup
gnocchi_ceph_client: gnocchi
immutable_object_cache_client: immutable-object-cache
# by default we assume you use rbd for both cinder and nova, and as libvirt
# needs to access both volumes (cinder) as boot disks (nova) we default to
# reuse the cinder_ceph_client
# only need to change this if you'd use ceph for boot disks and not for volumes
nova_ceph_client: '{{ cinder_ceph_client }}'
# overruled in user_secrets:
# nova_ceph_client_uuid:
cephkeys_access_group: ceph
openstack_service_system_user: null
ceph_cinder_service_names:
- cinder-volume
- cinder-backup
ceph_nova_service_names:
- nova-compute
ceph_manila_service_names:
- manila-api
- manila-data
- manila-share
ceph_glance_service_names:
- glance-api
ceph_gnocchi_service_names:
- gnocchi-api
- gnocchi-metricd
ceph_extra_auth_groups: "{{ ceph_extra_config_groups }}"
ceph_extra_config_groups:
- cinder_backup
- cinder_volume
ceph_extra_compute_group: nova_compute
ceph_client_ceph_conf_overrides: "{{ ceph_conf_overrides | default({}) }}"
# CentOS repos
ceph_centos_epel_mirror: "{{ centos_epel_mirror | default('http://download.fedoraproject.org/pub/epel') }}"
ceph_centos_epel_key: >-
{{ centos_epel_key | default('http://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-' ~ ansible_facts['distribution_major_version']) }}
# Immutible object cache - caches a read-only base layer of rbd volumes
ceph_immutable_object_cache_enabled: False
ceph_immutable_object_cache_service_name: "ceph-immutable-object-cache@"
ceph_immutable_object_cache_dir: "/ceph-immutable-object-cache"
ceph_immutable_object_cache_socket: "/run/ceph/immutable_object_cache_sock"
ceph_immutable_object_cache_umask: "0002"
ceph_immutable_object_cache_owner: "ceph"
ceph_immutable_object_cache_group: "libvirt-qemu"
ceph_immutable_object_cache_mode: "0775"
ceph_immutable_object_cache_key_owner: "{{ ceph_immutable_object_cache_owner }}"
ceph_immutable_object_cache_key_group: "{{ ceph_immutable_object_cache_group }}"
ceph_persistent_write_log_cache_enabled: False
ceph_persistent_write_log_cache_dir: "/rbd-write-log-cache"
ceph_persistent_write_log_cache_owner: "libvirt-qemu"
ceph_persistent_write_log_cache_group: "ceph"
ceph_persistent_write_log_cache_mode: "0775"
Required variables¶
None.
Dependencies¶
None.
Example playbook¶
- name: Install Ceph client
hosts: all
user: root
roles:
- role: "ceph_client"