deep_scrub_choked
This commit is contained in:
@@ -0,0 +1,666 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
######################################
|
||||
# Releases name to number dictionary #
|
||||
######################################
|
||||
ceph_release_num:
|
||||
dumpling: 0.67
|
||||
emperor: 0.72
|
||||
firefly: 0.80
|
||||
giant: 0.87
|
||||
hammer: 0.94
|
||||
infernalis: 9
|
||||
jewel: 10
|
||||
kraken: 11
|
||||
luminous: 12
|
||||
mimic: 13
|
||||
nautilus: 14
|
||||
octopus: 15
|
||||
pacific: 16
|
||||
quincy: 17
|
||||
reef: 18
|
||||
squid: 19
|
||||
dev: 99
|
||||
|
||||
|
||||
# The 'cluster' variable determines the name of the cluster.
|
||||
# Changing the default value to something else means that you will
|
||||
# need to change all the command line calls as well, for example if
|
||||
# your cluster name is 'foo':
|
||||
# "ceph health" will become "ceph --cluster foo health"
|
||||
#
|
||||
# An easier way to handle this is to use the environment variable CEPH_ARGS
|
||||
# So run: "export CEPH_ARGS="--cluster foo"
|
||||
# With that you will be able to run "ceph health" normally
|
||||
cluster: ceph
|
||||
|
||||
# Inventory host group variables
|
||||
mon_group_name: mons
|
||||
osd_group_name: osds
|
||||
#rgw_group_name: rgws
|
||||
#mds_group_name: mdss
|
||||
#nfs_group_name: nfss
|
||||
#rbdmirror_group_name: rbdmirrors
|
||||
#client_group_name: clients
|
||||
mgr_group_name: mgrs
|
||||
#rgwloadbalancer_group_name: rgwloadbalancers
|
||||
#monitoring_group_name: monitoring
|
||||
adopt_label_group_names:
|
||||
- "{{ mon_group_name }}"
|
||||
- "{{ osd_group_name }}"
|
||||
# - "{{ rgw_group_name }}"
|
||||
# - "{{ mds_group_name }}"
|
||||
# - "{{ nfs_group_name }}"
|
||||
# - "{{ rbdmirror_group_name }}"
|
||||
# - "{{ client_group_name }}"
|
||||
- "{{ mgr_group_name }}"
|
||||
# - "{{ rgwloadbalancer_group_name }}"
|
||||
# - "{{ monitoring_group_name }}"
|
||||
|
||||
# If configure_firewall is true, then ansible will try to configure the
|
||||
# appropriate firewalling rules so that Ceph daemons can communicate
|
||||
# with each others.
|
||||
configure_firewall: false
|
||||
|
||||
# Open ports on corresponding nodes if firewall is installed on it
|
||||
#ceph_mon_firewall_zone: public
|
||||
#ceph_mgr_firewall_zone: public
|
||||
#ceph_osd_firewall_zone: public
|
||||
#ceph_rgw_firewall_zone: public
|
||||
#ceph_mds_firewall_zone: public
|
||||
#ceph_nfs_firewall_zone: public
|
||||
#ceph_rbdmirror_firewall_zone: public
|
||||
#ceph_dashboard_firewall_zone: public
|
||||
#ceph_rgwloadbalancer_firewall_zone: public
|
||||
|
||||
# cephadm account for remote connections
|
||||
cephadm_ssh_user: root
|
||||
cephadm_ssh_priv_key_path: "/home/{{ cephadm_ssh_user }}/.ssh/id_rsa"
|
||||
cephadm_ssh_pub_key_path: "{{ cephadm_ssh_priv_key_path }}.pub"
|
||||
cephadm_mgmt_network: "{{ public_network }}"
|
||||
|
||||
############
|
||||
# PACKAGES #
|
||||
############
|
||||
#debian_package_dependencies: []
|
||||
|
||||
#centos_package_dependencies:
|
||||
# - epel-release
|
||||
# - "{{ (ansible_facts['distribution_major_version'] is version('8', '>=')) | ternary('python3-libselinux', 'libselinux-python') }}"
|
||||
|
||||
#redhat_package_dependencies: []
|
||||
|
||||
#suse_package_dependencies: []
|
||||
|
||||
# Whether or not to install the ceph-test package.
|
||||
ceph_test: false
|
||||
|
||||
# Enable the ntp service by default to avoid clock skew on ceph nodes
|
||||
# Disable if an appropriate NTP client is already installed and configured
|
||||
ntp_service_enabled: true
|
||||
|
||||
# Set type of NTP client daemon to use, valid entries are chronyd, ntpd or timesyncd
|
||||
ntp_daemon_type: chronyd
|
||||
|
||||
# This variable determines if ceph packages can be updated. If False, the
|
||||
# package resources will use "state=present". If True, they will use
|
||||
# "state=latest".
|
||||
#upgrade_ceph_packages: false
|
||||
|
||||
#ceph_use_distro_backports: false # DEBIAN ONLY
|
||||
#ceph_directories_mode: "0755"
|
||||
|
||||
###########
|
||||
# INSTALL #
|
||||
###########
|
||||
# ORIGIN SOURCE
|
||||
#
|
||||
# Choose between:
|
||||
# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'dev' or 'obs'
|
||||
# - 'distro' means that no separate repo file will be added
|
||||
# you will get whatever version of Ceph is included in your Linux distro.
|
||||
# 'local' means that the ceph binaries will be copied over from the local machine
|
||||
ceph_origin: repository
|
||||
#valid_ceph_origins:
|
||||
# - repository
|
||||
# - distro
|
||||
# - local
|
||||
|
||||
|
||||
ceph_repository: community
|
||||
#valid_ceph_repository:
|
||||
# - community
|
||||
# - dev
|
||||
# - uca
|
||||
# - custom
|
||||
# - obs
|
||||
|
||||
|
||||
# REPOSITORY: COMMUNITY VERSION
|
||||
#
|
||||
# Enabled when ceph_repository == 'community'
|
||||
#
|
||||
ceph_mirror: https://download.ceph.com
|
||||
ceph_stable_key: https://download.ceph.com/keys/release.asc
|
||||
ceph_stable_release: squid
|
||||
ceph_stable_repo: "{{ ceph_mirror }}/debian-{{ ceph_stable_release }}"
|
||||
|
||||
#nfs_ganesha_stable: true # use stable repos for nfs-ganesha
|
||||
#centos_release_nfs: centos-release-nfs-ganesha4
|
||||
#nfs_ganesha_stable_deb_repo: http://ppa.launchpad.net/nfs-ganesha/nfs-ganesha-4/ubuntu
|
||||
#nfs_ganesha_apt_keyserver: keyserver.ubuntu.com
|
||||
#nfs_ganesha_apt_key_id: EA914D611053D07BD332E18010353E8834DC57CA
|
||||
#libntirpc_stable_deb_repo: http://ppa.launchpad.net/nfs-ganesha/libntirpc-4/ubuntu
|
||||
|
||||
# Use the option below to specify your applicable package tree, eg. when using non-LTS Ubuntu versions
|
||||
# # for a list of available Debian distributions, visit http://download.ceph.com/debian-{{ ceph_stable_release }}/dists/
|
||||
# for more info read: https://github.com/ceph/ceph-ansible/issues/305
|
||||
# ceph_stable_distro_source: "{{ ansible_facts['distribution_release'] }}"
|
||||
|
||||
# REPOSITORY: UBUNTU CLOUD ARCHIVE
|
||||
#
|
||||
# Enabled when ceph_repository == 'uca'
|
||||
#
|
||||
# This allows the install of Ceph from the Ubuntu Cloud Archive. The Ubuntu Cloud Archive
|
||||
# usually has newer Ceph releases than the normal distro repository.
|
||||
#
|
||||
#
|
||||
#ceph_stable_repo_uca: "http://ubuntu-cloud.archive.canonical.com/ubuntu"
|
||||
#ceph_stable_openstack_release_uca: queens
|
||||
#ceph_stable_release_uca: "{{ ansible_facts['distribution_release'] }}-updates/{{ ceph_stable_openstack_release_uca }}"
|
||||
|
||||
# REPOSITORY: openSUSE OBS
|
||||
#
|
||||
# Enabled when ceph_repository == 'obs'
|
||||
#
|
||||
# This allows the install of Ceph from the openSUSE OBS repository. The OBS repository
|
||||
# usually has newer Ceph releases than the normal distro repository.
|
||||
#
|
||||
#
|
||||
#ceph_obs_repo: "https://download.opensuse.org/repositories/filesystems:/ceph:/{{ ceph_stable_release }}/openSUSE_Leap_{{ ansible_facts['distribution_version'] }}/"
|
||||
|
||||
# REPOSITORY: DEV
|
||||
#
|
||||
# Enabled when ceph_repository == 'dev'
|
||||
#
|
||||
#ceph_dev_branch: main # development branch you would like to use e.g: main, wip-hack
|
||||
#ceph_dev_sha1: latest # distinct sha1 to use, defaults to 'latest' (as in latest built)
|
||||
|
||||
#nfs_ganesha_dev: false # use development repos for nfs-ganesha
|
||||
|
||||
# Set this to choose the version of ceph dev libraries used in the nfs-ganesha packages from shaman
|
||||
# flavors so far include: ceph_main, ceph_jewel, ceph_kraken, ceph_luminous
|
||||
#nfs_ganesha_flavor: "ceph_main"
|
||||
|
||||
|
||||
# REPOSITORY: CUSTOM
|
||||
#
|
||||
# Enabled when ceph_repository == 'custom'
|
||||
#
|
||||
# Use a custom repository to install ceph. For RPM, ceph_custom_repo should be
|
||||
# a URL to the .repo file to be installed on the targets. For deb,
|
||||
# ceph_custom_repo should be the URL to the repo base.
|
||||
#
|
||||
# ceph_custom_key: https://server.domain.com/ceph-custom-repo/key.asc
|
||||
#ceph_custom_repo: https://server.domain.com/ceph-custom-repo
|
||||
|
||||
|
||||
# ORIGIN: LOCAL CEPH INSTALLATION
|
||||
#
|
||||
# Enabled when ceph_repository == 'local'
|
||||
#
|
||||
# Path to DESTDIR of the ceph install
|
||||
# ceph_installation_dir: "/path/to/ceph_installation/"
|
||||
# Whether or not to use installer script rundep_installer.sh
|
||||
# This script takes in rundep and installs the packages line by line onto the machine
|
||||
# If this is set to false then it is assumed that the machine ceph is being copied onto will already have
|
||||
# all runtime dependencies installed
|
||||
# use_installer: false
|
||||
# Root directory for ceph-ansible
|
||||
# ansible_dir: "/path/to/ceph-ansible"
|
||||
|
||||
|
||||
######################
|
||||
# CEPH CONFIGURATION #
|
||||
######################
|
||||
|
||||
## Ceph options
|
||||
#
|
||||
# Each cluster requires a unique, consistent filesystem ID. By
|
||||
# default, the playbook generates one for you.
|
||||
# If you want to customize how the fsid is
|
||||
# generated, you may find it useful to disable fsid generation to
|
||||
# avoid cluttering up your ansible repo. If you set `generate_fsid` to
|
||||
# false, you *must* generate `fsid` in another way.
|
||||
# ACTIVATE THE FSID VARIABLE FOR NON-VAGRANT DEPLOYMENT
|
||||
#fsid: "{{ cluster_uuid.stdout }}"
|
||||
generate_fsid: true
|
||||
|
||||
ceph_conf_key_directory: /etc/ceph
|
||||
|
||||
ceph_uid: "{{ '64045' if not containerized_deployment | bool and ansible_facts['os_family'] == 'Debian' else '167' }}"
|
||||
|
||||
# Permissions for keyring files in /etc/ceph
|
||||
ceph_keyring_permissions: '0600'
|
||||
|
||||
#cephx: true
|
||||
|
||||
# Cluster configuration
|
||||
ceph_cluster_conf:
|
||||
global:
|
||||
public_network: "{{ public_network | default(omit) }}"
|
||||
cluster_network: "{{ cluster_network | default(omit) }}"
|
||||
osd_pool_default_crush_rule: "{{ osd_pool_default_crush_rule }}"
|
||||
# ms_bind_ipv6: "{{ (ip_version == 'ipv6') | string }}"
|
||||
ms_bind_ipv4: "{{ (ip_version == 'ipv4') | string }}"
|
||||
osd_crush_chooseleaf_type: "{{ '0' if common_single_host_mode | default(false) else omit }}"
|
||||
|
||||
## Client options
|
||||
#
|
||||
#rbd_cache: "true"
|
||||
#rbd_cache_writethrough_until_flush: "true"
|
||||
#rbd_concurrent_management_ops: 20
|
||||
|
||||
#rbd_client_directories: true # this will create rbd_client_log_path and rbd_client_admin_socket_path directories with proper permissions
|
||||
|
||||
# Permissions for the rbd_client_log_path and
|
||||
# rbd_client_admin_socket_path. Depending on your use case for Ceph
|
||||
# you may want to change these values. The default, which is used if
|
||||
# any of the variables are unset or set to a false value (like `null`
|
||||
# or `false`) is to automatically determine what is appropriate for
|
||||
# the Ceph version with non-OpenStack workloads -- ceph:ceph and 0770
|
||||
# for infernalis releases, and root:root and 1777 for pre-infernalis
|
||||
# releases.
|
||||
#
|
||||
# For other use cases, including running Ceph with OpenStack, you'll
|
||||
# want to set these differently:
|
||||
#
|
||||
# For OpenStack on RHEL, you'll want:
|
||||
# rbd_client_directory_owner: "qemu"
|
||||
# rbd_client_directory_group: "libvirtd" (or "libvirt", depending on your version of libvirt)
|
||||
# rbd_client_directory_mode: "0755"
|
||||
#
|
||||
# For OpenStack on Ubuntu or Debian, set:
|
||||
# rbd_client_directory_owner: "libvirt-qemu"
|
||||
# rbd_client_directory_group: "kvm"
|
||||
# rbd_client_directory_mode: "0755"
|
||||
#
|
||||
# If you set rbd_client_directory_mode, you must use a string (e.g.,
|
||||
# 'rbd_client_directory_mode: "0755"', *not*
|
||||
# 'rbd_client_directory_mode: 0755', or Ansible will complain: mode
|
||||
# must be in octal or symbolic form
|
||||
#rbd_client_directory_owner: ceph
|
||||
#rbd_client_directory_group: ceph
|
||||
#rbd_client_directory_mode: "0755"
|
||||
|
||||
#rbd_client_log_path: /var/log/ceph
|
||||
#rbd_client_log_file: "{{ rbd_client_log_path }}/qemu-guest-$pid.log" # must be writable by QEMU and allowed by SELinux or AppArmor
|
||||
#rbd_client_admin_socket_path: /var/run/ceph # must be writable by QEMU and allowed by SELinux or AppArmor
|
||||
|
||||
## Monitor options
|
||||
# set to either ipv4 or ipv6, whichever your network is using
|
||||
ip_version: ipv4
|
||||
|
||||
mon_host_v1:
|
||||
enabled: true
|
||||
suffix: ':6789'
|
||||
mon_host_v2:
|
||||
suffix: ':3300'
|
||||
|
||||
#enable_ceph_volume_debug: false
|
||||
|
||||
##########
|
||||
# CEPHFS #
|
||||
##########
|
||||
# When pg_autoscale_mode is set to True, you must add the target_size_ratio key with a correct value
|
||||
# `pg_num` and `pgp_num` keys will be ignored, even if specified.
|
||||
# eg:
|
||||
# cephfs_data_pool:
|
||||
# name: "{{ cephfs_data if cephfs_data is defined else 'cephfs_data' }}"
|
||||
# target_size_ratio: 0.2
|
||||
#cephfs: cephfs # name of the ceph filesystem
|
||||
#cephfs_data_pool:
|
||||
# name: "{{ cephfs_data if cephfs_data is defined else 'cephfs_data' }}"
|
||||
#cephfs_metadata_pool:
|
||||
# name: "{{ cephfs_metadata if cephfs_metadata is defined else 'cephfs_metadata' }}"
|
||||
#cephfs_pools:
|
||||
# - "{{ cephfs_data_pool }}"
|
||||
# - "{{ cephfs_metadata_pool }}"
|
||||
|
||||
## OSD options
|
||||
#
|
||||
#lvmetad_disabled: false
|
||||
#is_hci: false
|
||||
#hci_safety_factor: 0.2
|
||||
#non_hci_safety_factor: 0.7
|
||||
#safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
|
||||
#osd_memory_target: 4294967296
|
||||
#journal_size: 5120 # OSD journal size in MB
|
||||
#block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'.
|
||||
public_network: 192.168.1.0/24
|
||||
cluster_network: "{{ public_network | regex_replace(' ', '') }}"
|
||||
#osd_mkfs_type: xfs
|
||||
#osd_mkfs_options_xfs: -f -i size=2048
|
||||
#osd_mount_options_xfs: noatime,largeio,inode64,swalloc
|
||||
osd_objectstore: bluestore
|
||||
|
||||
# Any device containing these patterns in their path will be excluded.
|
||||
#osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*"
|
||||
|
||||
## MDS options
|
||||
#
|
||||
#mds_max_mds: 1
|
||||
|
||||
## Rados Gateway options
|
||||
#
|
||||
#radosgw_frontend_type: beast # For additional frontends see: https://docs.ceph.com/en/latest/radosgw/frontends/
|
||||
|
||||
#radosgw_frontend_port: 8080
|
||||
# The server private key, public certificate and any other CA or intermediate certificates should be in one file, in PEM format.
|
||||
#radosgw_frontend_ssl_certificate: ""
|
||||
#radosgw_frontend_ssl_certificate_data: "" # certificate contents to be written to path defined by radosgw_frontend_ssl_certificate
|
||||
#radosgw_frontend_options: ""
|
||||
#radosgw_thread_pool_size: 512
|
||||
|
||||
|
||||
# You must define either radosgw_interface, radosgw_address.
|
||||
# These variables must be defined at least in all.yml and overrided if needed (inventory host file or group_vars/*.yml).
|
||||
# Eg. If you want to specify for each radosgw node which address the radosgw will bind to you can set it in your **inventory host file** by using 'radosgw_address' variable.
|
||||
# Preference will go to radosgw_address if both radosgw_address and radosgw_interface are defined.
|
||||
#radosgw_interface: interface
|
||||
#radosgw_address: x.x.x.x
|
||||
#radosgw_address_block: subnet
|
||||
#radosgw_keystone_ssl: false # activate this when using keystone PKI keys
|
||||
#radosgw_num_instances: 1
|
||||
#rgw_zone: default # This is used for rgw instance client names.
|
||||
|
||||
|
||||
## Testing mode
|
||||
# enable this mode _only_ when you have a single node
|
||||
# if you don't want it keep the option commented
|
||||
# common_single_host_mode: true
|
||||
|
||||
## Handlers - restarting daemons after a config change
|
||||
# if for whatever reasons the content of your ceph configuration changes
|
||||
# ceph daemons will be restarted as well. At the moment, we can not detect
|
||||
# which config option changed so all the daemons will be restarted. Although
|
||||
# this restart will be serialized for each node, in between a health check
|
||||
# will be performed so we make sure we don't move to the next node until
|
||||
# ceph is not healthy
|
||||
# Obviously between the checks (for monitors to be in quorum and for osd's pgs
|
||||
# to be clean) we have to wait. These retries and delays can be configurable
|
||||
# for both monitors and osds.
|
||||
#
|
||||
# Monitor handler checks
|
||||
#handler_health_mon_check_retries: 10
|
||||
#handler_health_mon_check_delay: 20
|
||||
#
|
||||
# OSD handler checks
|
||||
#handler_health_osd_check_retries: 40
|
||||
#handler_health_osd_check_delay: 30
|
||||
#handler_health_osd_check: true
|
||||
#
|
||||
# MDS handler checks
|
||||
#handler_health_mds_check_retries: 5
|
||||
#handler_health_mds_check_delay: 10
|
||||
#
|
||||
# RGW handler checks
|
||||
#handler_health_rgw_check_retries: 5
|
||||
#handler_health_rgw_check_delay: 10
|
||||
#handler_rgw_use_haproxy_maintenance: false
|
||||
|
||||
# NFS handler checks
|
||||
#handler_health_nfs_check_retries: 5
|
||||
#handler_health_nfs_check_delay: 10
|
||||
|
||||
# RBD MIRROR handler checks
|
||||
#handler_health_rbd_mirror_check_retries: 5
|
||||
#handler_health_rbd_mirror_check_delay: 10
|
||||
|
||||
# MGR handler checks
|
||||
#handler_health_mgr_check_retries: 5
|
||||
#handler_health_mgr_check_delay: 10
|
||||
|
||||
## health mon/osds check retries/delay:
|
||||
|
||||
#health_mon_check_retries: 20
|
||||
#health_mon_check_delay: 10
|
||||
#health_osd_check_retries: 20
|
||||
#health_osd_check_delay: 10
|
||||
|
||||
##############
|
||||
# RBD-MIRROR #
|
||||
##############
|
||||
|
||||
#ceph_rbd_mirror_pool: "rbd"
|
||||
|
||||
###############
|
||||
# NFS-GANESHA #
|
||||
###############
|
||||
#
|
||||
# Access type options
|
||||
#
|
||||
# Enable NFS File access
|
||||
# If set to true, then ganesha is set up to export the root of the
|
||||
# Ceph filesystem, and ganesha's attribute and directory caching is disabled
|
||||
# as much as possible since libcephfs clients also caches the same
|
||||
# information.
|
||||
#
|
||||
# Set this to true to enable File access via NFS. Requires an MDS role.
|
||||
#nfs_file_gw: false
|
||||
# Set this to true to enable Object access via NFS. Requires an RGW role.
|
||||
#nfs_obj_gw: "{{ False if groups.get(mon_group_name, []) | length == 0 else True }}"
|
||||
|
||||
|
||||
###################
|
||||
# CONFIG OVERRIDE #
|
||||
###################
|
||||
|
||||
# Ceph configuration file override.
|
||||
# This allows you to specify more configuration options
|
||||
# using an INI style format.
|
||||
#
|
||||
# When configuring RGWs, make sure you use the form [client.rgw.*]
|
||||
# instead of [client.radosgw.*].
|
||||
# For more examples check the profiles directory of https://github.com/ceph/ceph-ansible.
|
||||
#
|
||||
# The following sections are supported: [global], [mon], [osd], [mds], [client]
|
||||
#
|
||||
# Example:
|
||||
# ceph_conf_overrides:
|
||||
# global:
|
||||
# foo: 1234
|
||||
# bar: 5678
|
||||
# "client.rgw.{{ rgw_zone }}.{{ hostvars[groups.get(rgw_group_name)[0]]['ansible_facts']['hostname'] }}":
|
||||
# rgw_zone: zone1
|
||||
#
|
||||
#ceph_conf_overrides: {}
|
||||
|
||||
|
||||
#############
|
||||
# OS TUNING #
|
||||
#############
|
||||
|
||||
#disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' }}"
|
||||
#os_tuning_params:
|
||||
# - { name: fs.file-max, value: 26234859 }
|
||||
# - { name: vm.zone_reclaim_mode, value: 0 }
|
||||
# - { name: vm.swappiness, value: 10 }
|
||||
# - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" }
|
||||
|
||||
# For Debian & Red Hat/CentOS installs set TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
|
||||
# Set this to a byte value (e.g. 134217728)
|
||||
# A value of 0 will leave the package default.
|
||||
#ceph_tcmalloc_max_total_thread_cache: 134217728
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
#ceph_docker_image: "ceph/ceph"
|
||||
#ceph_docker_image_tag: v19
|
||||
#ceph_docker_registry: quay.io
|
||||
#ceph_docker_registry_auth: false
|
||||
# ceph_docker_registry_username:
|
||||
# ceph_docker_registry_password:
|
||||
# ceph_docker_http_proxy:
|
||||
# ceph_docker_https_proxy:
|
||||
#ceph_docker_no_proxy: "localhost,127.0.0.1"
|
||||
## Client only docker image - defaults to {{ ceph_docker_image }}
|
||||
#ceph_client_docker_image: "{{ ceph_docker_image }}"
|
||||
#ceph_client_docker_image_tag: "{{ ceph_docker_image_tag }}"
|
||||
#ceph_client_docker_registry: "{{ ceph_docker_registry }}"
|
||||
containerized_deployment: false
|
||||
#container_binary:
|
||||
#timeout_command: "{{ 'timeout --foreground -s KILL ' ~ docker_pull_timeout if (docker_pull_timeout != '0') and (ceph_docker_dev_image is undefined or not ceph_docker_dev_image) else '' }}"
|
||||
#ceph_common_container_params:
|
||||
# envs:
|
||||
# NODE_NAME: "{{ ansible_facts['hostname'] }}"
|
||||
# CONTAINER_IMAGE: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
|
||||
# TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES: "{{ ceph_tcmalloc_max_total_thread_cache }}"
|
||||
# args:
|
||||
# - --setuser=ceph
|
||||
# - --setgroup=ceph
|
||||
# - --default-log-to-file=false
|
||||
# - --default-log-to-stderr=true
|
||||
# - --default-log-stderr-prefix="debug "
|
||||
# volumes:
|
||||
# - /var/lib/ceph/crash:/var/lib/ceph/crash:z
|
||||
# - /var/run/ceph:/var/run/ceph:z
|
||||
# - /var/log/ceph:/var/log/ceph:z
|
||||
# - /etc/ceph:/etc/ceph:z
|
||||
# - /etc/localtime:/etc/localtime:ro
|
||||
|
||||
# this is only here for usage with the rolling_update.yml playbook
|
||||
# do not ever change this here
|
||||
#rolling_update: false
|
||||
|
||||
#####################
|
||||
# Docker pull retry #
|
||||
#####################
|
||||
#docker_pull_retry: 3
|
||||
#docker_pull_timeout: "300s"
|
||||
|
||||
|
||||
#############
|
||||
# DASHBOARD #
|
||||
#############
|
||||
dashboard_enabled: false
|
||||
# Choose http or https
|
||||
# For https, you should set dashboard.crt/key and grafana.crt/key
|
||||
# If you define the dashboard_crt and dashboard_key variables, but leave them as '',
|
||||
# then we will autogenerate a cert and keyfile
|
||||
#dashboard_protocol: https
|
||||
#dashboard_port: 8443
|
||||
# set this variable to the network you want the dashboard to listen on. (Default to public_network)
|
||||
#dashboard_network: "{{ public_network }}"
|
||||
#dashboard_admin_user: admin
|
||||
#dashboard_admin_user_ro: false
|
||||
# This variable must be set with a strong custom password when dashboard_enabled is True
|
||||
# dashboard_admin_password: p@ssw0rd
|
||||
# We only need this for SSL (https) connections
|
||||
#dashboard_crt: ''
|
||||
#dashboard_key: ''
|
||||
#dashboard_certificate_cn: ceph-dashboard
|
||||
#dashboard_tls_external: false
|
||||
#dashboard_grafana_api_no_ssl_verify: "{{ true if dashboard_protocol == 'https' and not grafana_crt and not grafana_key else false }}"
|
||||
#dashboard_rgw_api_user_id: ceph-dashboard
|
||||
#dashboard_rgw_api_admin_resource: ''
|
||||
#dashboard_rgw_api_no_ssl_verify: false
|
||||
#dashboard_frontend_vip: ''
|
||||
#dashboard_disabled_features: []
|
||||
#prometheus_frontend_vip: ''
|
||||
#alertmanager_frontend_vip: ''
|
||||
#node_exporter_container_image: "docker.io/prom/node-exporter:v0.17.0"
|
||||
#node_exporter_port: 9100
|
||||
#grafana_admin_user: admin
|
||||
# This variable must be set with a strong custom password when dashboard_enabled is True
|
||||
# grafana_admin_password: admin
|
||||
# We only need this for SSL (https) connections
|
||||
#grafana_crt: ''
|
||||
#grafana_key: ''
|
||||
# When using https, please fill with a hostname for which grafana_crt is valid.
|
||||
#grafana_server_fqdn: ''
|
||||
#grafana_container_image: "docker.io/grafana/grafana:6.7.4"
|
||||
#grafana_container_cpu_period: 100000
|
||||
#grafana_container_cpu_cores: 2
|
||||
# container_memory is in GB
|
||||
#grafana_container_memory: 4
|
||||
#grafana_uid: 472
|
||||
#grafana_datasource: Dashboard
|
||||
#grafana_dashboards_path: "/etc/grafana/dashboards/ceph-dashboard"
|
||||
#grafana_dashboard_version: main
|
||||
#grafana_dashboard_files:
|
||||
# - ceph-cluster.json
|
||||
# - cephfs-overview.json
|
||||
# - host-details.json
|
||||
# - hosts-overview.json
|
||||
# - osd-device-details.json
|
||||
# - osds-overview.json
|
||||
# - pool-detail.json
|
||||
# - pool-overview.json
|
||||
# - radosgw-detail.json
|
||||
# - radosgw-overview.json
|
||||
# - radosgw-sync-overview.json
|
||||
# - rbd-details.json
|
||||
# - rbd-overview.json
|
||||
#grafana_plugins:
|
||||
# - vonage-status-panel
|
||||
# - grafana-piechart-panel
|
||||
#grafana_allow_embedding: true
|
||||
#grafana_port: 3000
|
||||
#grafana_network: "{{ public_network }}"
|
||||
#grafana_conf_overrides: {}
|
||||
#prometheus_container_image: "docker.io/prom/prometheus:v2.7.2"
|
||||
#prometheus_container_cpu_period: 100000
|
||||
#prometheus_container_cpu_cores: 2
|
||||
# container_memory is in GB
|
||||
#prometheus_container_memory: 4
|
||||
#prometheus_data_dir: /var/lib/prometheus
|
||||
#prometheus_conf_dir: /etc/prometheus
|
||||
#prometheus_user_id: '65534' # This is the UID used by the prom/prometheus container image
|
||||
#prometheus_port: 9092
|
||||
#prometheus_conf_overrides: {}
|
||||
# Uncomment out this variable if you need to customize the retention period for prometheus storage.
|
||||
# set it to '30d' if you want to retain 30 days of data.
|
||||
# prometheus_storage_tsdb_retention_time: 15d
|
||||
#alertmanager_container_image: "docker.io/prom/alertmanager:v0.16.2"
|
||||
#alertmanager_container_cpu_period: 100000
|
||||
#alertmanager_container_cpu_cores: 2
|
||||
# container_memory is in GB
|
||||
#alertmanager_container_memory: 4
|
||||
#alertmanager_data_dir: /var/lib/alertmanager
|
||||
#alertmanager_conf_dir: /etc/alertmanager
|
||||
#alertmanager_port: 9093
|
||||
#alertmanager_cluster_port: 9094
|
||||
#alertmanager_conf_overrides: {}
|
||||
#alertmanager_dashboard_api_no_ssl_verify: "{{ true if dashboard_protocol == 'https' and not dashboard_crt and not dashboard_key else false }}"
|
||||
|
||||
#no_log_on_ceph_key_tasks: true
|
||||
|
||||
###############
|
||||
# DEPRECATION #
|
||||
###############
|
||||
|
||||
|
||||
######################################################
|
||||
# VARIABLES BELOW SHOULD NOT BE MODIFIED BY THE USER #
|
||||
# *DO NOT* MODIFY THEM #
|
||||
######################################################
|
||||
|
||||
#container_exec_cmd:
|
||||
#docker: false
|
||||
#ceph_volume_debug: "{{ enable_ceph_volume_debug | ternary(1, 0) }}"
|
||||
@@ -0,0 +1,667 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
######################################
|
||||
# Releases name to number dictionary #
|
||||
######################################
|
||||
#ceph_release_num:
|
||||
# dumpling: 0.67
|
||||
# emperor: 0.72
|
||||
# firefly: 0.80
|
||||
# giant: 0.87
|
||||
# hammer: 0.94
|
||||
# infernalis: 9
|
||||
# jewel: 10
|
||||
# kraken: 11
|
||||
# luminous: 12
|
||||
# mimic: 13
|
||||
# nautilus: 14
|
||||
# octopus: 15
|
||||
# pacific: 16
|
||||
# quincy: 17
|
||||
# reef: 18
|
||||
# squid: 19
|
||||
# dev: 99
|
||||
|
||||
|
||||
# The 'cluster' variable determines the name of the cluster.
|
||||
# Changing the default value to something else means that you will
|
||||
# need to change all the command line calls as well, for example if
|
||||
# your cluster name is 'foo':
|
||||
# "ceph health" will become "ceph --cluster foo health"
|
||||
#
|
||||
# An easier way to handle this is to use the environment variable CEPH_ARGS
|
||||
# So run: "export CEPH_ARGS="--cluster foo"
|
||||
# With that you will be able to run "ceph health" normally
|
||||
#cluster: ceph
|
||||
|
||||
# Inventory host group variables
|
||||
#mon_group_name: mons
|
||||
#osd_group_name: osds
|
||||
#rgw_group_name: rgws
|
||||
#mds_group_name: mdss
|
||||
#nfs_group_name: nfss
|
||||
#rbdmirror_group_name: rbdmirrors
|
||||
#client_group_name: clients
|
||||
#mgr_group_name: mgrs
|
||||
#rgwloadbalancer_group_name: rgwloadbalancers
|
||||
#monitoring_group_name: monitoring
|
||||
#adopt_label_group_names:
|
||||
# - "{{ mon_group_name }}"
|
||||
# - "{{ osd_group_name }}"
|
||||
# - "{{ rgw_group_name }}"
|
||||
# - "{{ mds_group_name }}"
|
||||
# - "{{ nfs_group_name }}"
|
||||
# - "{{ rbdmirror_group_name }}"
|
||||
# - "{{ client_group_name }}"
|
||||
# - "{{ mgr_group_name }}"
|
||||
# - "{{ rgwloadbalancer_group_name }}"
|
||||
# - "{{ monitoring_group_name }}"
|
||||
|
||||
# If configure_firewall is true, then ansible will try to configure the
|
||||
# appropriate firewalling rules so that Ceph daemons can communicate
|
||||
# with each others.
|
||||
#configure_firewall: true
|
||||
|
||||
# Open ports on corresponding nodes if firewall is installed on it
|
||||
#ceph_mon_firewall_zone: public
|
||||
#ceph_mgr_firewall_zone: public
|
||||
#ceph_osd_firewall_zone: public
|
||||
#ceph_rgw_firewall_zone: public
|
||||
#ceph_mds_firewall_zone: public
|
||||
#ceph_nfs_firewall_zone: public
|
||||
#ceph_rbdmirror_firewall_zone: public
|
||||
#ceph_dashboard_firewall_zone: public
|
||||
#ceph_rgwloadbalancer_firewall_zone: public
|
||||
|
||||
# cephadm account for remote connections
|
||||
#cephadm_ssh_user: root
|
||||
#cephadm_ssh_priv_key_path: "/home/{{ cephadm_ssh_user }}/.ssh/id_rsa"
|
||||
#cephadm_ssh_pub_key_path: "{{ cephadm_ssh_priv_key_path }}.pub"
|
||||
#cephadm_mgmt_network: "{{ public_network }}"
|
||||
|
||||
############
|
||||
# PACKAGES #
|
||||
############
|
||||
#debian_package_dependencies: []
|
||||
|
||||
#centos_package_dependencies:
|
||||
# - epel-release
|
||||
# - "{{ (ansible_facts['distribution_major_version'] is version('8', '>=')) | ternary('python3-libselinux', 'libselinux-python') }}"
|
||||
|
||||
#redhat_package_dependencies: []
|
||||
|
||||
#suse_package_dependencies: []
|
||||
|
||||
# Whether or not to install the ceph-test package.
|
||||
#ceph_test: false
|
||||
|
||||
# Enable the ntp service by default to avoid clock skew on ceph nodes
|
||||
# Disable if an appropriate NTP client is already installed and configured
|
||||
#ntp_service_enabled: true
|
||||
|
||||
# Set type of NTP client daemon to use, valid entries are chronyd, ntpd or timesyncd
|
||||
#ntp_daemon_type: chronyd
|
||||
|
||||
# This variable determines if ceph packages can be updated. If False, the
|
||||
# package resources will use "state=present". If True, they will use
|
||||
# "state=latest".
|
||||
#upgrade_ceph_packages: false
|
||||
|
||||
#ceph_use_distro_backports: false # DEBIAN ONLY
|
||||
#ceph_directories_mode: "0755"
|
||||
|
||||
###########
|
||||
# INSTALL #
|
||||
###########
|
||||
# ORIGIN SOURCE
|
||||
#
|
||||
# Choose between:
|
||||
# - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'dev' or 'obs'
|
||||
# - 'distro' means that no separate repo file will be added
|
||||
# you will get whatever version of Ceph is included in your Linux distro.
|
||||
# 'local' means that the ceph binaries will be copied over from the local machine
|
||||
#ceph_origin: dummy
|
||||
#valid_ceph_origins:
|
||||
# - repository
|
||||
# - distro
|
||||
# - local
|
||||
|
||||
|
||||
#ceph_repository: dummy
|
||||
#valid_ceph_repository:
|
||||
# - community
|
||||
# - dev
|
||||
# - uca
|
||||
# - custom
|
||||
# - obs
|
||||
|
||||
|
||||
# REPOSITORY: COMMUNITY VERSION
|
||||
#
|
||||
# Enabled when ceph_repository == 'community'
|
||||
#
|
||||
#ceph_mirror: https://download.ceph.com
|
||||
#ceph_stable_key: https://download.ceph.com/keys/release.asc
|
||||
#ceph_stable_release: squid
|
||||
#ceph_stable_repo: "{{ ceph_mirror }}/debian-{{ ceph_stable_release }}"
|
||||
|
||||
#nfs_ganesha_stable: true # use stable repos for nfs-ganesha
|
||||
#centos_release_nfs: centos-release-nfs-ganesha4
|
||||
#nfs_ganesha_stable_deb_repo: http://ppa.launchpad.net/nfs-ganesha/nfs-ganesha-4/ubuntu
|
||||
#nfs_ganesha_apt_keyserver: keyserver.ubuntu.com
|
||||
#nfs_ganesha_apt_key_id: EA914D611053D07BD332E18010353E8834DC57CA
|
||||
#libntirpc_stable_deb_repo: http://ppa.launchpad.net/nfs-ganesha/libntirpc-4/ubuntu
|
||||
|
||||
# Use the option below to specify your applicable package tree, eg. when using non-LTS Ubuntu versions
|
||||
# # for a list of available Debian distributions, visit http://download.ceph.com/debian-{{ ceph_stable_release }}/dists/
|
||||
# for more info read: https://github.com/ceph/ceph-ansible/issues/305
|
||||
# ceph_stable_distro_source: "{{ ansible_facts['distribution_release'] }}"
|
||||
|
||||
# REPOSITORY: UBUNTU CLOUD ARCHIVE
|
||||
#
|
||||
# Enabled when ceph_repository == 'uca'
|
||||
#
|
||||
# This allows the install of Ceph from the Ubuntu Cloud Archive. The Ubuntu Cloud Archive
|
||||
# usually has newer Ceph releases than the normal distro repository.
|
||||
#
|
||||
#
|
||||
#ceph_stable_repo_uca: "http://ubuntu-cloud.archive.canonical.com/ubuntu"
|
||||
#ceph_stable_openstack_release_uca: queens
|
||||
#ceph_stable_release_uca: "{{ ansible_facts['distribution_release'] }}-updates/{{ ceph_stable_openstack_release_uca }}"
|
||||
|
||||
# REPOSITORY: openSUSE OBS
|
||||
#
|
||||
# Enabled when ceph_repository == 'obs'
|
||||
#
|
||||
# This allows the install of Ceph from the openSUSE OBS repository. The OBS repository
|
||||
# usually has newer Ceph releases than the normal distro repository.
|
||||
#
|
||||
#
|
||||
#ceph_obs_repo: "https://download.opensuse.org/repositories/filesystems:/ceph:/{{ ceph_stable_release }}/openSUSE_Leap_{{ ansible_facts['distribution_version'] }}/"
|
||||
|
||||
# REPOSITORY: DEV
|
||||
#
|
||||
# Enabled when ceph_repository == 'dev'
|
||||
#
|
||||
#ceph_dev_branch: main # development branch you would like to use e.g: main, wip-hack
|
||||
#ceph_dev_sha1: latest # distinct sha1 to use, defaults to 'latest' (as in latest built)
|
||||
|
||||
#nfs_ganesha_dev: false # use development repos for nfs-ganesha
|
||||
|
||||
# Set this to choose the version of ceph dev libraries used in the nfs-ganesha packages from shaman
|
||||
# flavors so far include: ceph_main, ceph_jewel, ceph_kraken, ceph_luminous
|
||||
#nfs_ganesha_flavor: "ceph_main"
|
||||
|
||||
|
||||
# REPOSITORY: CUSTOM
|
||||
#
|
||||
# Enabled when ceph_repository == 'custom'
|
||||
#
|
||||
# Use a custom repository to install ceph. For RPM, ceph_custom_repo should be
|
||||
# a URL to the .repo file to be installed on the targets. For deb,
|
||||
# ceph_custom_repo should be the URL to the repo base.
|
||||
#
|
||||
# ceph_custom_key: https://server.domain.com/ceph-custom-repo/key.asc
|
||||
#ceph_custom_repo: https://server.domain.com/ceph-custom-repo
|
||||
|
||||
|
||||
# ORIGIN: LOCAL CEPH INSTALLATION
|
||||
#
|
||||
# Enabled when ceph_repository == 'local'
|
||||
#
|
||||
# Path to DESTDIR of the ceph install
|
||||
# ceph_installation_dir: "/path/to/ceph_installation/"
|
||||
# Whether or not to use installer script rundep_installer.sh
|
||||
# This script takes in rundep and installs the packages line by line onto the machine
|
||||
# If this is set to false then it is assumed that the machine ceph is being copied onto will already have
|
||||
# all runtime dependencies installed
|
||||
# use_installer: false
|
||||
# Root directory for ceph-ansible
|
||||
# ansible_dir: "/path/to/ceph-ansible"
|
||||
|
||||
|
||||
######################
|
||||
# CEPH CONFIGURATION #
|
||||
######################
|
||||
|
||||
## Ceph options
|
||||
#
|
||||
# Each cluster requires a unique, consistent filesystem ID. By
|
||||
# default, the playbook generates one for you.
|
||||
# If you want to customize how the fsid is
|
||||
# generated, you may find it useful to disable fsid generation to
|
||||
# avoid cluttering up your ansible repo. If you set `generate_fsid` to
|
||||
# false, you *must* generate `fsid` in another way.
|
||||
# ACTIVATE THE FSID VARIABLE FOR NON-VAGRANT DEPLOYMENT
|
||||
#fsid: "{{ cluster_uuid.stdout }}"
|
||||
#generate_fsid: true
|
||||
|
||||
#ceph_conf_key_directory: /etc/ceph
|
||||
|
||||
#ceph_uid: "{{ '64045' if not containerized_deployment | bool and ansible_facts['os_family'] == 'Debian' else '167' }}"
|
||||
|
||||
# Permissions for keyring files in /etc/ceph
|
||||
#ceph_keyring_permissions: '0600'
|
||||
|
||||
#cephx: true
|
||||
|
||||
# Cluster configuration
|
||||
#ceph_cluster_conf:
|
||||
# global:
|
||||
# public_network: "{{ public_network | default(omit) }}"
|
||||
# cluster_network: "{{ cluster_network | default(omit) }}"
|
||||
# osd_pool_default_crush_rule: "{{ osd_pool_default_crush_rule }}"
|
||||
# ms_bind_ipv6: "{{ (ip_version == 'ipv6') | string }}"
|
||||
# ms_bind_ipv4: "{{ (ip_version == 'ipv4') | string }}"
|
||||
# osd_crush_chooseleaf_type: "{{ '0' if common_single_host_mode | default(false) else omit }}"
|
||||
|
||||
## Client options
|
||||
#
|
||||
#rbd_cache: "true"
|
||||
#rbd_cache_writethrough_until_flush: "true"
|
||||
#rbd_concurrent_management_ops: 20
|
||||
|
||||
#rbd_client_directories: true # this will create rbd_client_log_path and rbd_client_admin_socket_path directories with proper permissions
|
||||
|
||||
# Permissions for the rbd_client_log_path and
|
||||
# rbd_client_admin_socket_path. Depending on your use case for Ceph
|
||||
# you may want to change these values. The default, which is used if
|
||||
# any of the variables are unset or set to a false value (like `null`
|
||||
# or `false`) is to automatically determine what is appropriate for
|
||||
# the Ceph version with non-OpenStack workloads -- ceph:ceph and 0770
|
||||
# for infernalis releases, and root:root and 1777 for pre-infernalis
|
||||
# releases.
|
||||
#
|
||||
# For other use cases, including running Ceph with OpenStack, you'll
|
||||
# want to set these differently:
|
||||
#
|
||||
# For OpenStack on RHEL, you'll want:
|
||||
# rbd_client_directory_owner: "qemu"
|
||||
# rbd_client_directory_group: "libvirtd" (or "libvirt", depending on your version of libvirt)
|
||||
# rbd_client_directory_mode: "0755"
|
||||
#
|
||||
# For OpenStack on Ubuntu or Debian, set:
|
||||
# rbd_client_directory_owner: "libvirt-qemu"
|
||||
# rbd_client_directory_group: "kvm"
|
||||
# rbd_client_directory_mode: "0755"
|
||||
#
|
||||
# If you set rbd_client_directory_mode, you must use a string (e.g.,
|
||||
# 'rbd_client_directory_mode: "0755"', *not*
|
||||
# 'rbd_client_directory_mode: 0755', or Ansible will complain: mode
|
||||
# must be in octal or symbolic form
|
||||
#rbd_client_directory_owner: ceph
|
||||
#rbd_client_directory_group: ceph
|
||||
#rbd_client_directory_mode: "0755"
|
||||
|
||||
#rbd_client_log_path: /var/log/ceph
|
||||
#rbd_client_log_file: "{{ rbd_client_log_path }}/qemu-guest-$pid.log" # must be writable by QEMU and allowed by SELinux or AppArmor
|
||||
#rbd_client_admin_socket_path: /var/run/ceph # must be writable by QEMU and allowed by SELinux or AppArmor
|
||||
|
||||
## Monitor options
|
||||
# set to either ipv4 or ipv6, whichever your network is using
|
||||
#ip_version: ipv4
|
||||
|
||||
#mon_host_v1:
|
||||
# enabled: true
|
||||
# suffix: ':6789'
|
||||
#mon_host_v2:
|
||||
# suffix: ':3300'
|
||||
|
||||
#enable_ceph_volume_debug: false
|
||||
|
||||
##########
|
||||
# CEPHFS #
|
||||
##########
|
||||
# When pg_autoscale_mode is set to True, you must add the target_size_ratio key with a correct value
|
||||
# `pg_num` and `pgp_num` keys will be ignored, even if specified.
|
||||
# eg:
|
||||
# cephfs_data_pool:
|
||||
# name: "{{ cephfs_data if cephfs_data is defined else 'cephfs_data' }}"
|
||||
# target_size_ratio: 0.2
|
||||
#cephfs: cephfs # name of the ceph filesystem
|
||||
#cephfs_data_pool:
|
||||
# name: "{{ cephfs_data if cephfs_data is defined else 'cephfs_data' }}"
|
||||
#cephfs_metadata_pool:
|
||||
# name: "{{ cephfs_metadata if cephfs_metadata is defined else 'cephfs_metadata' }}"
|
||||
#cephfs_pools:
|
||||
# - "{{ cephfs_data_pool }}"
|
||||
# - "{{ cephfs_metadata_pool }}"
|
||||
|
||||
## OSD options
|
||||
#
|
||||
#lvmetad_disabled: false
|
||||
#is_hci: false
|
||||
#hci_safety_factor: 0.2
|
||||
#non_hci_safety_factor: 0.7
|
||||
#safety_factor: "{{ hci_safety_factor if is_hci | bool else non_hci_safety_factor }}"
|
||||
#osd_memory_target: 4294967296
|
||||
#journal_size: 5120 # OSD journal size in MB
|
||||
#block_db_size: -1 # block db size in bytes for the ceph-volume lvm batch. -1 means use the default of 'as big as possible'.
|
||||
#public_network: 0.0.0.0/0
|
||||
#cluster_network: "{{ public_network | regex_replace(' ', '') }}"
|
||||
#osd_mkfs_type: xfs
|
||||
#osd_mkfs_options_xfs: -f -i size=2048
|
||||
#osd_mount_options_xfs: noatime,largeio,inode64,swalloc
|
||||
#osd_objectstore: bluestore
|
||||
|
||||
# Any device containing these patterns in their path will be excluded.
|
||||
#osd_auto_discovery_exclude: "dm-*|loop*|md*|rbd*"
|
||||
|
||||
## MDS options
|
||||
#
|
||||
#mds_max_mds: 1
|
||||
|
||||
## Rados Gateway options
|
||||
#
|
||||
#radosgw_frontend_type: beast # For additional frontends see: https://docs.ceph.com/en/latest/radosgw/frontends/
|
||||
|
||||
#radosgw_frontend_port: 8080
|
||||
# The server private key, public certificate and any other CA or intermediate certificates should be in one file, in PEM format.
|
||||
#radosgw_frontend_ssl_certificate: ""
|
||||
#radosgw_frontend_ssl_certificate_data: "" # certificate contents to be written to path defined by radosgw_frontend_ssl_certificate
|
||||
#radosgw_frontend_options: ""
|
||||
#radosgw_thread_pool_size: 512
|
||||
|
||||
|
||||
# You must define either radosgw_interface, radosgw_address.
|
||||
# These variables must be defined at least in all.yml and overrided if needed (inventory host file or group_vars/*.yml).
|
||||
# Eg. If you want to specify for each radosgw node which address the radosgw will bind to you can set it in your **inventory host file** by using 'radosgw_address' variable.
|
||||
# Preference will go to radosgw_address if both radosgw_address and radosgw_interface are defined.
|
||||
#radosgw_interface: interface
|
||||
#radosgw_address: x.x.x.x
|
||||
#radosgw_address_block: subnet
|
||||
#radosgw_keystone_ssl: false # activate this when using keystone PKI keys
|
||||
#radosgw_num_instances: 1
|
||||
#rgw_zone: default # This is used for rgw instance client names.
|
||||
|
||||
|
||||
## Testing mode
|
||||
# enable this mode _only_ when you have a single node
|
||||
# if you don't want it keep the option commented
|
||||
# common_single_host_mode: true
|
||||
|
||||
## Handlers - restarting daemons after a config change
|
||||
# if for whatever reasons the content of your ceph configuration changes
|
||||
# ceph daemons will be restarted as well. At the moment, we can not detect
|
||||
# which config option changed so all the daemons will be restarted. Although
|
||||
# this restart will be serialized for each node, in between a health check
|
||||
# will be performed so we make sure we don't move to the next node until
|
||||
# ceph is not healthy
|
||||
# Obviously between the checks (for monitors to be in quorum and for osd's pgs
|
||||
# to be clean) we have to wait. These retries and delays can be configurable
|
||||
# for both monitors and osds.
|
||||
#
|
||||
# Monitor handler checks
|
||||
#handler_health_mon_check_retries: 10
|
||||
#handler_health_mon_check_delay: 20
|
||||
#
|
||||
# OSD handler checks
|
||||
#handler_health_osd_check_retries: 40
|
||||
#handler_health_osd_check_delay: 30
|
||||
#handler_health_osd_check: true
|
||||
#
|
||||
# MDS handler checks
|
||||
#handler_health_mds_check_retries: 5
|
||||
#handler_health_mds_check_delay: 10
|
||||
#
|
||||
# RGW handler checks
|
||||
#handler_health_rgw_check_retries: 5
|
||||
#handler_health_rgw_check_delay: 10
|
||||
#handler_rgw_use_haproxy_maintenance: false
|
||||
|
||||
# NFS handler checks
|
||||
#handler_health_nfs_check_retries: 5
|
||||
#handler_health_nfs_check_delay: 10
|
||||
|
||||
# RBD MIRROR handler checks
|
||||
#handler_health_rbd_mirror_check_retries: 5
|
||||
#handler_health_rbd_mirror_check_delay: 10
|
||||
|
||||
# MGR handler checks
|
||||
#handler_health_mgr_check_retries: 5
|
||||
#handler_health_mgr_check_delay: 10
|
||||
|
||||
## health mon/osds check retries/delay:
|
||||
|
||||
#health_mon_check_retries: 20
|
||||
#health_mon_check_delay: 10
|
||||
#health_osd_check_retries: 20
|
||||
#health_osd_check_delay: 10
|
||||
|
||||
##############
|
||||
# RBD-MIRROR #
|
||||
##############
|
||||
|
||||
#ceph_rbd_mirror_pool: "rbd"
|
||||
|
||||
###############
|
||||
# NFS-GANESHA #
|
||||
###############
|
||||
#
|
||||
# Access type options
|
||||
#
|
||||
# Enable NFS File access
|
||||
# If set to true, then ganesha is set up to export the root of the
|
||||
# Ceph filesystem, and ganesha's attribute and directory caching is disabled
|
||||
# as much as possible since libcephfs clients also caches the same
|
||||
# information.
|
||||
#
|
||||
# Set this to true to enable File access via NFS. Requires an MDS role.
|
||||
#nfs_file_gw: false
|
||||
# Set this to true to enable Object access via NFS. Requires an RGW role.
|
||||
#nfs_obj_gw: "{{ False if groups.get(mon_group_name, []) | length == 0 else True }}"
|
||||
|
||||
|
||||
###################
|
||||
# CONFIG OVERRIDE #
|
||||
###################
|
||||
|
||||
# Ceph configuration file override.
|
||||
# This allows you to specify more configuration options
|
||||
# using an INI style format.
|
||||
#
|
||||
# When configuring RGWs, make sure you use the form [client.rgw.*]
|
||||
# instead of [client.radosgw.*].
|
||||
# For more examples check the profiles directory of https://github.com/ceph/ceph-ansible.
|
||||
#
|
||||
# The following sections are supported: [global], [mon], [osd], [mds], [client]
|
||||
#
|
||||
# Example:
|
||||
# ceph_conf_overrides:
|
||||
# global:
|
||||
# foo: 1234
|
||||
# bar: 5678
|
||||
# "client.rgw.{{ rgw_zone }}.{{ hostvars[groups.get(rgw_group_name)[0]]['ansible_facts']['hostname'] }}":
|
||||
# rgw_zone: zone1
|
||||
#
|
||||
#ceph_conf_overrides: {}
|
||||
|
||||
|
||||
#############
|
||||
# OS TUNING #
|
||||
#############
|
||||
|
||||
#disable_transparent_hugepage: "{{ false if osd_objectstore == 'bluestore' }}"
|
||||
#os_tuning_params:
|
||||
# - { name: fs.file-max, value: 26234859 }
|
||||
# - { name: vm.zone_reclaim_mode, value: 0 }
|
||||
# - { name: vm.swappiness, value: 10 }
|
||||
# - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" }
|
||||
|
||||
# For Debian & Red Hat/CentOS installs set TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
|
||||
# Set this to a byte value (e.g. 134217728)
|
||||
# A value of 0 will leave the package default.
|
||||
#ceph_tcmalloc_max_total_thread_cache: 134217728
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
#ceph_docker_image: "ceph/ceph"
|
||||
#ceph_docker_image_tag: v19
|
||||
#ceph_docker_registry: quay.io
|
||||
#ceph_docker_registry_auth: false
|
||||
# ceph_docker_registry_username:
|
||||
# ceph_docker_registry_password:
|
||||
# ceph_docker_http_proxy:
|
||||
# ceph_docker_https_proxy:
|
||||
#ceph_docker_no_proxy: "localhost,127.0.0.1"
|
||||
## Client only docker image - defaults to {{ ceph_docker_image }}
|
||||
#ceph_client_docker_image: "{{ ceph_docker_image }}"
|
||||
#ceph_client_docker_image_tag: "{{ ceph_docker_image_tag }}"
|
||||
#ceph_client_docker_registry: "{{ ceph_docker_registry }}"
|
||||
#containerized_deployment: false
|
||||
#container_binary:
|
||||
#timeout_command: "{{ 'timeout --foreground -s KILL ' ~ docker_pull_timeout if (docker_pull_timeout != '0') and (ceph_docker_dev_image is undefined or not ceph_docker_dev_image) else '' }}"
|
||||
#ceph_common_container_params:
|
||||
# envs:
|
||||
# NODE_NAME: "{{ ansible_facts['hostname'] }}"
|
||||
# CONTAINER_IMAGE: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
|
||||
# TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES: "{{ ceph_tcmalloc_max_total_thread_cache }}"
|
||||
# args:
|
||||
# - --setuser=ceph
|
||||
# - --setgroup=ceph
|
||||
# - --default-log-to-file=false
|
||||
# - --default-log-to-stderr=true
|
||||
# - --default-log-stderr-prefix="debug "
|
||||
# volumes:
|
||||
# - /var/lib/ceph/crash:/var/lib/ceph/crash:z
|
||||
# - /var/run/ceph:/var/run/ceph:z
|
||||
# - /var/log/ceph:/var/log/ceph:z
|
||||
# - /etc/ceph:/etc/ceph:z
|
||||
# - /etc/localtime:/etc/localtime:ro
|
||||
|
||||
# this is only here for usage with the rolling_update.yml playbook
|
||||
# do not ever change this here
|
||||
#rolling_update: false
|
||||
|
||||
#####################
|
||||
# Docker pull retry #
|
||||
#####################
|
||||
#docker_pull_retry: 3
|
||||
#docker_pull_timeout: "300s"
|
||||
|
||||
|
||||
#############
|
||||
# DASHBOARD #
|
||||
#############
|
||||
#dashboard_enabled: true
|
||||
# Choose http or https
|
||||
# For https, you should set dashboard.crt/key and grafana.crt/key
|
||||
# If you define the dashboard_crt and dashboard_key variables, but leave them as '',
|
||||
# then we will autogenerate a cert and keyfile
|
||||
#dashboard_protocol: https
|
||||
#dashboard_port: 8443
|
||||
# set this variable to the network you want the dashboard to listen on. (Default to public_network)
|
||||
#dashboard_network: "{{ public_network }}"
|
||||
#dashboard_admin_user: admin
|
||||
#dashboard_admin_user_ro: false
|
||||
# This variable must be set with a strong custom password when dashboard_enabled is True
|
||||
# dashboard_admin_password: p@ssw0rd
|
||||
# We only need this for SSL (https) connections
|
||||
#dashboard_crt: ''
|
||||
#dashboard_key: ''
|
||||
#dashboard_certificate_cn: ceph-dashboard
|
||||
#dashboard_tls_external: false
|
||||
#dashboard_grafana_api_no_ssl_verify: "{{ true if dashboard_protocol == 'https' and not grafana_crt and not grafana_key else false }}"
|
||||
#dashboard_rgw_api_user_id: ceph-dashboard
|
||||
#dashboard_rgw_api_admin_resource: ''
|
||||
#dashboard_rgw_api_no_ssl_verify: false
|
||||
#dashboard_frontend_vip: ''
|
||||
#dashboard_disabled_features: []
|
||||
#prometheus_frontend_vip: ''
|
||||
#alertmanager_frontend_vip: ''
|
||||
#node_exporter_container_image: "docker.io/prom/node-exporter:v0.17.0"
|
||||
#node_exporter_port: 9100
|
||||
#grafana_admin_user: admin
|
||||
# This variable must be set with a strong custom password when dashboard_enabled is True
|
||||
# grafana_admin_password: admin
|
||||
# We only need this for SSL (https) connections
|
||||
#grafana_crt: ''
|
||||
#grafana_key: ''
|
||||
# When using https, please fill with a hostname for which grafana_crt is valid.
|
||||
#grafana_server_fqdn: ''
|
||||
#grafana_container_image: "docker.io/grafana/grafana:6.7.4"
|
||||
#grafana_container_cpu_period: 100000
|
||||
#grafana_container_cpu_cores: 2
|
||||
# container_memory is in GB
|
||||
#grafana_container_memory: 4
|
||||
#grafana_uid: 472
|
||||
#grafana_datasource: Dashboard
|
||||
#grafana_dashboards_path: "/etc/grafana/dashboards/ceph-dashboard"
|
||||
#grafana_dashboard_version: main
|
||||
#grafana_dashboard_files:
|
||||
# - ceph-cluster.json
|
||||
# - cephfs-overview.json
|
||||
# - host-details.json
|
||||
# - hosts-overview.json
|
||||
# - osd-device-details.json
|
||||
# - osds-overview.json
|
||||
# - pool-detail.json
|
||||
# - pool-overview.json
|
||||
# - radosgw-detail.json
|
||||
# - radosgw-overview.json
|
||||
# - radosgw-sync-overview.json
|
||||
# - rbd-details.json
|
||||
# - rbd-overview.json
|
||||
#grafana_plugins:
|
||||
# - vonage-status-panel
|
||||
# - grafana-piechart-panel
|
||||
#grafana_allow_embedding: true
|
||||
#grafana_port: 3000
|
||||
#grafana_network: "{{ public_network }}"
|
||||
#grafana_conf_overrides: {}
|
||||
#prometheus_container_image: "docker.io/prom/prometheus:v2.7.2"
|
||||
#prometheus_container_cpu_period: 100000
|
||||
#prometheus_container_cpu_cores: 2
|
||||
# container_memory is in GB
|
||||
#prometheus_container_memory: 4
|
||||
#prometheus_data_dir: /var/lib/prometheus
|
||||
#prometheus_conf_dir: /etc/prometheus
|
||||
#prometheus_user_id: '65534' # This is the UID used by the prom/prometheus container image
|
||||
#prometheus_port: 9092
|
||||
#prometheus_conf_overrides: {}
|
||||
# Uncomment out this variable if you need to customize the retention period for prometheus storage.
|
||||
# set it to '30d' if you want to retain 30 days of data.
|
||||
# prometheus_storage_tsdb_retention_time: 15d
|
||||
#alertmanager_container_image: "docker.io/prom/alertmanager:v0.16.2"
|
||||
#alertmanager_container_cpu_period: 100000
|
||||
#alertmanager_container_cpu_cores: 2
|
||||
# container_memory is in GB
|
||||
#alertmanager_container_memory: 4
|
||||
#alertmanager_data_dir: /var/lib/alertmanager
|
||||
#alertmanager_conf_dir: /etc/alertmanager
|
||||
#alertmanager_port: 9093
|
||||
#alertmanager_cluster_port: 9094
|
||||
#alertmanager_conf_overrides: {}
|
||||
#alertmanager_dashboard_api_no_ssl_verify: "{{ true if dashboard_protocol == 'https' and not dashboard_crt and not dashboard_key else false }}"
|
||||
|
||||
#no_log_on_ceph_key_tasks: true
|
||||
|
||||
###############
|
||||
# DEPRECATION #
|
||||
###############
|
||||
|
||||
|
||||
######################################################
|
||||
# VARIABLES BELOW SHOULD NOT BE MODIFIED BY THE USER #
|
||||
# *DO NOT* MODIFY THEM #
|
||||
######################################################
|
||||
|
||||
#container_exec_cmd:
|
||||
#docker: false
|
||||
#ceph_volume_debug: "{{ enable_ceph_volume_debug | ternary(1, 0) }}"
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
# Even though Client nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on Client nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory
|
||||
#copy_admin_key: false
|
||||
|
||||
#user_config: false
|
||||
# When pg_autoscale_mode is set to True, you must add the target_size_ratio key with a correct value
|
||||
# `pg_num` and `pgp_num` keys will be ignored, even if specified.
|
||||
# eg:
|
||||
# test:
|
||||
# name: "test"
|
||||
# application: "rbd"
|
||||
# target_size_ratio: 0.2
|
||||
#test:
|
||||
# name: "test"
|
||||
# application: "rbd"
|
||||
#test2:
|
||||
# name: "test2"
|
||||
# application: "rbd"
|
||||
#pools:
|
||||
# - "{{ test }}"
|
||||
# - "{{ test2 }}"
|
||||
|
||||
# Generate a keyring using ceph-authtool CLI or python.
|
||||
# Eg:
|
||||
# $ ceph-authtool --gen-print-key
|
||||
# or
|
||||
# $ python2 -c "import os ; import struct ; import time; import base64 ; key = os.urandom(16) ; header = struct.pack('<hiih',1,int(time.time()),0,len(key)) ; print(base64.b64encode(header + key))"
|
||||
#
|
||||
# To use a particular secret, you have to add 'key' to the dict below, so something like:
|
||||
# - { name: client.test, key: "AQAin8tUMICVFBAALRHNrV0Z4MXupRw4v9JQ6Q==" ...
|
||||
|
||||
#keys:
|
||||
# - { name: client.test, caps: { mon: "profile rbd", osd: "allow class-read object_prefix rbd_children, profile rbd pool=test" }, mode: "{{ ceph_keyring_permissions }}" }
|
||||
# - { name: client.test2, caps: { mon: "profile rbd", osd: "allow class-read object_prefix rbd_children, profile rbd pool=test2" }, mode: "{{ ceph_keyring_permissions }}" }
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
#ceph_exporter_addr: "0.0.0.0"
|
||||
#ceph_exporter_port: 9926
|
||||
#ceph_exporter_stats_period: 5 # seconds
|
||||
#ceph_exporter_prio_limit: 5
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_exporter_container_params:
|
||||
# args:
|
||||
# - -f
|
||||
# - -n=client.ceph-exporter
|
||||
# - --sock-dir=/var/run/ceph
|
||||
# - --addrs={{ ceph_exporter_addr }}
|
||||
# - --port={{ ceph_exporter_port }}
|
||||
# - --stats-period={{ ceph_exporter_stats_period }}
|
||||
# - --prio-limit={{ ceph_exporter_prio_limit }}
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
# Even though MDS nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on MDS nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory
|
||||
#copy_admin_key: false
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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
|
||||
#ceph_mds_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_mds_docker_cpu_limit: 4
|
||||
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_mds_container_params:
|
||||
# volumes:
|
||||
# - /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds:z
|
||||
# - /var/lib/ceph/mds/{{ cluster }}-{{ ansible_facts['hostname'] }}:/var/lib/ceph/mds/{{ cluster }}-{{ ansible_facts['hostname'] }}:z
|
||||
# args:
|
||||
# - -f
|
||||
# - -i={{ ansible_facts['hostname'] }}
|
||||
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_mds_systemd_overrides will override the systemd settings
|
||||
# for the ceph-mds services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_mds_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
##########
|
||||
# GLOBAL #
|
||||
##########
|
||||
# Even though MGR nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on MGR nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory
|
||||
copy_admin_key: false
|
||||
mgr_secret: 'mgr_secret'
|
||||
|
||||
|
||||
###########
|
||||
# MODULES #
|
||||
###########
|
||||
# Ceph mgr modules to enable, to view the list of available modules see: http://docs.ceph.com/docs/CEPH_VERSION/mgr/
|
||||
# and replace CEPH_VERSION with your current Ceph version, e,g: 'mimic'
|
||||
#ceph_mgr_modules: []
|
||||
|
||||
############
|
||||
# PACKAGES #
|
||||
############
|
||||
# Ceph mgr packages to install, ceph-mgr + extra module packages.
|
||||
ceph_mgr_packages:
|
||||
- ceph-mgr
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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
|
||||
#ceph_mgr_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_mgr_docker_cpu_limit: 1
|
||||
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_mgr_container_params:
|
||||
# volumes:
|
||||
# - /var/lib/ceph/mgr:/var/lib/ceph/mgr:z,rshared
|
||||
# - /var/lib/ceph/bootstrap-mgr:/var/lib/ceph/bootstrap-mgr:z
|
||||
# args:
|
||||
# - -f
|
||||
# - -i={{ ansible_facts['hostname'] }}
|
||||
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_mgr_systemd_overrides will override the systemd settings
|
||||
# for the ceph-mgr services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_mgr_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
@@ -0,0 +1,66 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
##########
|
||||
# GLOBAL #
|
||||
##########
|
||||
# Even though MGR nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on MGR nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory
|
||||
#copy_admin_key: false
|
||||
#mgr_secret: 'mgr_secret'
|
||||
|
||||
|
||||
###########
|
||||
# MODULES #
|
||||
###########
|
||||
# Ceph mgr modules to enable, to view the list of available modules see: http://docs.ceph.com/docs/CEPH_VERSION/mgr/
|
||||
# and replace CEPH_VERSION with your current Ceph version, e,g: 'mimic'
|
||||
#ceph_mgr_modules: []
|
||||
|
||||
############
|
||||
# PACKAGES #
|
||||
############
|
||||
# Ceph mgr packages to install, ceph-mgr + extra module packages.
|
||||
#ceph_mgr_packages:
|
||||
# - ceph-mgr
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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
|
||||
#ceph_mgr_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_mgr_docker_cpu_limit: 1
|
||||
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_mgr_container_params:
|
||||
# volumes:
|
||||
# - /var/lib/ceph/mgr:/var/lib/ceph/mgr:z,rshared
|
||||
# - /var/lib/ceph/bootstrap-mgr:/var/lib/ceph/bootstrap-mgr:z
|
||||
# args:
|
||||
# - -f
|
||||
# - -i={{ ansible_facts['hostname'] }}
|
||||
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_mgr_systemd_overrides will override the systemd settings
|
||||
# for the ceph-mgr services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_mgr_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
mon_group_name: mons
|
||||
|
||||
# ACTIVATE BOTH FSID AND MONITOR_SECRET VARIABLES FOR NON-VAGRANT DEPLOYMENT
|
||||
monitor_secret: "{{ monitor_keyring.stdout }}"
|
||||
admin_secret: 'admin_secret'
|
||||
|
||||
# Secure your cluster
|
||||
# This will set the following flags on all the pools:
|
||||
# * nosizechange
|
||||
# * nopgchange
|
||||
# * nodelete
|
||||
|
||||
#secure_cluster: false
|
||||
#secure_cluster_flags:
|
||||
# - nopgchange
|
||||
# - nodelete
|
||||
# - nosizechange
|
||||
|
||||
client_admin_ceph_authtool_cap:
|
||||
mon: allow *
|
||||
osd: allow *
|
||||
mds: allow *
|
||||
mgr: allow *
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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
|
||||
#ceph_mon_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_mon_docker_cpu_limit: 1
|
||||
#ceph_mon_container_listen_port: 3300
|
||||
|
||||
# Use this variable to modify the configuration to run your mon container.
|
||||
#mon_docker_privileged: false
|
||||
#mon_docker_net_host: true
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_mon_container_params:
|
||||
# volumes:
|
||||
# - /var/lib/ceph/mon:/var/lib/ceph/mon:z,rshared
|
||||
# args:
|
||||
# - -f
|
||||
# - --default-mon-cluster-log-to-file=false
|
||||
# - --default-mon-cluster-log-to-stderr=true
|
||||
# - -i={{ monitor_name }}
|
||||
# - --mon-data=/var/lib/ceph/mon/{{ cluster }}-{{ monitor_name }}
|
||||
# - --public-addr={{ _monitor_addresses[inventory_hostname] }}
|
||||
# - --mon-initial-members={{ groups[mon_group_name] | map('extract', hostvars, 'ansible_facts') | map(attribute='hostname') | join(',') }}
|
||||
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_mon_systemd_overrides will override the systemd settings
|
||||
# for the ceph-mon services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_mon_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
#mon_group_name: mons
|
||||
|
||||
# ACTIVATE BOTH FSID AND MONITOR_SECRET VARIABLES FOR NON-VAGRANT DEPLOYMENT
|
||||
#monitor_secret: "{{ monitor_keyring.stdout }}"
|
||||
#admin_secret: 'admin_secret'
|
||||
|
||||
# Secure your cluster
|
||||
# This will set the following flags on all the pools:
|
||||
# * nosizechange
|
||||
# * nopgchange
|
||||
# * nodelete
|
||||
|
||||
#secure_cluster: false
|
||||
#secure_cluster_flags:
|
||||
# - nopgchange
|
||||
# - nodelete
|
||||
# - nosizechange
|
||||
|
||||
#client_admin_ceph_authtool_cap:
|
||||
# mon: allow *
|
||||
# osd: allow *
|
||||
# mds: allow *
|
||||
# mgr: allow *
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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
|
||||
#ceph_mon_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_mon_docker_cpu_limit: 1
|
||||
#ceph_mon_container_listen_port: 3300
|
||||
|
||||
# Use this variable to modify the configuration to run your mon container.
|
||||
#mon_docker_privileged: false
|
||||
#mon_docker_net_host: true
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_mon_container_params:
|
||||
# volumes:
|
||||
# - /var/lib/ceph/mon:/var/lib/ceph/mon:z,rshared
|
||||
# args:
|
||||
# - -f
|
||||
# - --default-mon-cluster-log-to-file=false
|
||||
# - --default-mon-cluster-log-to-stderr=true
|
||||
# - -i={{ monitor_name }}
|
||||
# - --mon-data=/var/lib/ceph/mon/{{ cluster }}-{{ monitor_name }}
|
||||
# - --public-addr={{ _monitor_addresses[inventory_hostname] }}
|
||||
# - --mon-initial-members={{ groups[mon_group_name] | map('extract', hostvars, 'ansible_facts') | map(attribute='hostname') | join(',') }}
|
||||
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_mon_systemd_overrides will override the systemd settings
|
||||
# for the ceph-mon services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_mon_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
# Even though NFS nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on RGW nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory
|
||||
#copy_admin_key: false
|
||||
|
||||
# Whether docker container or systemd service should be enabled
|
||||
# and started, it's useful to set it to false if nfs-ganesha
|
||||
# service is managed by pacemaker
|
||||
#ceph_nfs_enable_service: true
|
||||
|
||||
# ceph-nfs systemd service uses ansible's hostname as an instance id,
|
||||
# so service name is ceph-nfs@{{ ansible_facts['hostname'] }}, this is not
|
||||
# ideal when ceph-nfs is managed by pacemaker across multiple hosts - in
|
||||
# such case it's better to have constant instance id instead which
|
||||
# can be set by 'ceph_nfs_service_suffix'
|
||||
# ceph_nfs_service_suffix: "{{ ansible_facts['hostname'] }}"
|
||||
|
||||
######################
|
||||
# NFS Ganesha Config #
|
||||
######################
|
||||
#ceph_nfs_log_file: "/var/log/ganesha/ganesha.log"
|
||||
#ceph_nfs_dynamic_exports: false
|
||||
# If set to true then rados is used to store ganesha exports
|
||||
# and client sessions information, this is useful if you
|
||||
# run multiple nfs-ganesha servers in active/passive mode and
|
||||
# want to do failover
|
||||
#ceph_nfs_rados_backend: false
|
||||
# Name of the rados object used to store a list of the export rados
|
||||
# object URLS
|
||||
#ceph_nfs_rados_export_index: "ganesha-export-index"
|
||||
# Address ganesha service should listen on, by default ganesha listens on all
|
||||
# addresses. (Note: ganesha ignores this parameter in current version due to
|
||||
# this bug: https://github.com/nfs-ganesha/nfs-ganesha/issues/217)
|
||||
# ceph_nfs_bind_addr: 0.0.0.0
|
||||
|
||||
# If set to true, then ganesha's attribute and directory caching is disabled
|
||||
# as much as possible. Currently, ganesha caches by default.
|
||||
# When using ganesha as CephFS's gateway, it is recommended to turn off
|
||||
# ganesha's caching as the libcephfs clients also cache the same information.
|
||||
# Note: Irrespective of this option's setting, ganesha's caching is disabled
|
||||
# when setting 'nfs_file_gw' option as true.
|
||||
#ceph_nfs_disable_caching: false
|
||||
|
||||
# This is the file ganesha will use to control NFSv4 ID mapping
|
||||
#ceph_nfs_idmap_conf: "/etc/ganesha/idmap.conf"
|
||||
|
||||
# idmap configuration file override.
|
||||
# This allows you to specify more configuration options
|
||||
# using an INI style format.
|
||||
# Example:
|
||||
# idmap_conf_overrides:
|
||||
# General:
|
||||
# Domain: foo.domain.net
|
||||
#idmap_conf_overrides: {}
|
||||
|
||||
####################
|
||||
# FSAL Ceph Config #
|
||||
####################
|
||||
#ceph_nfs_ceph_export_id: 20133
|
||||
#ceph_nfs_ceph_pseudo_path: "/cephfile"
|
||||
#ceph_nfs_ceph_protocols: "3,4"
|
||||
#ceph_nfs_ceph_access_type: "RW"
|
||||
#ceph_nfs_ceph_user: "admin"
|
||||
#ceph_nfs_ceph_squash: "Root_Squash"
|
||||
#ceph_nfs_ceph_sectype: "sys,krb5,krb5i,krb5p"
|
||||
|
||||
###################
|
||||
# FSAL RGW Config #
|
||||
###################
|
||||
#ceph_nfs_rgw_export_id: 20134
|
||||
#ceph_nfs_rgw_pseudo_path: "/cephobject"
|
||||
#ceph_nfs_rgw_protocols: "3,4"
|
||||
#ceph_nfs_rgw_access_type: "RW"
|
||||
#ceph_nfs_rgw_user: "cephnfs"
|
||||
#ceph_nfs_rgw_squash: "Root_Squash"
|
||||
#ceph_nfs_rgw_sectype: "sys,krb5,krb5i,krb5p"
|
||||
# Note: keys are optional and can be generated, but not on containerized, where
|
||||
# they must be configered.
|
||||
# ceph_nfs_rgw_access_key: "QFAMEDSJP5DEKJO0DDXY"
|
||||
# ceph_nfs_rgw_secret_key: "iaSFLDVvDdQt6lkNzHyW4fPLZugBAI1g17LO0+87[MAC[M#C"
|
||||
#rgw_client_name: client.rgw.{{ ansible_facts['hostname'] }}
|
||||
|
||||
###################
|
||||
# CONFIG OVERRIDE #
|
||||
###################
|
||||
|
||||
# Ganesha configuration file override.
|
||||
# These multiline strings will be appended to the contents of the blocks in ganesha.conf and
|
||||
# must be in the correct ganesha.conf format seen here:
|
||||
# https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/config_samples/ganesha.conf.example
|
||||
#
|
||||
# Example:
|
||||
# CACHEINODE {
|
||||
# # Entries_HWMark = 100000;
|
||||
# }
|
||||
#
|
||||
# ganesha_core_param_overrides:
|
||||
# ganesha_ceph_export_overrides:
|
||||
# ganesha_rgw_export_overrides:
|
||||
# ganesha_rgw_section_overrides:
|
||||
# ganesha_log_overrides:
|
||||
# ganesha_conf_overrides: |
|
||||
# CACHEINODE {
|
||||
# # Entries_HWMark = 100000;
|
||||
# }
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
#ceph_docker_image: "ceph/daemon"
|
||||
#ceph_docker_image_tag: latest
|
||||
#ceph_nfs_docker_extra_env:
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
##############
|
||||
# CEPH OPTIONS
|
||||
##############
|
||||
|
||||
# Devices to be used as OSDs
|
||||
# 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.
|
||||
#
|
||||
|
||||
|
||||
# Declare devices to be used as OSDs
|
||||
# All scenario(except 3rd) inherit from the following device declaration
|
||||
# Note: This scenario uses the ceph-volume lvm batch method to provision OSDs
|
||||
|
||||
devices:
|
||||
- /dev/sdb
|
||||
# - /dev/sdd
|
||||
# - /dev/sde
|
||||
|
||||
#devices: []
|
||||
|
||||
# Declare devices to be used as block.db devices
|
||||
|
||||
# dedicated_devices:
|
||||
# - /dev/sdx
|
||||
# - /dev/sdy
|
||||
|
||||
#dedicated_devices: []
|
||||
|
||||
# Declare devices to be used as block.wal devices
|
||||
|
||||
# bluestore_wal_devices:
|
||||
# - /dev/nvme0n1
|
||||
# - /dev/nvme0n2
|
||||
|
||||
#bluestore_wal_devices: []
|
||||
|
||||
# 'osd_auto_discovery' mode prevents you from filling out the 'devices' variable above.
|
||||
# Device discovery is based on the Ansible fact 'ansible_facts["devices"]'
|
||||
# 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.
|
||||
# Thus devices with existing partition tables will not be used.
|
||||
#
|
||||
#osd_auto_discovery: false
|
||||
|
||||
# Encrypt your OSD device using dmcrypt
|
||||
# If set to True, no matter which osd_objecstore you use the data will be encrypted
|
||||
#dmcrypt: false
|
||||
|
||||
# Use ceph-volume to create OSDs from logical volumes.
|
||||
# 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
|
||||
# can be a logical volume, device or partition. journal can be either a lv or partition.
|
||||
# You can not use the same journal for many data lvs.
|
||||
# data_vg must be the volume group name of the data lv, only applicable when data is an lv.
|
||||
# journal_vg is optional and must be the volume group name of the journal lv, if applicable.
|
||||
# For example:
|
||||
# lvm_volumes:
|
||||
# - data: data-lv1
|
||||
# data_vg: vg1
|
||||
# journal: journal-lv1
|
||||
# journal_vg: vg2
|
||||
# crush_device_class: foo
|
||||
# - data: data-lv2
|
||||
# journal: /dev/sda1
|
||||
# data_vg: vg1
|
||||
# - data: data-lv3
|
||||
# journal: /dev/sdb1
|
||||
# data_vg: vg2
|
||||
# - data: /dev/sda
|
||||
# journal: /dev/sdb1
|
||||
# - data: /dev/sda1
|
||||
# journal: /dev/sdb1
|
||||
#
|
||||
# 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
|
||||
# crush_device_class: foo
|
||||
# - 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
|
||||
# - data: /dev/sda
|
||||
# - data: /dev/sdb1
|
||||
|
||||
#lvm_volumes: []
|
||||
#crush_device_class: ""
|
||||
#osds_per_device: 1
|
||||
|
||||
###############
|
||||
# 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 }}"
|
||||
|
||||
#ceph_ec_profiles: {}
|
||||
|
||||
# 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
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
|
||||
# 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
|
||||
#ceph_osd_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_osd_docker_cpu_limit: 4
|
||||
|
||||
# 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"
|
||||
|
||||
# PREPARE DEVICE
|
||||
#
|
||||
# WARNING /!\ DMCRYPT scenario ONLY works with Docker version 1.12.5 and above
|
||||
#
|
||||
#ceph_osd_docker_devices: "{{ devices }}"
|
||||
#ceph_osd_docker_prepare_env: -e OSD_JOURNAL_SIZE={{ journal_size }}
|
||||
|
||||
# ACTIVATE DEVICE
|
||||
#
|
||||
#ceph_osd_numactl_opts: ""
|
||||
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_osd_container_params:
|
||||
# volumes:
|
||||
# - /dev:/dev
|
||||
# - /var/lib/ceph/bootstrap-osd/ceph.keyring:/var/lib/ceph/bootstrap-osd/ceph.keyring:z
|
||||
# - /var/lib/ceph/osd/{{ cluster }}-"${OSD_ID}":/var/lib/ceph/osd/{{ cluster }}-"${OSD_ID}":z
|
||||
# - /var/run/udev/:/var/run/udev/
|
||||
# - /run/lvm/:/run/lvm/
|
||||
# envs:
|
||||
# OSD_ID: ${OSD_ID}
|
||||
# args:
|
||||
# - -f
|
||||
# - -i=${OSD_ID}
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
###########
|
||||
# CHECK #
|
||||
###########
|
||||
|
||||
#nb_retry_wait_osd_up: 60
|
||||
#delay_wait_osd_up: 10
|
||||
@@ -0,0 +1,227 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
##############
|
||||
# CEPH OPTIONS
|
||||
##############
|
||||
|
||||
# Devices to be used as OSDs
|
||||
# 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.
|
||||
#
|
||||
|
||||
|
||||
# Declare devices to be used as OSDs
|
||||
# All scenario(except 3rd) inherit from the following device declaration
|
||||
# Note: This scenario uses the ceph-volume lvm batch method to provision OSDs
|
||||
|
||||
# devices:
|
||||
# - /dev/sdb
|
||||
# - /dev/sdc
|
||||
# - /dev/sdd
|
||||
# - /dev/sde
|
||||
|
||||
#devices: []
|
||||
|
||||
# Declare devices to be used as block.db devices
|
||||
|
||||
# dedicated_devices:
|
||||
# - /dev/sdx
|
||||
# - /dev/sdy
|
||||
|
||||
#dedicated_devices: []
|
||||
|
||||
# Declare devices to be used as block.wal devices
|
||||
|
||||
# bluestore_wal_devices:
|
||||
# - /dev/nvme0n1
|
||||
# - /dev/nvme0n2
|
||||
|
||||
#bluestore_wal_devices: []
|
||||
|
||||
# 'osd_auto_discovery' mode prevents you from filling out the 'devices' variable above.
|
||||
# Device discovery is based on the Ansible fact 'ansible_facts["devices"]'
|
||||
# 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.
|
||||
# Thus devices with existing partition tables will not be used.
|
||||
#
|
||||
#osd_auto_discovery: false
|
||||
|
||||
# Encrypt your OSD device using dmcrypt
|
||||
# If set to True, no matter which osd_objecstore you use the data will be encrypted
|
||||
#dmcrypt: false
|
||||
|
||||
# Use ceph-volume to create OSDs from logical volumes.
|
||||
# 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
|
||||
# can be a logical volume, device or partition. journal can be either a lv or partition.
|
||||
# You can not use the same journal for many data lvs.
|
||||
# data_vg must be the volume group name of the data lv, only applicable when data is an lv.
|
||||
# journal_vg is optional and must be the volume group name of the journal lv, if applicable.
|
||||
# For example:
|
||||
# lvm_volumes:
|
||||
# - data: data-lv1
|
||||
# data_vg: vg1
|
||||
# journal: journal-lv1
|
||||
# journal_vg: vg2
|
||||
# crush_device_class: foo
|
||||
# - data: data-lv2
|
||||
# journal: /dev/sda1
|
||||
# data_vg: vg1
|
||||
# - data: data-lv3
|
||||
# journal: /dev/sdb1
|
||||
# data_vg: vg2
|
||||
# - data: /dev/sda
|
||||
# journal: /dev/sdb1
|
||||
# - data: /dev/sda1
|
||||
# journal: /dev/sdb1
|
||||
#
|
||||
# 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
|
||||
# crush_device_class: foo
|
||||
# - 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
|
||||
# - data: /dev/sda
|
||||
# - data: /dev/sdb1
|
||||
|
||||
#lvm_volumes: []
|
||||
#crush_device_class: ""
|
||||
#osds_per_device: 1
|
||||
|
||||
###############
|
||||
# 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 }}"
|
||||
|
||||
#ceph_ec_profiles: {}
|
||||
|
||||
# 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
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
|
||||
# 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
|
||||
#ceph_osd_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_osd_docker_cpu_limit: 4
|
||||
|
||||
# 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"
|
||||
|
||||
# PREPARE DEVICE
|
||||
#
|
||||
# WARNING /!\ DMCRYPT scenario ONLY works with Docker version 1.12.5 and above
|
||||
#
|
||||
#ceph_osd_docker_devices: "{{ devices }}"
|
||||
#ceph_osd_docker_prepare_env: -e OSD_JOURNAL_SIZE={{ journal_size }}
|
||||
|
||||
# ACTIVATE DEVICE
|
||||
#
|
||||
#ceph_osd_numactl_opts: ""
|
||||
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_osd_container_params:
|
||||
# volumes:
|
||||
# - /dev:/dev
|
||||
# - /var/lib/ceph/bootstrap-osd/ceph.keyring:/var/lib/ceph/bootstrap-osd/ceph.keyring:z
|
||||
# - /var/lib/ceph/osd/{{ cluster }}-"${OSD_ID}":/var/lib/ceph/osd/{{ cluster }}-"${OSD_ID}":z
|
||||
# - /var/run/udev/:/var/run/udev/
|
||||
# - /run/lvm/:/run/lvm/
|
||||
# envs:
|
||||
# OSD_ID: ${OSD_ID}
|
||||
# args:
|
||||
# - -f
|
||||
# - -i=${OSD_ID}
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
###########
|
||||
# CHECK #
|
||||
###########
|
||||
|
||||
#nb_retry_wait_osd_up: 60
|
||||
#delay_wait_osd_up: 10
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
#########
|
||||
# SETUP #
|
||||
#########
|
||||
|
||||
# Even though rbd-mirror nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on rbd-mirror nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory. Only
|
||||
# valid for Luminous and later releases.
|
||||
#copy_admin_key: false
|
||||
|
||||
|
||||
#################
|
||||
# CONFIGURATION #
|
||||
#################
|
||||
|
||||
#ceph_rbd_mirror_local_user: client.rbd-mirror-peer
|
||||
#ceph_rbd_mirror_configure: false
|
||||
#ceph_rbd_mirror_mode: pool
|
||||
#ceph_rbd_mirror_remote_cluster: remote
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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_rbd_mirror_docker_extra_env' variable.
|
||||
#ceph_rbd_mirror_docker_memory_limit: "{{ ansible_facts['memtotal_mb'] }}m"
|
||||
#ceph_rbd_mirror_docker_cpu_limit: 1
|
||||
|
||||
#ceph_rbd_mirror_docker_extra_env:
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_rbd_mirror_systemd_overrides will override the systemd settings
|
||||
# for the ceph-rbd-mirror services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_rbd_mirror_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
#haproxy_frontend_port: 80
|
||||
#haproxy_frontend_ssl_port: 443
|
||||
#haproxy_frontend_ssl_certificate:
|
||||
#haproxy_ssl_dh_param: 4096
|
||||
#haproxy_ssl_ciphers:
|
||||
# - EECDH+AESGCM
|
||||
# - EDH+AESGCM
|
||||
#haproxy_ssl_options:
|
||||
# - no-sslv3
|
||||
# - no-tlsv10
|
||||
# - no-tlsv11
|
||||
# - no-tls-tickets
|
||||
#
|
||||
# virtual_ips:
|
||||
# - 192.168.238.250
|
||||
# - 192.168.238.251
|
||||
#
|
||||
# virtual_ip_netmask: 24
|
||||
# virtual_ip_interface: ens33
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
---
|
||||
# Variables here are applicable to all host groups NOT roles
|
||||
|
||||
# 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.
|
||||
dummy:
|
||||
|
||||
# You can override vars by using host or group vars
|
||||
|
||||
###########
|
||||
# GENERAL #
|
||||
###########
|
||||
|
||||
# Even though RGW nodes should not have the admin key
|
||||
# at their disposal, some people might want to have it
|
||||
# distributed on RGW nodes. Setting 'copy_admin_key' to 'true'
|
||||
# will copy the admin key to the /etc/ceph/ directory
|
||||
#copy_admin_key: false
|
||||
|
||||
##########
|
||||
# TUNING #
|
||||
##########
|
||||
|
||||
# Declaring rgw_create_pools will create pools with the given number of pgs,
|
||||
# size, and type. The following are some important notes on this automatic
|
||||
# pool creation:
|
||||
# - The pools and associated pg_num's below are merely examples of pools that
|
||||
# could be automatically created when rgws are deployed.
|
||||
# - The default pg_num is 8 (from osd_pool_default_pg_num) for pool created
|
||||
# if rgw_create_pools isn't declared and configured.
|
||||
# - A pgcalc tool should be used to determine the optimal sizes for
|
||||
# the rgw.buckets.data, rgw.buckets.index pools as well as any other
|
||||
# pools declared in this dictionary.
|
||||
# https://ceph.io/pgcalc is the upstream pgcalc tool
|
||||
# https://access.redhat.com/labsinfo/cephpgc is a pgcalc tool offered by
|
||||
# Red Hat if you are using RHCS.
|
||||
# - The default value of {{ rgw_zone }} is 'default'.
|
||||
# - The type must be set as either 'replicated' or 'ec' for
|
||||
# each pool.
|
||||
# - If a pool's type is 'ec', k and m values must be set via
|
||||
# the ec_k, and ec_m variables.
|
||||
# - The rule_name key can be used with a specific crush rule value (must exist).
|
||||
# If the key doesn't exist it falls back to the default replicated_rule.
|
||||
# This only works for replicated pool type not erasure.
|
||||
|
||||
# rgw_create_pools:
|
||||
# "{{ rgw_zone }}.rgw.buckets.data":
|
||||
# pg_num: 64
|
||||
# type: ec
|
||||
# ec_profile: myecprofile
|
||||
# ec_k: 5
|
||||
# ec_m: 3
|
||||
# "{{ rgw_zone }}.rgw.buckets.index":
|
||||
# pg_num: 16
|
||||
# size: 3
|
||||
# type: replicated
|
||||
# "{{ rgw_zone }}.rgw.meta":
|
||||
# pg_num: 8
|
||||
# size: 3
|
||||
# type: replicated
|
||||
# "{{ rgw_zone }}.rgw.log":
|
||||
# pg_num: 8
|
||||
# size: 3
|
||||
# type: replicated
|
||||
# "{{ rgw_zone }}.rgw.control":
|
||||
# pg_num: 8
|
||||
# size: 3
|
||||
# type: replicated
|
||||
# rule_name: foo
|
||||
|
||||
|
||||
##########
|
||||
# DOCKER #
|
||||
##########
|
||||
|
||||
# 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
|
||||
#ceph_rgw_docker_memory_limit: "4096m"
|
||||
#ceph_rgw_docker_cpu_limit: 8
|
||||
# ceph_rgw_docker_cpuset_cpus: "0,2,4,6,8,10,12,14,16"
|
||||
# ceph_rgw_docker_cpuset_mems: "0"
|
||||
|
||||
#ceph_config_keys: [] # DON'T TOUCH ME
|
||||
#rgw_config_keys: "/" # DON'T TOUCH ME
|
||||
# If you want to add parameters, you should retain the existing ones and include the new ones.
|
||||
#ceph_rgw_container_params:
|
||||
# volumes:
|
||||
# - /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ rgw_zone }}.{{ ansible_facts['hostname'] }}.${INST_NAME}:/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ rgw_zone }}.{{ ansible_facts['hostname'] }}.${INST_NAME}:z
|
||||
# args:
|
||||
# - -f
|
||||
# - -n=client.rgw.{{ rgw_zone }}.{{ ansible_facts['hostname'] }}.${INST_NAME}
|
||||
# - -k=/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ rgw_zone }}.{{ ansible_facts['hostname'] }}.${INST_NAME}/keyring
|
||||
|
||||
###########
|
||||
# SYSTEMD #
|
||||
###########
|
||||
# ceph_rgw_systemd_overrides will override the systemd settings
|
||||
# for the ceph-rgw services.
|
||||
# For example,to set "PrivateDevices=false" you can specify:
|
||||
# ceph_rgw_systemd_overrides:
|
||||
# Service:
|
||||
# PrivateDevices: false
|
||||
|
||||
Reference in New Issue
Block a user