1 # Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
\r
3 # Licensed under the Apache License, Version 2.0 (the "License");
\r
4 # you may not use this file except in compliance with the License.
\r
5 # You may obtain a copy of the License at
\r
7 # http://www.apache.org/licenses/LICENSE-2.0
\r
9 # Unless required by applicable law or agreed to in writing, software
\r
10 # distributed under the License is distributed on an "AS IS" BASIS,
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
12 # See the License for the specific language governing permissions and
\r
13 # limitations under the License.
\r
16 # Variables here are applicable to all host groups NOT roles
\r
18 # This sample file generated by generate_group_vars_sample.sh
\r
20 # Dummy variable to avoid error because ansible does not recognize the
\r
21 # file as a good configuration file when no variable in it.
\r
24 # You can override vars by using host or group vars
\r
26 ceph_origin: repository
\r
27 ceph_repository: community
\r
28 ceph_stable_release: luminous
\r
29 public_network: "192.168.3.0/24"
\r
30 cluster_network: "{{ public_network }}"
\r
31 monitor_interface: eth1
\r
35 osd_scenario: collocated
\r
41 ######################################
\r
42 # Releases name to number dictionary #
\r
43 ######################################
\r
56 # Directory to fetch cluster fsid, keys etc...
\r
57 #fetch_directory: fetch/
\r
59 # The 'cluster' variable determines the name of the cluster.
\r
60 # Changing the default value to something else means that you will
\r
61 # need to change all the command line calls as well, for example if
\r
62 # your cluster name is 'foo':
\r
63 # "ceph health" will become "ceph --cluster foo health"
\r
65 # An easier way to handle this is to use the environment variable CEPH_ARGS
\r
66 # So run: "export CEPH_ARGS="--cluster foo"
\r
67 # With that you will be able to run "ceph health" normally
\r
70 # Inventory host group variables
\r
71 #mon_group_name: mons
\r
72 #osd_group_name: osds
\r
73 #rgw_group_name: rgws
\r
74 #mds_group_name: mdss
\r
75 #nfs_group_name: nfss
\r
76 #restapi_group_name: restapis
\r
77 #rbdmirror_group_name: rbdmirrors
\r
78 #client_group_name: clients
\r
79 #iscsi_gw_group_name: iscsi-gws
\r
80 #mgr_group_name: mgrs
\r
82 # If check_firewall is true, then ansible will try to determine if the
\r
83 # Ceph ports are blocked by a firewall. If the machine running ansible
\r
84 # cannot reach the Ceph ports for some other reason, you may need or
\r
85 # want to set this to False to skip those checks.
\r
86 #check_firewall: False
\r
92 #debian_package_dependencies:
\r
96 #centos_package_dependencies:
\r
100 # - python-setuptools
\r
101 # - libselinux-python
\r
103 #redhat_package_dependencies:
\r
106 # - python-setuptools
\r
108 # Whether or not to install the ceph-test package.
\r
111 # Enable the ntp service by default to avoid clock skew on
\r
113 #ntp_service_enabled: true
\r
115 # Set uid/gid to default '64045' for bootstrap directories.
\r
116 # '64045' is used for debian based distros. It must be set to 167 in case of rhel based distros.
\r
117 # These values have to be set according to the base OS used by the container image, NOT the host.
\r
118 #bootstrap_dirs_owner: "64045"
\r
119 #bootstrap_dirs_group: "64045"
\r
121 # This variable determines if ceph packages can be updated. If False, the
\r
122 # package resources will use "state=present". If True, they will use
\r
124 #upgrade_ceph_packages: False
\r
126 #ceph_use_distro_backports: false # DEBIAN ONLY
\r
132 #ceph_rhcs_cdn_install: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
133 #ceph_repository_type: "{{ 'cdn' if ceph_rhcs_cdn_install else 'iso' if ceph_rhcs_iso_install else 'dummy' }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
134 #ceph_rhcs_iso_install: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
135 #ceph_rhcs: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
136 #ceph_stable: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
137 #ceph_dev: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
138 #ceph_stable_uca: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
139 #ceph_custom: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
144 # - 'repository' means that you will get ceph installed through a new repository. Later below choose between 'community', 'rhcs' or 'dev'
\r
145 # - 'distro' means that no separate repo file will be added
\r
146 # you will get whatever version of Ceph is included in your Linux distro.
\r
147 # 'local' means that the ceph binaries will be copied over from the local machine
\r
148 #ceph_origin: "{{ 'repository' if ceph_rhcs or ceph_stable or ceph_dev or ceph_stable_uca or ceph_custom else 'dummy' }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
149 #valid_ceph_origins:
\r
155 #ceph_repository: "{{ 'community' if ceph_stable else 'rhcs' if ceph_rhcs else 'dev' if ceph_dev else 'uca' if ceph_stable_uca else 'custom' if ceph_custom else 'dummy' }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
156 #valid_ceph_repository:
\r
164 # REPOSITORY: COMMUNITY VERSION
\r
166 # Enabled when ceph_repository == 'community'
\r
168 #ceph_mirror: http://download.ceph.com
\r
169 #ceph_stable_key: https://download.ceph.com/keys/release.asc
\r
170 #ceph_stable_release: dummy
\r
171 #ceph_stable_repo: "{{ ceph_mirror }}/debian-{{ ceph_stable_release }}"
\r
173 #nfs_ganesha_stable: true # use stable repos for nfs-ganesha
\r
174 #nfs_ganesha_stable_branch: V2.5-stable
\r
175 #nfs_ganesha_stable_deb_repo: "{{ ceph_mirror }}/nfs-ganesha/deb-{{ nfs_ganesha_stable_branch }}/{{ ceph_stable_release }}"
\r
178 # Use the option below to specify your applicable package tree, eg. when using non-LTS Ubuntu versions
\r
179 # # for a list of available Debian distributions, visit http://download.ceph.com/debian-{{ ceph_stable_release }}/dists/
\r
180 # for more info read: https://github.com/ceph/ceph-ansible/issues/305
\r
181 #ceph_stable_distro_source: "{{ ansible_lsb.codename }}"
\r
183 # This option is needed for _both_ stable and dev version, so please always fill the right version
\r
184 # # for supported distros, see http://download.ceph.com/rpm-{{ ceph_stable_release }}/
\r
185 #ceph_stable_redhat_distro: el7
\r
188 # REPOSITORY: RHCS VERSION RED HAT STORAGE (from 1.3)
\r
190 # Enabled when ceph_repository == 'rhcs'
\r
192 # This version is only supported on RHEL >= 7.1
\r
193 # As of RHEL 7.1, libceph.ko and rbd.ko are now included in Red Hat's kernel
\r
194 # packages natively. The RHEL 7.1 kernel packages are more stable and secure than
\r
195 # using these 3rd-party kmods with RHEL 7.0. Please update your systems to RHEL
\r
196 # 7.1 or later if you want to use the kernel RBD client.
\r
198 # The CephFS kernel client is undergoing rapid development upstream, and we do
\r
199 # not recommend running the CephFS kernel module on RHEL 7's 3.10 kernel at this
\r
200 # time. Please use ELRepo's latest upstream 4.x kernels if you want to run CephFS
\r
204 #ceph_rhcs_version: "{{ ceph_stable_rh_storage_version | default(2) }}"
\r
205 #valid_ceph_repository_type:
\r
208 #ceph_rhcs_iso_path: "{{ ceph_stable_rh_storage_iso_path | default('') }}"
\r
209 #ceph_rhcs_mount_path: "{{ ceph_stable_rh_storage_mount_path | default('/tmp/rh-storage-mount') }}"
\r
210 #ceph_rhcs_repository_path: "{{ ceph_stable_rh_storage_repository_path | default('/tmp/rh-storage-repo') }}" # where to copy iso's content
\r
212 # RHCS installation in Debian systems
\r
213 #ceph_rhcs_cdn_debian_repo: https://customername:customerpasswd@rhcs.download.redhat.com
\r
214 #ceph_rhcs_cdn_debian_repo_version: "/3-release/" # for GA, later for updates use /3-updates/
\r
217 # REPOSITORY: UBUNTU CLOUD ARCHIVE
\r
219 # Enabled when ceph_repository == 'uca'
\r
221 # This allows the install of Ceph from the Ubuntu Cloud Archive. The Ubuntu Cloud Archive
\r
222 # usually has newer Ceph releases than the normal distro repository.
\r
225 #ceph_stable_repo_uca: "http://ubuntu-cloud.archive.canonical.com/ubuntu"
\r
226 #ceph_stable_openstack_release_uca: liberty
\r
227 #ceph_stable_release_uca: "{{ansible_lsb.codename}}-updates/{{ceph_stable_openstack_release_uca}}"
\r
232 # Enabled when ceph_repository == 'dev'
\r
234 #ceph_dev_branch: master # development branch you would like to use e.g: master, wip-hack
\r
235 #ceph_dev_sha1: latest # distinct sha1 to use, defaults to 'latest' (as in latest built)
\r
237 #nfs_ganesha_dev: false # use development repos for nfs-ganesha
\r
239 # Set this to choose the version of ceph dev libraries used in the nfs-ganesha packages from shaman
\r
240 # flavors so far include: ceph_master, ceph_jewel, ceph_kraken, ceph_luminous
\r
241 #nfs_ganesha_flavor: "ceph_master"
\r
243 #ceph_iscsi_config_dev: true # special repo for deploying iSCSI gateways
\r
246 # REPOSITORY: CUSTOM
\r
248 # Enabled when ceph_repository == 'custom'
\r
250 # Use a custom repository to install ceph. For RPM, ceph_custom_repo should be
\r
251 # a URL to the .repo file to be installed on the targets. For deb,
\r
252 # ceph_custom_repo should be the URL to the repo base.
\r
254 #ceph_custom_repo: https://server.domain.com/ceph-custom-repo
\r
257 # ORIGIN: LOCAL CEPH INSTALLATION
\r
259 # Enabled when ceph_repository == 'local'
\r
261 # Path to DESTDIR of the ceph install
\r
262 #ceph_installation_dir: "/path/to/ceph_installation/"
\r
263 # Whether or not to use installer script rundep_installer.sh
\r
264 # This script takes in rundep and installs the packages line by line onto the machine
\r
265 # If this is set to false then it is assumed that the machine ceph is being copied onto will already have
\r
266 # all runtime dependencies installed
\r
267 #use_installer: false
\r
268 # Root directory for ceph-ansible
\r
269 #ansible_dir: "/path/to/ceph-ansible"
\r
272 ######################
\r
273 # CEPH CONFIGURATION #
\r
274 ######################
\r
278 # Each cluster requires a unique, consistent filesystem ID. By
\r
279 # default, the playbook generates one for you and stores it in a file
\r
280 # in `fetch_directory`. If you want to customize how the fsid is
\r
281 # generated, you may find it useful to disable fsid generation to
\r
282 # avoid cluttering up your ansible repo. If you set `generate_fsid` to
\r
283 # false, you *must* generate `fsid` in another way.
\r
284 # ACTIVATE THE FSID VARIABLE FOR NON-VAGRANT DEPLOYMENT
\r
285 #fsid: "{{ cluster_uuid.stdout }}"
\r
286 #generate_fsid: true
\r
288 #ceph_conf_key_directory: /etc/ceph
\r
295 #rbd_cache_writethrough_until_flush: "true"
\r
296 #rbd_concurrent_management_ops: 20
\r
298 #rbd_client_directories: true # this will create rbd_client_log_path and rbd_client_admin_socket_path directories with proper permissions
\r
300 # Permissions for the rbd_client_log_path and
\r
301 # rbd_client_admin_socket_path. Depending on your use case for Ceph
\r
302 # you may want to change these values. The default, which is used if
\r
303 # any of the variables are unset or set to a false value (like `null`
\r
304 # or `false`) is to automatically determine what is appropriate for
\r
305 # the Ceph version with non-OpenStack workloads -- ceph:ceph and 0770
\r
306 # for infernalis releases, and root:root and 1777 for pre-infernalis
\r
309 # For other use cases, including running Ceph with OpenStack, you'll
\r
310 # want to set these differently:
\r
312 # For OpenStack on RHEL, you'll want:
\r
313 # rbd_client_directory_owner: "qemu"
\r
314 # rbd_client_directory_group: "libvirtd" (or "libvirt", depending on your version of libvirt)
\r
315 # rbd_client_directory_mode: "0755"
\r
317 # For OpenStack on Ubuntu or Debian, set:
\r
318 # rbd_client_directory_owner: "libvirt-qemu"
\r
319 # rbd_client_directory_group: "kvm"
\r
320 # rbd_client_directory_mode: "0755"
\r
322 # If you set rbd_client_directory_mode, you must use a string (e.g.,
\r
323 # 'rbd_client_directory_mode: "0755"', *not*
\r
324 # 'rbd_client_directory_mode: 0755', or Ansible will complain: mode
\r
325 # must be in octal or symbolic form
\r
326 #rbd_client_directory_owner: null
\r
327 #rbd_client_directory_group: null
\r
328 #rbd_client_directory_mode: null
\r
330 #rbd_client_log_path: /var/log/ceph
\r
331 #rbd_client_log_file: "{{ rbd_client_log_path }}/qemu-guest-$pid.log" # must be writable by QEMU and allowed by SELinux or AppArmor
\r
332 #rbd_client_admin_socket_path: /var/run/ceph # must be writable by QEMU and allowed by SELinux or AppArmor
\r
336 # You must define either monitor_interface, monitor_address or monitor_address_block.
\r
337 # These variables must be defined at least in all.yml and overrided if needed (inventory host file or group_vars/*.yml).
\r
338 # Eg. If you want to specify for each monitor which address the monitor will bind to you can set it in your **inventory host file** by using 'monitor_address' variable.
\r
339 # Preference will go to monitor_address if both monitor_address and monitor_interface are defined.
\r
340 #monitor_interface: "{{ ceph_mon_docker_interface if ceph_mon_docker_interface != 'interface' else 'interface' }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
341 #monitor_address: 0.0.0.0
\r
342 #monitor_address_block: subnet
\r
343 # set to either ipv4 or ipv6, whichever your network is using
\r
345 #mon_use_fqdn: false # if set to true, the MON name used will be the fqdn in the ceph.conf
\r
349 #journal_size: 5120 # OSD journal size in MB
\r
350 #public_network: "{{ ceph_mon_docker_subnet if ceph_mon_docker_subnet != '0.0.0.0/0' else '0.0.0.0/0' }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
351 #cluster_network: "{{ public_network | regex_replace(' ', '') }}"
\r
352 #osd_mkfs_type: xfs
\r
353 #osd_mkfs_options_xfs: -f -i size=2048
\r
354 #osd_mount_options_xfs: noatime,largeio,inode64,swalloc
\r
355 #osd_objectstore: filestore
\r
357 # xattrs. by default, 'filestore xattr use omap' is set to 'true' if
\r
358 # 'osd_mkfs_type' is set to 'ext4'; otherwise it isn't set. This can
\r
359 # be set to 'true' or 'false' to explicitly override those
\r
360 # defaults. Leave it 'null' to use the default for your chosen mkfs
\r
362 #filestore_xattr_use_omap: null
\r
366 #mds_use_fqdn: false # if set to true, the MDS name used will be the fqdn in the ceph.conf
\r
367 #mds_allow_multimds: false
\r
370 ## Rados Gateway options
\r
372 #radosgw_dns_name: your.subdomain.tld # subdomains used by radosgw. See http://ceph.com/docs/master/radosgw/config/#enabling-subdomain-s3-calls
\r
373 #radosgw_resolve_cname: false # enable for radosgw to resolve DNS CNAME based bucket names
\r
374 #radosgw_civetweb_port: 8080
\r
375 #radosgw_civetweb_num_threads: 100
\r
376 # For additional civetweb configuration options available such as SSL, logging,
\r
377 # keepalive, and timeout settings, please see the civetweb docs at
\r
378 # https://github.com/civetweb/civetweb/blob/master/docs/UserManual.md
\r
379 #radosgw_civetweb_options: "num_threads={{ radosgw_civetweb_num_threads }}"
\r
380 # You must define either radosgw_interface, radosgw_address.
\r
381 # These variables must be defined at least in all.yml and overrided if needed (inventory host file or group_vars/*.yml).
\r
382 # 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.
\r
383 # Preference will go to radosgw_address if both radosgw_address and radosgw_interface are defined.
\r
384 #radosgw_interface: interface
\r
385 #radosgw_address: "{{ '0.0.0.0' if rgw_containerized_deployment else 'address' }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
386 #radosgw_address_block: subnet
\r
387 #radosgw_keystone_ssl: false # activate this when using keystone PKI keys
\r
388 # Rados Gateway options
\r
389 #email_address: foo@bar.com
\r
391 ## REST API options
\r
393 #restapi_interface: "{{ monitor_interface }}"
\r
394 #restapi_address: "{{ monitor_address }}"
\r
395 #restapi_port: 5000
\r
398 # enable this mode _only_ when you have a single node
\r
399 # if you don't want it keep the option commented
\r
400 #common_single_host_mode: true
\r
402 ## Handlers - restarting daemons after a config change
\r
403 # if for whatever reasons the content of your ceph configuration changes
\r
404 # ceph daemons will be restarted as well. At the moment, we can not detect
\r
405 # which config option changed so all the daemons will be restarted. Although
\r
406 # this restart will be serialized for each node, in between a health check
\r
407 # will be performed so we make sure we don't move to the next node until
\r
408 # ceph is not healthy
\r
409 # Obviously between the checks (for monitors to be in quorum and for osd's pgs
\r
410 # to be clean) we have to wait. These retries and delays can be configurable
\r
411 # for both monitors and osds.
\r
413 # Monitor handler checks
\r
414 #handler_health_mon_check_retries: 5
\r
415 #handler_health_mon_check_delay: 10
\r
417 # OSD handler checks
\r
418 #handler_health_osd_check_retries: 40
\r
419 #handler_health_osd_check_delay: 30
\r
420 #handler_health_osd_check: true
\r
422 # MDS handler checks
\r
423 #handler_health_mds_check_retries: 5
\r
424 #handler_health_mds_check_delay: 10
\r
426 # RGW handler checks
\r
427 #handler_health_rgw_check_retries: 5
\r
428 #handler_health_rgw_check_delay: 10
\r
430 # NFS handler checks
\r
431 #handler_health_nfs_check_retries: 5
\r
432 #handler_health_nfs_check_delay: 10
\r
434 # RBD MIRROR handler checks
\r
435 #handler_health_rbd_mirror_check_retries: 5
\r
436 #handler_health_rbd_mirror_check_delay: 10
\r
438 # MGR handler checks
\r
439 #handler_health_mgr_check_retries: 5
\r
440 #handler_health_mgr_check_delay: 10
\r
446 # Confiure the type of NFS gatway access. At least one must be enabled for an
\r
447 # NFS role to be useful
\r
449 # Set this to true to enable File access via NFS. Requires an MDS role.
\r
450 #nfs_file_gw: false
\r
451 # Set this to true to enable Object access via NFS. Requires an RGW role.
\r
454 ###################
\r
455 # CONFIG OVERRIDE #
\r
456 ###################
\r
458 # Ceph configuration file override.
\r
459 # This allows you to specify more configuration options
\r
460 # using an INI style format.
\r
461 # The following sections are supported: [global], [mon], [osd], [mds], [rgw]
\r
464 # ceph_conf_overrides:
\r
469 #ceph_conf_overrides: {}
\r
476 #disable_transparent_hugepage: true
\r
478 # - { name: kernel.pid_max, value: 4194303 }
\r
479 # - { name: fs.file-max, value: 26234859 }
\r
480 # - { name: vm.zone_reclaim_mode, value: 0 }
\r
481 # - { name: vm.swappiness, value: 10 }
\r
482 # - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" }
\r
484 # For Debian & Red Hat/CentOS installs set TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES
\r
485 # Set this to a byte value (e.g. 134217728)
\r
486 # A value of 0 will leave the package default.
\r
487 #ceph_tcmalloc_max_total_thread_cache: 0
\r
495 #ceph_docker_image: "ceph/daemon"
\r
496 #ceph_docker_image_tag: latest
\r
497 #ceph_docker_registry: docker.io
\r
498 #ceph_docker_enable_centos_extra_repo: false
\r
499 #ceph_docker_on_openstack: false
\r
500 #ceph_mon_docker_interface: "interface" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
501 #ceph_mon_docker_subnet: "0.0.0.0/0" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
502 #mon_containerized_deployment: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
503 #osd_containerized_deployment: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
504 #mds_containerized_deployment: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
505 #rgw_containerized_deployment: False # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
506 #containerized_deployment: "{{ True if mon_containerized_deployment or osd_containerized_deployment or mds_containerized_deployment or rgw_containerized_deployment else False }}" # backward compatibility with stable-2.2, will disappear in stable 3.1
\r
512 #containerized_deployment_with_kv: false
\r
513 #mon_containerized_default_ceph_conf_with_kv: false
\r
515 #kv_endpoint: 127.0.0.1
\r
519 # this is only here for usage with the rolling_update.yml playbook
\r
520 # do not ever change this here
\r
521 #rolling_update: false
\r
524 #####################
\r
525 # Docker pull retry #
\r
526 #####################
\r
527 #docker_pull_retry: 3
\r
528 #docker_pull_timeout: "300s"
\r