#jinja2: trim_blocks: "true", lstrip_blocks: "true" # {{ ansible_managed }} [global] {% if not cephx %} auth cluster required = none auth service required = none auth client required = none auth supported = none {% endif %} {% if ip_version == 'ipv6' %} ms bind ipv6 = true {% endif %} {% if not containerized_deployment_with_kv and not containerized_deployment %} fsid = {{ fsid }} {% endif %} {% if common_single_host_mode is defined and common_single_host_mode %} osd crush chooseleaf type = 0 {% endif %} {# NOTE (leseb): the blank lines in-between are needed otherwise we won't get any line break #} {% set nb_mon = groups.get(mon_group_name, []) | length | int %} {% set nb_client = groups.get(client_group_name, []) | length | int %} {% set nb_osd = groups.get(osd_group_name, []) | length | int %} {% if nb_mon > 0 and inventory_hostname in groups.get(mon_group_name, []) %} mon initial members = {% for host in groups[mon_group_name] %} {% if hostvars[host]['ansible_fqdn'] is defined and mon_use_fqdn -%} {{ hostvars[host]['ansible_fqdn'] }} {%- elif hostvars[host]['ansible_hostname'] is defined -%} {{ hostvars[host]['ansible_hostname'] }} {%- endif %} {%- if not loop.last %},{% endif %} {% endfor %} {% endif %} {% if not containerized_deployment and not containerized_deployment_with_kv -%} mon host = {% if nb_mon > 0 %} {% for host in groups[mon_group_name] -%} {% if monitor_address_block != 'subnet' %} {% if ip_version == 'ipv4' -%} {{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }}] {%- endif %} {% elif hostvars[host]['monitor_address'] is defined and hostvars[host]['monitor_address'] != '0.0.0.0' -%} {% if ip_version == 'ipv4' -%} {{ hostvars[host]['monitor_address'] }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host]['monitor_address'] }}] {%- endif %} {%- elif hostvars[host]['monitor_interface'] is defined -%} {% set interface = 'ansible_' + (hostvars[host]['monitor_interface'] | replace('-', '_')) %} {% if ip_version == 'ipv4' -%} {{ hostvars[host][interface][ip_version]['address'] }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host][interface][ip_version][0]['address'] }}] {%- endif %} {%- else -%} {% set interface = 'ansible_' + (monitor_interface | replace('-', '_')) %} {% if ip_version == 'ipv4' -%} {{ hostvars[host][interface][ip_version]['address'] }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host][interface][ip_version][0]['address'] }}] {%- endif %} {%- endif %} {% if not loop.last -%},{%- endif %} {%- endfor %} {% elif nb_mon == 0 and inventory_hostname in groups.get(client_group_name, []) %} {{ external_cluster_mon_ips }} {% endif %} {%- endif %} {% if containerized_deployment %} fsid = {{ fsid }} mon host = {% if nb_mon > 0 %} {% for host in groups[mon_group_name] -%} {% if monitor_address_block != 'subnet' %} {% if ip_version == 'ipv4' -%} {{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }}] {%- endif %} {% elif hostvars[host]['monitor_address'] is defined and hostvars[host]['monitor_address'] != '0.0.0.0' -%} {% if ip_version == 'ipv4' -%} {{ hostvars[host]['monitor_address'] }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host]['monitor_address'] }}] {%- endif %} {%- elif hostvars[host]['monitor_interface'] is defined -%} {% set interface = 'ansible_' + (hostvars[host]['monitor_interface'] | replace('-', '_')) %} {% if ip_version == 'ipv4' -%} {{ hostvars[host][interface][ip_version]['address'] }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host][interface][ip_version][0]['address'] }}] {%- endif %} {%- else -%} {% set interface = 'ansible_' + (monitor_interface | replace('-', '_')) %} {% if ip_version == 'ipv4' -%} {{ hostvars[host][interface][ip_version]['address'] }} {%- elif ip_version == 'ipv6' -%} [{{ hostvars[host][interface][ip_version][0]['address'] }}] {%- endif %} {%- endif %} {% if not loop.last -%},{%- endif %} {%- endfor %} {% elif nb_mon == 0 and inventory_hostname in groups.get(client_group_name, []) %} {{ external_cluster_mon_ips }} {% endif %} {% endif %} {% if public_network is defined %} public network = {{ public_network }} {% endif %} {% if cluster_network is defined %} cluster network = {{ cluster_network }} {% endif %} {% if rgw_override_bucket_index_max_shards is defined %} rgw override bucket index max shards = {{ rgw_override_bucket_index_max_shards }} {% endif %} {% if rgw_bucket_default_quota_max_objects is defined %} rgw bucket default quota max objects = {{ rgw_bucket_default_quota_max_objects }} {% endif %} {% if inventory_hostname in groups.get(client_group_name, []) %} [client.libvirt] admin socket = {{ rbd_client_admin_socket_path }}/$cluster-$type.$id.$pid.$cctid.asok # must be writable by QEMU and allowed by SELinux or AppArmor log file = {{ rbd_client_log_file }} # must be writable by QEMU and allowed by SELinux or AppArmor {% endif %} {% if inventory_hostname in groups.get(osd_group_name, []) %} {% if osd_objectstore == 'filestore' %} [osd] osd mkfs type = {{ osd_mkfs_type }} osd mkfs options xfs = {{ osd_mkfs_options_xfs }} osd mount options xfs = {{ osd_mount_options_xfs }} osd journal size = {{ journal_size }} {% if filestore_xattr_use_omap != None %} filestore xattr use omap = {{ filestore_xattr_use_omap }} {% elif osd_mkfs_type == "ext4" %} filestore xattr use omap = true {# else, default is false #} {% endif %} {% endif %} {% endif %} {% if groups[mds_group_name] is defined %} {% if mds_group_name in group_names %} {% if inventory_hostname in groups.get(mds_group_name, []) %} {% for host in groups[mds_group_name] %} {% if hostvars[host]['ansible_fqdn'] is defined and mds_use_fqdn %} [mds.{{ hostvars[host]['ansible_fqdn'] }}] host = {{ hostvars[host]['ansible_fqdn'] }} {% elif hostvars[host]['ansible_hostname'] is defined %} [mds.{{ hostvars[host]['ansible_hostname'] }}] host = {{ hostvars[host]['ansible_hostname'] }} {% endif %} {% endfor %} {% endif %} {% endif %} {% endif %} {% if groups[rgw_group_name] is defined %} {% if rgw_group_name in group_names %} {% if inventory_hostname in groups.get(rgw_group_name, []) %} {% for host in groups[rgw_group_name] %} {% if hostvars[host]['ansible_hostname'] is defined %} [client.rgw.{{ hostvars[host]['ansible_hostname'] }}] host = {{ hostvars[host]['ansible_hostname'] }} keyring = /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ hostvars[host]['ansible_hostname'] }}/keyring log file = /var/log/ceph/{{ cluster }}-rgw-{{ hostvars[host]['ansible_hostname'] }}.log {% if hostvars[host]['radosgw_address_block'] is defined and hostvars[host]['radosgw_address_block'] != 'subnet' %} {% if ip_version == 'ipv4' %} rgw frontends = civetweb port={{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(radosgw_address_block) | first }}:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% elif ip_version == 'ipv6' %} rgw frontends = civetweb port=[{{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(radosgw_address_block) | first }}]:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% endif %} {% elif radosgw_address_block is defined and radosgw_address_block != 'subnet' -%} {% if ip_version == 'ipv4' %} rgw frontends = civetweb port={{ radosgw_address_block | ipaddr(radosgw_address_block) | first }}:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% elif ip_version == 'ipv6' %} rgw frontends = civetweb port=[{{ radosgw_address_block | ipaddr(radosgw_address_block) | first }}]:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% endif %} {% elif hostvars[host]['radosgw_address'] is defined and hostvars[host]['radosgw_address'] != 'address' -%} {% if ip_version == 'ipv4' %} rgw frontends = civetweb port={{ hostvars[host]['radosgw_address'] }}:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% elif ip_version == 'ipv6' %} rgw frontends = civetweb port=[{{ hostvars[host]['radosgw_address'] }}]:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% endif %} {% elif radosgw_address is defined and radosgw_address != 'address' -%} {% if ip_version == 'ipv4' %} rgw frontends = civetweb port={{ radosgw_address }}:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% elif ip_version == 'ipv6' %} rgw frontends = civetweb port=[{{ radosgw_address }}]:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% endif %} {% elif hostvars[host]['radosgw_interface'] is defined -%} {% set interface='ansible_' + (hostvars[host]['radosgw_interface'] | replace('-', '_')) %} {% if ip_version == 'ipv4' %} rgw frontends = civetweb port={{ hostvars[host][interface][ip_version]['address'] }}:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% elif ip_version == 'ipv6' %} rgw frontends = civetweb port=[{{ hostvars[host][interface][ip_version][0]['address'] }}]:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% endif %} {% else %} {% set interface='ansible_' + (radosgw_interface | replace('-', '_')) %} {% if ip_version == 'ipv4' %} rgw frontends = civetweb port={{ hostvars[host][interface][ip_version]['address'] }}:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% elif ip_version == 'ipv6' %} rgw frontends = civetweb port=[{{ hostvars[host][interface][ip_version][0]['address'] }}]:{{ radosgw_civetweb_port }} {{ radosgw_civetweb_options }} {% endif %} {% endif %} {% endif %} {% endfor %} {% endif %} {% endif %} {% endif %} {% if groups[nfs_group_name] is defined %} {% if nfs_group_name in group_names %} {% if inventory_hostname in groups.get(nfs_group_name, []) and inventory_hostname not in groups.get(rgw_group_name, []) %} {% for host in groups[nfs_group_name] %} {% if nfs_obj_gw %} {% if hostvars[host]['ansible_hostname'] is defined %} [client.rgw.{{ hostvars[host]['ansible_hostname'] }}] host = {{ hostvars[host]['ansible_hostname'] }} keyring = /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ hostvars[host]['ansible_hostname'] }}/keyring log file = /var/log/ceph/{{ cluster }}-rgw-{{ hostvars[host]['ansible_hostname'] }}.log {% endif %} {% endif %} {% endfor %} {% endif %} {% endif %} {% endif %} {% if groups[restapi_group_name] is defined %} {% if restapi_group_name in group_names %} {% if inventory_hostname in groups.get(restapi_group_name, []) %} [client.restapi] {% if restapi_interface != "interface" %} {% include 'client_restapi_interface.j2' %} {% else %} {% include 'client_restapi_address.j2' %} {% endif %} keyring = /var/lib/ceph/restapi/ceph-restapi/keyring log file = /var/log/ceph/ceph-restapi.log {% endif %} {% endif %} {% endif %}