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: pacific
ceph_apt_pinned_packages: [{ package: "*", release: "ceph.com",  priority: 1001 }]

# Ceph Authentication
cephx: true

# Ceph Monitors
# A list of the IP addresses for your Ceph monitors
ceph_mons: []

# 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 and gnocchi
glance_ceph_client: glance
cinder_ceph_client: cinder
manila_ceph_client: manila
cinder_backup_ceph_client: cinder-backup
gnocchi_ceph_client: gnocchi

# 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({}) }}"

Required variables

None.

Dependencies

None.

Example playbook

- name: Install Ceph client
  hosts: all
  user: root
  roles:
    - role: "ceph_client"