2014-03-04 02:08:51 +08:00
---
# Variables here are applicable to all host groups NOT roles
2016-02-29 23:35:07 +08:00
# This sample file generated by generate_group_vars_sample.sh
# Dummy variable to avoid error because ansible does not recognize the
# file as a good configuration file when no variable in it.
2014-06-25 23:03:29 +08:00
dummy:
2015-08-27 18:42:01 +08:00
###########
# GENERAL #
###########
2016-02-25 19:10:45 +08:00
# Even though OSD nodes should not have the admin key
# at their disposal, some people might want to have it
# distributed on OSD nodes. Setting 'copy_admin_key' to 'true'
# will copy the admin key to the /etc/ceph/ directory
#copy_admin_key: false
2016-10-06 17:54:58 +08:00
2015-01-09 01:27:43 +08:00
##############
# CEPH OPTIONS
##############
2015-01-07 05:47:49 +08:00
2014-03-04 02:08:51 +08:00
# Devices to be used as OSDs
2014-03-06 18:12:25 +08:00
# You can pre-provision disks that are not present yet.
# Ansible will just skip them. Newly added disk will be
# automatically configured during the next run.
#
2014-03-04 02:08:51 +08:00
2014-03-07 21:04:25 +08:00
2016-10-06 17:54:58 +08:00
# Declare devices to be used as OSDs
# All scenario(except 3rd) inherit from the following device declaration
2019-08-21 17:10:29 +08:00
# Note: This scenario uses the ceph-volume lvm batch method to provision OSDs
2014-03-07 21:04:25 +08:00
2015-01-07 05:47:49 +08:00
#devices:
# - /dev/sdb
# - /dev/sdc
2016-10-06 17:54:58 +08:00
# - /dev/sdd
# - /dev/sde
2015-01-07 05:47:49 +08:00
2016-10-10 21:16:03 +08:00
#devices: []
2019-08-20 21:57:45 +08:00
# Declare devices to be used as block.db devices
#dedicated_devices:
2019-08-23 15:02:12 +08:00
# - /dev/sdx
# - /dev/sdy
2019-08-20 21:57:45 +08:00
#dedicated_devices: []
2016-10-06 17:54:58 +08:00
2019-08-23 15:02:12 +08:00
# Declare devices to be used as block.wal devices
#bluestore_wal_devices:
# - /dev/nvme0n1
# - /dev/nvme0n2
#bluestore_wal_devices: []
2016-10-06 17:54:58 +08:00
#'osd_auto_discovery' mode prevents you from filling out the 'devices' variable above.
2015-01-07 05:47:49 +08:00
# Device discovery is based on the Ansible fact 'ansible_devices'
2019-08-21 17:10:29 +08:00
# which reports all the devices on a system. If chosen, all the disks
# found will be passed to ceph-volume lvm batch. You should not be worried on using
# this option since ceph-volume has a built-in check which looks for empty devices.
2015-01-07 05:47:49 +08:00
# Thus devices with existing partition tables will not be used.
#
#osd_auto_discovery: false
2014-03-07 21:04:25 +08:00
2017-07-27 23:05:59 +08:00
# Encrypt your OSD device using dmcrypt
2019-04-11 16:01:15 +08:00
# If set to True, no matter which osd_objecstore you use the data will be encrypted
2018-08-28 04:58:20 +08:00
#dmcrypt: False
2016-10-06 17:54:58 +08:00
2019-04-11 16:01:15 +08:00
# Use ceph-volume to create OSDs from logical volumes.
2017-10-24 23:18:19 +08:00
# lvm_volumes is a list of dictionaries.
#
# Filestore: Each dictionary must contain a data, journal and vg_name key. Any
# logical volume or logical group used must be a name and not a path. data
2017-11-15 03:19:03 +08:00
# can be a logical volume, device or partition. journal can be either a lv or partition.
2017-10-24 23:18:19 +08:00
# You can not use the same journal for many data lvs.
2017-11-15 03:19:03 +08:00
# data_vg must be the volume group name of the data lv, only applicable when data is an lv.
2017-10-24 23:18:19 +08:00
# journal_vg is optional and must be the volume group name of the journal lv, if applicable.
2017-07-26 23:28:53 +08:00
# For example:
# lvm_volumes:
2017-08-24 19:40:36 +08:00
# - data: data-lv1
# data_vg: vg1
# journal: journal-lv1
# journal_vg: vg2
2018-01-30 21:41:52 +08:00
# crush_device_class: foo
2017-08-24 19:40:36 +08:00
# - data: data-lv2
2017-11-15 03:19:03 +08:00
# journal: /dev/sda1
2017-08-24 19:40:36 +08:00
# data_vg: vg1
# - data: data-lv3
# journal: /dev/sdb1
# data_vg: vg2
2017-11-15 03:19:03 +08:00
# - data: /dev/sda
# journal: /dev/sdb1
# - data: /dev/sda1
# journal: /dev/sdb1
2017-10-24 23:18:19 +08:00
#
# Bluestore: Each dictionary must contain at least data. When defining wal or
# db, it must have both the lv name and vg group (db and wal are not required).
# This allows for four combinations: just data, data and wal, data and wal and
# db, data and db.
# For example:
# lvm_volumes:
# - data: data-lv1
# data_vg: vg1
# wal: wal-lv1
# wal_vg: vg1
2018-01-30 21:41:52 +08:00
# crush_device_class: foo
2017-10-24 23:18:19 +08:00
# - data: data-lv2
# db: db-lv2
# db_vg: vg2
# - data: data-lv3
# wal: wal-lv1
# wal_vg: vg3
# db: db-lv3
# db_vg: vg3
# - data: data-lv4
# data_vg: vg4
2017-11-15 03:19:03 +08:00
# - data: /dev/sda
# - data: /dev/sdb1
2017-10-24 23:18:19 +08:00
2017-08-24 19:40:36 +08:00
#lvm_volumes: []
2018-08-08 00:52:13 +08:00
#crush_device_class: ""
2018-09-07 03:00:56 +08:00
#osds_per_device: 1
2017-07-26 23:28:53 +08:00
2020-02-11 02:43:31 +08:00
###############
# CRUSH RULES #
###############
#crush_rule_config: false
#crush_rule_hdd:
# name: HDD
# root: default
# type: host
# class: hdd
# default: false
#crush_rule_ssd:
# name: SSD
# root: default
# type: host
# class: ssd
# default: false
#crush_rules:
# - "{{ crush_rule_hdd }}"
# - "{{ crush_rule_ssd }}"
# Caution: this will create crush roots and racks according to hostvars {{ osd_crush_location }}
# and will move hosts into them which might lead to significant data movement in the cluster!
#
# In order for the playbook to create CRUSH hierarchy, you have to setup your Ansible inventory file like so:
#
# [osds]
# ceph-osd-01 osd_crush_location="{ 'root': 'mon-roottt', 'rack': 'mon-rackkkk', 'pod': 'monpod', 'host': 'ceph-osd-01' }"
#
# Note that 'host' is mandatory and that you need to submit at least two bucket type (including the host)
#create_crush_tree: false
2016-07-19 23:53:21 +08:00
2015-06-24 21:51:54 +08:00
##########
# DOCKER #
##########
2017-02-18 21:48:18 +08:00
#ceph_config_keys: [] # DON'T TOUCH ME
2017-02-08 05:00:53 +08:00
2017-09-06 16:53:30 +08:00
# Resource limitation
# For the whole list of limits you can apply see: docs.docker.com/engine/admin/resource_constraints
# Default values are based from: https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html/red_hat_ceph_storage_hardware_guide/minimum_recommendations
# These options can be passed using the 'ceph_osd_docker_extra_env' variable.
2021-03-03 22:43:50 +08:00
#ceph_osd_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
2019-04-05 21:45:28 +08:00
#ceph_osd_docker_cpu_limit: 4
2017-09-06 16:53:30 +08:00
2017-12-12 05:17:22 +08:00
# The next two variables are undefined, and thus, unused by default.
# If `lscpu | grep NUMA` returned the following:
# NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16
# NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17
# then, the following would run the OSD on the first NUMA node only.
#ceph_osd_docker_cpuset_cpus: "0,2,4,6,8,10,12,14,16"
#ceph_osd_docker_cpuset_mems: "0"
2017-02-18 21:48:18 +08:00
# PREPARE DEVICE
2017-02-08 05:00:53 +08:00
#
2017-02-18 21:48:18 +08:00
# WARNING /!\ DMCRYPT scenario ONLY works with Docker version 1.12.5 and above
#
2017-08-02 16:35:26 +08:00
#ceph_osd_docker_devices: "{{ devices }}"
2017-07-25 23:54:26 +08:00
#ceph_osd_docker_prepare_env: -e OSD_JOURNAL_SIZE={{ journal_size }}
2017-02-18 21:48:18 +08:00
# ACTIVATE DEVICE
#
2017-07-25 23:54:26 +08:00
#ceph_osd_docker_extra_env:
2019-03-09 16:24:46 +08:00
#ceph_osd_numactl_opts: ""
2017-08-07 17:23:32 +08:00
2017-07-05 21:47:48 +08:00
###########
# SYSTEMD #
###########
2017-07-25 23:54:26 +08:00
2017-07-05 21:47:48 +08:00
# ceph_osd_systemd_overrides will override the systemd settings
# for the ceph-osd services.
# For example,to set "PrivateDevices=false" you can specify:
#ceph_osd_systemd_overrides:
# Service:
# PrivateDevices: False
2019-02-20 23:24:25 +08:00
###########
# CHECK #
###########
#nb_retry_wait_osd_up: 60
#delay_wait_osd_up: 10
2019-08-27 03:35:19 +08:00