Generate group_vars samples automagically

This adds a script, generate_group_vars_sample.sh, that generates
group_vars/*.sample from roles/ceph-*/defaults/main.yml to avoid
discrepancies between the sets of files. It also converts the line
endings in the various main.yml from DOS to Unix, since generating the
samples was spreading the line ending plague around to more files.
pull/580/head
Chris St. Pierre 2016-02-29 09:35:07 -06:00
parent f9c3159e0d
commit c4a9b1020f
13 changed files with 827 additions and 713 deletions

View File

@ -0,0 +1,38 @@
#!/bin/bash
set -euo pipefail
basedir=$(dirname "$0")
for role in "$basedir"/roles/ceph-*; do
rolename=$(basename "$role")
if [[ $rolename == "ceph-common" ]]; then
output="all.sample"
elif [[ $rolename == "ceph-agent" ]]; then
output="agent.sample"
elif [[ $rolename == "ceph-fetch-keys" ]]; then
continue
else
output="${rolename:5}s.sample"
fi
cat <<EOF > "$basedir"/group_vars/"$output"
---
# Variables here are applicable to all host groups NOT roles
# This sample file generated by $(basename "$0")
# Dummy variable to avoid error because ansible does not recognize the
# file as a good configuration file when no variable in it.
dummy:
EOF
defaults="$role"/defaults/main.yml
if [[ ! -f $defaults ]]; then
continue
fi
sed '/^---/d; s/^\([A-Za-z[:space:]].\+\)/#\1/' \
"$defaults" >> "$basedir"/group_vars/"$output"
echo >> "$basedir"/group_vars/"$output"
done

View File

@ -1,12 +1,19 @@
--- ---
# You can override vars by using host or group vars
# Variables here are applicable to all host groups NOT roles # Variables here are applicable to all host groups NOT roles
# Dummy variable to avoid error because ansible does not recognize the file as a good configuration file when no variable in it. # 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: dummy:
# You can override vars by using host or group vars
########### ###########
# GENERAL # # GENERAL #
########### ###########
# The agent needs an agent_master_host variable defined so that it can connect
# and push information back to it
#agent_master_host: "localhost" #agent_master_host: "localhost"

View File

@ -1,18 +1,23 @@
--- ---
# Variables here are applicable to all host groups NOT roles # Variables here are applicable to all host groups NOT roles
# Dummy variable to avoid error because ansible does not recognize the file as a good configuration file when no variable in it. # 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: dummy:
# You can override vars by using host or group vars
########### ###########
# GENERAL # # GENERAL #
########### ###########
#fetch_directory: fetch/ #fetch_directory: fetch/
######### ###########
# INSTALL # INSTALL #
######### ###########
#mon_group_name: mons #mon_group_name: mons
#osd_group_name: osds #osd_group_name: osds
@ -54,6 +59,7 @@ dummy:
# #
#ceph_use_distro_backports: false # DEBIAN ONLY #ceph_use_distro_backports: false # DEBIAN ONLY
# STABLE # STABLE
######## ########
@ -72,7 +78,7 @@ dummy:
# - firefly # - firefly
# - giant # - giant
# - hammer # - hammer
#
# Use the option below to specify your applicable package tree, eg. when using non-LTS Ubuntu versions # 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://ceph.com/debian-{{ ceph_stable_release }}/dists/ # # for a list of available Debian distributions, visit http://ceph.com/debian-{{ ceph_stable_release }}/dists/
# for more info read: https://github.com/ceph/ceph-ansible/issues/305 # for more info read: https://github.com/ceph/ceph-ansible/issues/305
@ -85,6 +91,9 @@ dummy:
# ENTERPRISE VERSION ICE (old, prior to the 1.3) # ENTERPRISE VERSION ICE (old, prior to the 1.3)
#ceph_stable_ice: false # use Inktank Ceph Enterprise #ceph_stable_ice: false # use Inktank Ceph Enterprise
#ceph_stable_ice_url: https://download.inktank.com/enterprise #ceph_stable_ice_url: https://download.inktank.com/enterprise
# these two variables are used in `with_items` and starting
# with ansible 2.0 these need to be defined even if the tasks's
# `when` clause doesn't evaluate to true
#ceph_stable_ice_temp_path: /opt/ICE/ceph-repo/ #ceph_stable_ice_temp_path: /opt/ICE/ceph-repo/
#ceph_stable_ice_kmod: 3.10-0.1.20140702gitdc9ac62.el7.x86_64 #ceph_stable_ice_kmod: 3.10-0.1.20140702gitdc9ac62.el7.x86_64
#ceph_stable_ice_distro: rhel7 # Please check the download website for the supported versions. #ceph_stable_ice_distro: rhel7 # Please check the download website for the supported versions.
@ -124,9 +133,10 @@ dummy:
# For rhel, please pay attention to the versions: 'rhel6 3' or 'rhel 4', the fullname is _very_ important. # For rhel, please pay attention to the versions: 'rhel6 3' or 'rhel 4', the fullname is _very_ important.
#ceph_dev_redhat_distro: centos7 #ceph_dev_redhat_distro: centos7
###############
# CONFIGURATION ######################
############### # CEPH CONFIGURATION #
######################
## Ceph options ## Ceph options
# #
@ -140,11 +150,21 @@ dummy:
#generate_fsid: true #generate_fsid: true
#cephx: true #cephx: true
#cephx_require_signatures: true # Kernel RBD does NOT support signatures! #cephx_require_signatures: true # Kernel RBD does NOT support signatures for Kernels < 3.18!
#cephx_cluster_require_signatures: true #cephx_cluster_require_signatures: true
#cephx_service_require_signatures: false #cephx_service_require_signatures: false
#max_open_files: 131072 #max_open_files: 131072
#disable_in_memory_logs: true #disable_in_memory_logs: true # set this to false while enabling the options below
# Debug logs
#enable_debug_global: false
#debug_global_level: 20
#enable_debug_mon: false
#debug_mon_level: 20
#enable_debug_osd: false
#debug_osd_level: 20
#enable_debug_mds: false
#debug_mds_level: 20
## Client options ## Client options
# #
@ -154,7 +174,7 @@ dummy:
#rbd_client_directories: false # this will create rbd_client_log_path and rbd_client_admin_socket_path directories with proper permissions, this WON'T work if libvirt and kvm are installed #rbd_client_directories: false # this will create rbd_client_log_path and rbd_client_admin_socket_path directories with proper permissions, this WON'T work if libvirt and kvm are installed
#rbd_client_log_file: /var/log/rbd-clients/qemu-guest-$pid.log # must be writable by QEMU and allowed by SELinux or AppArmor #rbd_client_log_file: /var/log/rbd-clients/qemu-guest-$pid.log # must be writable by QEMU and allowed by SELinux or AppArmor
#rbd_client_log_path: /var/log/rbd-clients/ #rbd_client_log_path: /var/log/rbd-clients/
#rbd_client_admin_socket_path: /var/run/ceph/rbd-clients/ #rbd_client_admin_socket_path: /var/run/ceph/rbd-clients # must be writable by QEMU and allowed by SELinux or AppArmor
#rbd_default_features: 3 #rbd_default_features: 3
#rbd_default_map_options: rw #rbd_default_map_options: rw
#rbd_default_format: 2 #rbd_default_format: 2
@ -162,7 +182,6 @@ dummy:
## Monitor options ## Monitor options
# #
#monitor_interface: interface #monitor_interface: interface
#monitor_secret: "{{ monitor_keyring.stdout }}"
#mon_osd_down_out_interval: 600 #mon_osd_down_out_interval: 600
#mon_osd_min_down_reporters: 7 # number of OSDs per host + 1 #mon_osd_min_down_reporters: 7 # number of OSDs per host + 1
#mon_clock_drift_allowed: .15 #mon_clock_drift_allowed: .15
@ -182,15 +201,16 @@ dummy:
#pool_default_size: 2 #pool_default_size: 2
#pool_default_min_size: 1 #pool_default_min_size: 1
#public_network: 0.0.0.0/0 #public_network: 0.0.0.0/0
#cluster_network: {{ public_network }} #cluster_network: "{{ public_network }}"
#osd_mkfs_type: xfs #osd_mkfs_type: xfs
#osd_mkfs_options_xfs: -f -i size=2048 #osd_mkfs_options_xfs: -f -i size=2048
#osd_mount_options_xfs: noatime #osd_mount_options_xfs: noatime,largeio,inode64,swalloc
#osd_mon_heartbeat_interval: 30 #osd_mon_heartbeat_interval: 30
# CRUSH # CRUSH
#pool_default_crush_rule: 0 #pool_default_crush_rule: 0
#osd_crush_update_on_start: "true" #osd_crush_update_on_start: "true"
# Object backend # Object backend
#osd_objectstore: filestore #osd_objectstore: filestore
@ -199,7 +219,7 @@ dummy:
# be set to 'true' or 'false' to explicitly override those # be set to 'true' or 'false' to explicitly override those
# defaults. Leave it 'null' to use the default for your chosen mkfs # defaults. Leave it 'null' to use the default for your chosen mkfs
# type. # type.
# filestore_xattr_use_omap: null #filestore_xattr_use_omap: null
# Performance tuning # Performance tuning
#filestore_merge_threshold: 40 #filestore_merge_threshold: 40
@ -228,11 +248,11 @@ dummy:
#osd_scrub_chunk_max: 5 #osd_scrub_chunk_max: 5
#osd_deep_scrub_stride: 1048576 #osd_deep_scrub_stride: 1048576
# Rados Gateway options ## Rados Gateway options
# #
#radosgw_dns_name: your.subdomain.tld # subdomains used by radosgw. See http://ceph.com/docs/master/radosgw/config/#enabling-subdomain-s3-calls #radosgw_dns_name: your.subdomain.tld # subdomains used by radosgw. See http://ceph.com/docs/master/radosgw/config/#enabling-subdomain-s3-calls
#radosgw_frontend: civetweb # supported options are 'apache' or 'civetweb', also edit roles/ceph-rgw/defaults/main.yml #radosgw_frontend: civetweb # supported options are 'apache' or 'civetweb', also edit roles/ceph-rgw/defaults/main.yml
#radosgw_civetweb_port: 8080 #radosgw_civetweb_port: 8080 # on Infernalis we get: "set_ports_option: cannot bind to 80: 13 (Permission denied)"
#radosgw_keystone: false # activate OpenStack Keystone options full detail here: http://ceph.com/docs/master/radosgw/keystone/ #radosgw_keystone: false # activate OpenStack Keystone options full detail here: http://ceph.com/docs/master/radosgw/keystone/
#radosgw_keystone_url: # url:admin_port ie: http://192.168.0.1:35357 #radosgw_keystone_url: # url:admin_port ie: http://192.168.0.1:35357
#radosgw_keystone_admin_token: password #radosgw_keystone_admin_token: password
@ -253,7 +273,7 @@ dummy:
#restapi_interface: "{{ monitor_interface }}" #restapi_interface: "{{ monitor_interface }}"
#restapi_port: 5000 #restapi_port: 5000
#restapi_base_url: /api/v0.1 #restapi_base_url: /api/v0.1
#restapi_log_level: warning #restapi_log_level: warning # available level are: critical, error, warning, info, debug
## Testing mode ## Testing mode
# enable this mode _only_ when you have a single node # enable this mode _only_ when you have a single node
@ -291,3 +311,11 @@ dummy:
# - { name: vm.zone_reclaim_mode, value: 0 } # - { name: vm.zone_reclaim_mode, value: 0 }
# - { name: vm.vfs_cache_pressure, value: 50 } # - { name: vm.vfs_cache_pressure, value: 50 }
# - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" } # - { name: vm.min_free_kbytes, value: "{{ vm_min_free_kbytes }}" }
##########
# DOCKER #
##########
#docker: false

View File

@ -1,20 +1,28 @@
--- ---
# 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: dummy:
# You can override vars by using host or group vars
########### ###########
# GENERAL # # GENERAL #
########### ###########
#cephx: true
#fetch_directory: fetch/ #fetch_directory: fetch/
# Even though MDS nodes should not have the admin key # Even though MDS nodes should not have the admin key
# at their disposal, some people might want to have it # at their disposal, some people might want to have it
# distributed on MDS nodes. Setting 'copy_admin_key' to 'true' # distributed on MDS nodes. Setting 'copy_admin_key' to 'true'
# will copy the admin key to the /etc/ceph/ directory # will copy the admin key to the /etc/ceph/ directory
# copy_admin_key: false #copy_admin_key: false
#cephx: true
########## ##########
# DOCKER # # DOCKER #
@ -24,3 +32,4 @@ dummy:
#ceph_mds_docker_username: ceph #ceph_mds_docker_username: ceph
#ceph_mds_docker_imagename: daemon #ceph_mds_docker_imagename: daemon
#ceph_mds_docker_extra_env: "MDS_NAME={{ ansible_hostname }}" # comma separated variables #ceph_mds_docker_extra_env: "MDS_NAME={{ ansible_hostname }}" # comma separated variables

View File

@ -1,14 +1,22 @@
--- ---
# You can override vars by using host or group vars
# Variables here are applicable to all host groups NOT roles # Variables here are applicable to all host groups NOT roles
# Dummy variable to avoid error because ansible does not recognize the file as a good configuration file when no variable in it. # 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: dummy:
# You can override vars by using host or group vars
########### ###########
# GENERAL # # GENERAL #
########### ###########
#fetch_directory: fetch/
#mon_group_name: mons
# ACTIVATE BOTH FSID AND MONITOR_SECRET VARIABLES FOR NON-VAGRANT DEPLOYMENT # ACTIVATE BOTH FSID AND MONITOR_SECRET VARIABLES FOR NON-VAGRANT DEPLOYMENT
#fsid: "{{ cluster_uuid.stdout }}" #fsid: "{{ cluster_uuid.stdout }}"
#monitor_secret: "{{ monitor_keyring.stdout }}" #monitor_secret: "{{ monitor_keyring.stdout }}"
@ -31,33 +39,39 @@ dummy:
# - nopgchange # - nopgchange
# - nodelete # - nodelete
# - nosizechange # - nosizechange
#
#fetch_directory: fetch/
############# #############
# OPENSTACK # # OPENSTACK #
############# #############
#openstack_config: false #openstack_config: false
#openstack_glance_pool: images #openstack_glance_pool:
#openstack_cinder_pool: volumes # name: images
#openstack_nova_pool: vms # pg_num: "{{ pool_default_pg_num }}"
#openstack_cinder_backup_pool: backups #openstack_cinder_pool:
# # name: volumes
#openstack_keys: # pg_num: "{{ pool_default_pg_num }}"
# - { name: client.glance, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ openstack_glance_pool }}'" } #openstack_nova_pool:
# - { name: client.cinder, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ openstack_cinder_pool }}, allow rwx pool={{ openstack_nova_pool }}, allow rx pool={{ openstack_glance_pool }}'" } # name: vms
# - { name: client.cinder-backup, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ openstack_cinder_backup_pool }}'" } # pg_num: "{{ pool_default_pg_num }}"
#openstack_cinder_backup_pool:
# name: backups
# pg_num: "{{ pool_default_pg_num }}"
#openstack_keys:
# - { name: client.glance, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ openstack_glance_pool.name }}'" }
# - { name: client.cinder, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ openstack_cinder_pool.name }}, allow rwx pool={{ openstack_nova_pool.name }}, allow rx pool={{ openstack_glance_pool.name }}'" }
# - { name: client.cinder-backup, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool={{ openstack_cinder_backup_pool.name }}'" }
########## ##########
# DOCKER # # DOCKER #
########## ##########
#mon_containerized_deployment: false #mon_containerized_deployment: false
#ceph_mon_docker_username: ceph
#ceph_mon_docker_imagename: "daemon"
#ceph_mon_docker_interface: eth0 #ceph_mon_docker_interface: eth0
#ceph_mon_docker_subnet: # subnet of the ceph_mon_docker_interface #ceph_mon_docker_subnet: # subnet of the ceph_mon_docker_interface
#ceph_mon_docker_username: ceph
#ceph_mon_docker_imagename: daemon
#ceph_mon_extra_envs: "MON_NAME={{ ansible_hostname }}" # comma separated variables #ceph_mon_extra_envs: "MON_NAME={{ ansible_hostname }}" # comma separated variables

View File

@ -1,10 +1,15 @@
--- ---
# Variables here are applicable to all host groups NOT roles # Variables here are applicable to all host groups NOT roles
#
# Dummy variable to avoid error because ansible does not recognize the file as a good configuration file when no variable in it. # 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: dummy:
# You can override default vars defined in defaults/main.yml here,
# but I would advice to use host or group vars instead
########### ###########
# GENERAL # # GENERAL #
########### ###########
@ -32,13 +37,15 @@ dummy:
# [osds] # [osds]
# osd0 ceph_crush_root=foo ceph_crush_rack=bar # osd0 ceph_crush_root=foo ceph_crush_rack=bar
crush_location: false #crush_location: false
osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host={{ ansible_hostname }}'" #osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host={{ ansible_hostname }}'"
############## ##############
# CEPH OPTIONS # CEPH OPTIONS
############## ##############
# ACTIVATE THE FSID VARIABLE FOR NON-VAGRANT DEPLOYMENT
#fsid: "{{ cluster_uuid.stdout }}"
#cephx: true #cephx: true
# Devices to be used as OSDs # Devices to be used as OSDs
@ -60,8 +67,6 @@ osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host
#devices: #devices:
# - /dev/sdb # - /dev/sdb
# - /dev/sdc # - /dev/sdc
# - /dev/sdd
# - /dev/sde
# Device discovery is based on the Ansible fact 'ansible_devices' # Device discovery is based on the Ansible fact 'ansible_devices'
# which reports all the devices on a system. If chosen all the disks # which reports all the devices on a system. If chosen all the disks
@ -102,7 +107,7 @@ osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host
# - /dev/sdb # - /dev/sdb
# - /dev/sdc # - /dev/sdc
# - /dev/sdc # - /dev/sdc
#
# IV. Fourth scenario: use directory instead of disk for OSDs # IV. Fourth scenario: use directory instead of disk for OSDs
# Use 'true' to enable this scenario # Use 'true' to enable this scenario
@ -111,8 +116,6 @@ osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host
#osd_directories: #osd_directories:
# - /var/lib/ceph/osd/mydir1 # - /var/lib/ceph/osd/mydir1
# - /var/lib/ceph/osd/mydir2 # - /var/lib/ceph/osd/mydir2
# - /var/lib/ceph/osd/mydir3
# - /var/lib/ceph/osd/mydir4
########## ##########
@ -125,3 +128,4 @@ osd_crush_location: "'root={{ ceph_crush_root }} rack={{ ceph_crush_rack }} host
#ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables #ceph_osd_docker_extra_env: "CEPH_DAEMON=OSD_CEPH_DISK" # comma separated variables
#ceph_osd_docker_devices: #ceph_osd_docker_devices:
# - /dev/sdb # - /dev/sdb

View File

@ -1,9 +1,13 @@
--- ---
# Variables here are applicable to all host groups NOT roles # Variables here are applicable to all host groups NOT roles
# Dummy variable to avoid error because ansible does not recognize the file as a good configuration file when no variable in it. # 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: dummy:
########### ###########
# GENERAL # # GENERAL #
########### ###########
@ -20,3 +24,4 @@ dummy:
#ceph_restapi_docker_username: ceph #ceph_restapi_docker_username: ceph
#ceph_restapi_docker_imagename: daemon #ceph_restapi_docker_imagename: daemon
#ceph_restapi_docker_extra_env: "RESTAPI_IP=0.0.0.0" # comma separated variables #ceph_restapi_docker_extra_env: "RESTAPI_IP=0.0.0.0" # comma separated variables

View File

@ -1,33 +1,42 @@
--- ---
# 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: dummy:
# You can override vars by using host or group vars
########### ###########
# GENERAL # # GENERAL #
########### ###########
## Ceph options #fetch_directory: fetch/
#
#cephx: true
# Even though RGW nodes should not have the admin key # Even though RGW nodes should not have the admin key
# at their disposal, some people might want to have it # at their disposal, some people might want to have it
# distributed on RGW nodes. Setting 'copy_admin_key' to 'true' # distributed on RGW nodes. Setting 'copy_admin_key' to 'true'
# will copy the admin key to the /etc/ceph/ directory # will copy the admin key to the /etc/ceph/ directory
# copy_admin_key: false #copy_admin_key: false
## Ceph options
#
#cephx: true
# Used for the sudo exception while starting the radosgw process # Used for the sudo exception while starting the radosgw process
# a new entry /etc/sudoers.d/ceph will be created # a new entry /etc/sudoers.d/ceph will be created
# allowing root to not require tty # allowing root to not require tty
#radosgw_user: root #radosgw_user: root
#fetch_directory: fetch/
########## ##########
# DOCKER # # DOCKER #
########## ##########
#rgw_containerized_deployment: false #rgw_containerized_deployment: false
#ceph_rgw_civetweb_port: 80
#ceph_rgw_docker_username: ceph #ceph_rgw_docker_username: ceph
#ceph_rgw_docker_imagename: daemon #ceph_rgw_docker_imagename: daemon
#ceph_rgw_civetweb_port: 80
#ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables #ceph_rgw_docker_extra_env: "RGW_CIVETWEB_PORT={{ ceph_rgw_civetweb_port }}" # comma separated variables