if DOCKER then
ansible.extra_vars = ansible.extra_vars.merge({
containerized_deployment: 'true',
- monitor_interface: ETH,
ceph_mon_docker_subnet: ansible.extra_vars[:public_network],
devices: settings['disks'],
radosgw_interface: ETH,
else
ansible.extra_vars = ansible.extra_vars.merge({
devices: settings['disks'],
- monitor_interface: ETH,
radosgw_interface: ETH,
os_tuning_params: settings['os_tuning_params'],
})
if BOX == 'linode' then
ansible.sudo = true
- # Use monitor_address_block instead of monitor_interface:
- ansible.extra_vars.delete(:monitor_interface)
# Use radosgw_address_block instead of radosgw_interface:
ansible.extra_vars.delete(:radosgw_interface)
ansible.extra_vars = ansible.extra_vars.merge({
ceph_repository: community
public_network: "192.168.3.0/24"
cluster_network: "192.168.4.0/24"
- monitor_interface: eth1
devices:
- '/dev/sda'
- '/dev/sdb'
- ``ceph_origin``
- ``public_network``
-- ``monitor_interface`` or ``monitor_address``
When deploying RGW instance(s) you are required to set the ``radosgw_interface`` or ``radosgw_address`` config option.
The ``hosts`` file should contain the hosts needed for the scenario. This might
seem a bit repetitive since machines are already defined in
:ref:`vagrant_variables` but it allows granular changes to hosts (for example
-defining an interface vs. an IP on a monitor) which can help catch issues in
+defining different public_network values between monitors) which can help catch issues in
``ceph-ansible`` configuration. For example:
.. code-block:: ini
[mons]
- mon0 monitor_address=192.168.5.10
- mon1 monitor_address=192.168.5.11
- mon2 monitor_interface=eth1
+ mon0 public_network=192.168.1.0/24
+ mon1 public_network=192.168.2.0/24
+ mon2 public_network=192.168.3.0/24
.. _group_vars:
#rbd_client_admin_socket_path: /var/run/ceph # must be writable by QEMU and allowed by SELinux or AppArmor
## Monitor options
-#
-# You must define either monitor_interface, monitor_address or monitor_address_block.
-# 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 monitor which address the monitor will bind to you can set it in your **inventory host file** by using 'monitor_address' variable.
-# Preference will go to monitor_address if both monitor_address and monitor_interface are defined.
-#monitor_interface: interface
-#monitor_address: x.x.x.x
-#monitor_address_block: subnet
# set to either ipv4 or ipv6, whichever your network is using
#ip_version: ipv4
# - --default-mon-cluster-log-to-stderr=true
# - -i={{ monitor_name }}
# - --mon-data=/var/lib/ceph/mon/{{ cluster }}-{{ monitor_name }}
-# - --public-addr={{ _current_monitor_address }}
+# - --public-addr={{ _monitor_addresses[inventory_hostname] }}
# - --mon-initial-members={{ groups[mon_group_name] | join(',') }}
run_once: true
when: groups[mgr_group_name] is undefined or groups[mgr_group_name] | length == 0
- - name: Validate monitor network configuration
- ansible.builtin.fail:
- msg: "Either monitor_address, monitor_address_block or monitor_interface must be provided"
- when:
- - mon_group_name in group_names
- - monitor_address == 'x.x.x.x'
- - monitor_address_block == 'subnet'
- - monitor_interface == 'interface'
-
- name: Validate dashboard configuration
when: dashboard_enabled | bool
run_once: true
- name: Bootstrap the new cluster
cephadm_bootstrap:
- mon_ip: "{{ _current_monitor_address }}"
+ mon_ip: "{{ _monitor_addresses[inventory_hostname] }}"
image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
docker: "{{ true if container_binary == 'docker' else false }}"
pull: false
delegate_facts: true
- name: Non container | waiting for the monitor to join the quorum...
- ansible.builtin.command: ceph --cluster "{{ cluster }}" -m "{{ hostvars[groups[mon_group_name][0]]['_current_monitor_address'] }}" quorum_status --format json
+ ansible.builtin.command: ceph --cluster "{{ cluster }}" -m "{{ _monitor_addresses[groups['mons'][0]] }}" quorum_status --format json
register: ceph_health_raw
until:
- ceph_health_raw.rc == 0
- name: Container | waiting for the containerized monitor to join the quorum...
ansible.builtin.command: >
- {{ container_binary }} exec ceph-mon-{{ ansible_facts['hostname'] }} ceph --cluster "{{ cluster }}" -m "{{ hostvars[groups[mon_group_name][0]]['_current_monitor_address'] }}" quorum_status --format json
+ {{ container_binary }} exec ceph-mon-{{ ansible_facts['hostname'] }} ceph --cluster "{{ cluster }}" -m "{{ _monitor_addresses[groups['mons'][0]] }}" quorum_status --format json
register: ceph_health_raw
until:
- ceph_health_raw.rc == 0
fsid = {{ fsid }}
mon host = {% if nb_mon > 0 %}
-{% for host in _monitor_addresses -%}
+{% for name, addr in _monitor_addresses.items() -%}
{% if mon_host_v1.enabled | bool %}
-{% set _v1 = ',v1:' + host.addr + mon_host_v1.suffix %}
+{% set _v1 = ',v1:' + addr + mon_host_v1.suffix %}
{% endif %}
-[{{ "v2:" + host.addr + mon_host_v2.suffix }}{{ _v1 | default('') }}]
+[{{ "v2:" + addr + mon_host_v2.suffix }}{{ _v1 | default('') }}]
{%- if not loop.last -%},{%- endif %}
{%- endfor %}
{% elif nb_mon == 0 %}
rbd_client_admin_socket_path: /var/run/ceph # must be writable by QEMU and allowed by SELinux or AppArmor
## Monitor options
-#
-# You must define either monitor_interface, monitor_address or monitor_address_block.
-# 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 monitor which address the monitor will bind to you can set it in your **inventory host file** by using 'monitor_address' variable.
-# Preference will go to monitor_address if both monitor_address and monitor_interface are defined.
-monitor_interface: interface
-monitor_address: x.x.x.x
-monitor_address_block: subnet
# set to either ipv4 or ipv6, whichever your network is using
ip_version: ipv4
---
-- name: Set_fact _monitor_addresses to monitor_address_block ipv4
+- name: Set_fact _monitor_addresses - ipv4
ansible.builtin.set_fact:
- _monitor_addresses: "{{ _monitor_addresses | default([]) + [{'name': item, 'addr': hostvars[item]['ansible_facts']['all_ipv4_addresses'] | ips_in_ranges(hostvars[item]['monitor_address_block'].split(',')) | first}] }}"
+ _monitor_addresses: "{{ _monitor_addresses | default({}) | combine({item: hostvars[item]['ansible_facts']['all_ipv4_addresses'] | ips_in_ranges(hostvars[item]['public_network'].split(',')) | first}) }}"
with_items: "{{ groups.get(mon_group_name, []) }}"
when:
- - "item not in _monitor_addresses | default([]) | selectattr('name', 'defined') | map(attribute='name') | list"
- - hostvars[item]['monitor_address_block'] is defined
- - hostvars[item]['monitor_address_block'] != 'subnet'
- ip_version == 'ipv4'
-- name: Set_fact _monitor_addresses to monitor_address_block ipv6
+- name: Set_fact _monitor_addresses - ipv6
ansible.builtin.set_fact:
- _monitor_addresses: "{{ _monitor_addresses | default([]) + [{'name': item, 'addr': hostvars[item]['ansible_facts']['all_ipv6_addresses'] | ips_in_ranges(hostvars[item]['monitor_address_block'].split(',')) | last | ansible.utils.ipwrap}] }}"
+ _monitor_addresses: "{{ _monitor_addresses | default({}) | combine({item: hostvars[item]['ansible_facts']['all_ipv6_addresses'] | ips_in_ranges(hostvars[item]['public_network'].split(',')) | last | ansible.utils.ipwrap}) }}"
with_items: "{{ groups.get(mon_group_name, []) }}"
when:
- - "item not in _monitor_addresses | default([]) | selectattr('name', 'defined') | map(attribute='name') | list"
- - hostvars[item]['monitor_address_block'] is defined
- - hostvars[item]['monitor_address_block'] != 'subnet'
- ip_version == 'ipv6'
-
-- name: Set_fact _monitor_addresses to monitor_address
- ansible.builtin.set_fact:
- _monitor_addresses: "{{ _monitor_addresses | default([]) + [{'name': item, 'addr': hostvars[item]['monitor_address'] | ansible.utils.ipwrap}] }}"
- with_items: "{{ groups.get(mon_group_name, []) }}"
- when:
- - "item not in _monitor_addresses | default([]) | selectattr('name', 'defined') | map(attribute='name') | list"
- - hostvars[item]['monitor_address'] is defined
- - hostvars[item]['monitor_address'] != 'x.x.x.x'
-
-- name: Set_fact _monitor_addresses to monitor_interface - ipv4
- ansible.builtin.set_fact:
- _monitor_addresses: "{{ _monitor_addresses | default([]) + [{'name': item, 'addr': hostvars[item]['ansible_facts'][(hostvars[item]['monitor_interface'] | replace('-', '_'))][ip_version]['address'] | ansible.utils.ipwrap}] }}"
- with_items: "{{ groups.get(mon_group_name, []) }}"
- when:
- - "item not in _monitor_addresses | default([]) | selectattr('name', 'defined') | map(attribute='name') | list"
- - ip_version == 'ipv4'
- - hostvars[item]['monitor_address_block'] | default('subnet') == 'subnet'
- - hostvars[item]['monitor_address'] | default('x.x.x.x') == 'x.x.x.x'
- - hostvars[item]['monitor_interface'] | default('interface') != 'interface'
-
-- name: Set_fact _monitor_addresses to monitor_interface - ipv6
- ansible.builtin.set_fact:
- _monitor_addresses: "{{ _monitor_addresses | default([]) + [{'name': item, 'addr': hostvars[item]['ansible_facts'][(hostvars[item]['monitor_interface'] | replace('-', '_'))][ip_version][0]['address'] | ansible.utils.ipwrap}] }}"
- with_items: "{{ groups.get(mon_group_name, []) }}"
- when:
- - "item not in _monitor_addresses | default([]) | selectattr('name', 'defined') | map(attribute='name') | list"
- - ip_version == 'ipv6'
- - hostvars[item]['monitor_address_block'] | default('subnet') == 'subnet'
- - hostvars[item]['monitor_address'] | default('x.x.x.x') == 'x.x.x.x'
- - hostvars[item]['monitor_interface'] | default('interface') != 'interface'
-
-- name: Set_fact _current_monitor_address
- ansible.builtin.set_fact:
- _current_monitor_address: "{{ item.addr }}"
- with_items: "{{ _monitor_addresses }}"
- when:
- - (inventory_hostname == item.name and not rolling_update | default(False) | bool)
- or (rolling_update | default(False) | bool and item.name == groups.get(mon_group_name, [])[0])
- --default-mon-cluster-log-to-stderr=true
- -i={{ monitor_name }}
- --mon-data=/var/lib/ceph/mon/{{ cluster }}-{{ monitor_name }}
- - --public-addr={{ _current_monitor_address }}
+ - --public-addr={{ _monitor_addresses[inventory_hostname] }}
- --mon-initial-members={{ groups[mon_group_name] | map('extract', hostvars, 'ansible_facts') | map(attribute='hostname') | join(',') }}
ansible.builtin.command: >
{{ ceph_monmaptool_cmd }}
--create
- {% for host in _monitor_addresses -%}
+ {% for name, addr in _monitor_addresses.items() -%}
--addv
- {{ host.name }}
+ {{ hostvars[name]['ansible_facts']['hostname'] }}
{% if mon_host_v1.enabled | bool %}
- {% set _v1 = ',v1:' + host.addr + mon_host_v1.suffix %}
+ {% set _v1 = ',v1:' + addr + mon_host_v1.suffix %}
{% endif %}
- [{{ "v2:" + host.addr + mon_host_v2.suffix }}{{ _v1 | default('') }}]
+ [{{ "v2:" + addr + mon_host_v2.suffix }}{{ _v1 | default('') }}]
{# {%- if not loop.last -%},{%- endif %} #}
{%- endfor %}
--enable-all-features
+++ /dev/null
----
-- name: Check if network interface exists
- ansible.builtin.fail:
- msg: "{{ monitor_interface }} does not exist on {{ inventory_hostname }}"
- when: monitor_interface not in ansible_facts['interfaces']
-
-- name: Check if network interface is active
- ansible.builtin.fail:
- msg: "{{ monitor_interface }} is not active on {{ inventory_hostname }}"
- when: not hostvars[inventory_hostname]['ansible_facts'][(monitor_interface | replace('-', '_'))]['active']
-
-- name: Check if network interface has an IPv4 address
- ansible.builtin.fail:
- msg: "{{ monitor_interface }} does not have any IPv4 address on {{ inventory_hostname }}"
- when:
- - ip_version == "ipv4"
- - hostvars[inventory_hostname]['ansible_facts'][(monitor_interface | replace('-', '_'))]['ipv4'] is not defined
-
-- name: Check if network interface has an IPv6 address
- ansible.builtin.fail:
- msg: "{{ monitor_interface }} does not have any IPv6 address on {{ inventory_hostname }}"
- when:
- - ip_version == "ipv6"
- - hostvars[inventory_hostname]['ansible_facts'][(monitor_interface | replace('-', '_'))]['ipv6'] is not defined
---
-- name: Check if network interface has an IP address in `monitor_address_block`
+- name: Check if network interface has an IP address in public_network
ansible.builtin.fail:
- msg: "{{ inventory_hostname }} does not have any {{ ip_version }} address on {{ monitor_address_block }}"
- when: hostvars[inventory_hostname]['ansible_facts']['all_' + ip_version + '_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['monitor_address_block'].split(',')) | length == 0
+ msg: "{{ inventory_hostname }} does not have any {{ ip_version }} address on {{ public_network }}"
+ when: hostvars[inventory_hostname]['ansible_facts']['all_' + ip_version + '_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['public_network'].split(',')) | length == 0
msg: "osd_objectstore must be 'bluestore''"
when: osd_objectstore not in ['bluestore']
-- name: Validate monitor network configuration
- ansible.builtin.fail:
- msg: "Either monitor_address, monitor_address_block or monitor_interface must be provided"
- when:
- - mon_group_name in group_names
- - monitor_address == 'x.x.x.x'
- - monitor_address_block == 'subnet'
- - monitor_interface == 'interface'
-
- name: Validate radosgw network configuration
ansible.builtin.fail:
msg: "Either radosgw_address, radosgw_address_block or radosgw_interface must be provided"
- osd_group_name in group_names
- not osd_auto_discovery | default(False) | bool
-- name: Include check_eth_mon.yml
- ansible.builtin.include_tasks: check_eth_mon.yml
- when:
- - mon_group_name in group_names
- - monitor_interface != "dummy"
- - monitor_address == "x.x.x.x"
- - monitor_address_block == "subnet"
-
-- name: Include check_ipaddr_mon.yml
- ansible.builtin.include_tasks: check_ipaddr_mon.yml
- when:
- - mon_group_name in group_names
- - monitor_interface == "interface"
- - monitor_address == "x.x.x.x"
- - monitor_address_block != "subnet"
-
- name: Include check_eth_rgw.yml
ansible.builtin.include_tasks: check_eth_rgw.yml
when:
cluster: ceph
public_network: "192.168.63.0/24"
cluster_network: "192.168.64.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.61.0/24"
cluster_network: "192.168.62.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.75.0/24"
cluster_network: "192.168.76.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.73.0/24"
cluster_network: "192.168.74.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.55.0/24"
cluster_network: "192.168.56.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.53.0/24"
cluster_network: "192.168.54.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.55.0/24"
cluster_network: "192.168.56.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.53.0/24"
cluster_network: "192.168.54.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.67.0/24"
cluster_network: "192.168.68.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.65.0/24"
cluster_network: "192.168.66.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.71.0/24"
cluster_network: "192.168.72.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.69.0/24"
cluster_network: "192.168.70.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_num_instances: 2
ceph_mon_docker_subnet: "{{ public_network }}"
containerized_deployment: False
ceph_origin: repository
ceph_repository: community
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
openstack_config: True
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.17.0/24"
[mons]
-mon0 monitor_address=192.168.17.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.17.12
+mon0
+mon1
+mon2
[mgrs]
mgr0
---
ceph_origin: repository
-ceph_repository: community
-public_network: "192.168.1.0/24"
-cluster_network: "192.168.2.0/24"
+ceph_repository: dev
+public_network: "192.168.110.0/24"
+cluster_network: "192.168.220.0/24"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_conf_overrides:
global:
alertmanager_container_image: "quay.io/prometheus/alertmanager:v0.16.2"
grafana_container_image: "quay.io/ceph/ceph-grafana:6.7.4"
grafana_server_group_name: ceph_monitoring
+dashboard_enabled: false
---
-create_crush_tree: True
-crush_rule_config: True
+create_crush_tree: true
+crush_rule_config: true
crush_rule_hdd:
name: HDD
root: default
class: hdd
default: true
crush_rules:
- - "{{ crush_rule_hdd }}"
\ No newline at end of file
+ - "{{ crush_rule_hdd }}"
CACHEINODE {
Entries_HWMark = 100000;
}
-nfs_ganesha_stable: true
-nfs_ganesha_dev: false
+nfs_ganesha_stable: false
+nfs_ganesha_dev: true
nfs_ganesha_flavor: "ceph_main"
[mons]
-mon0 monitor_address=192.168.1.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.1.12
+mon0
+mon1
+mon2
[mgrs]
mgr0
docker=True
[mons]
-mon0 monitor_address=192.168.1.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.1.12
+mon0
+mon1
+mon2
[mgrs]
mgr0
ceph_install_source: stable
# SUBNETS TO USE FOR THE VMS
-public_subnet: 192.168.1
-cluster_subnet: 192.168.2
+public_subnet: 192.168.110
+cluster_subnet: 192.168.220
# MEMORY
# set 1024 for CentOS
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
ip_version: ipv6
[mons]
-mon0 monitor_address="fdec:f1fb:29cd:6940::10"
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address="fdec:f1fb:29cd:6940::12"
+mon0
+mon1
+mon2
[mgrs]
mgr0
[mons]
-mon0 monitor_address="fdec:f1fb:29cd:6940::10"
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address="fdec:f1fb:29cd:6940::12"
+mon0
+mon1
+mon2
[mgrs]
mgr0
---
-monitor_interface: eth1
public_network: "192.168.30.0/24"
cluster_network: "192.168.31.0/24"
dashboard_admin_password: $sX!cD$rYU6qR^B!
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_num_instances: 2
ceph_mon_docker_subnet: "{{ public_network }}"
containerized_deployment: False
ceph_origin: repository
ceph_repository: community
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.15.0/24"
container_binary: docker
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.58.0/24"
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_num_instances: 2
ceph_mon_docker_subnet: "{{ public_network }}"
containerized_deployment: False
ceph_origin: repository
ceph_repository: community
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
openstack_config: True
cluster: ceph
public_network: "192.168.39.0/24"
cluster_network: "192.168.40.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.39.0/24"
cluster_network: "192.168.40.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
osd_objectstore: "bluestore"
crush_device_class: test
cluster: ceph
public_network: "192.168.39.0/24"
cluster_network: "192.168.40.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
crush_device_class: test
copy_admin_key: true
cluster: ceph
public_network: "192.168.39.0/24"
cluster_network: "192.168.40.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
crush_device_class: test
copy_admin_key: true
ceph_repository: community
public_network: "192.168.33.0/24"
cluster_network: "192.168.34.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
copy_admin_key: true
containerized_deployment: true
# test-volume is created by tests/functional/lvm_setup.yml from /dev/sdb
ceph_repository: community
public_network: "192.168.39.0/24"
cluster_network: "192.168.40.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
copy_admin_key: true
# test-volume is created by tests/functional/lvm_setup.yml from /dev/sdb
os_tuning_params:
cluster: test
public_network: "192.168.1.0/24"
cluster_network: "192.168.2.0/24"
-monitor_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
devices:
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.30.0/24"
cluster: ceph
public_network: "192.168.144.0/24"
cluster_network: "192.168.145.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.146.0/24"
cluster_network: "192.168.147.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.140.0/24"
cluster_network: "192.168.141.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
cluster: ceph
public_network: "192.168.142.0/24"
cluster_network: "192.168.143.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
journal_size: 100
osd_objectstore: "bluestore"
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.79.0/24"
cluster_network: "192.168.80.0/24"
ceph_repository: community
public_network: "192.168.77.0/24"
cluster_network: "192.168.78.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
journal_size: 100
osd_objectstore: "bluestore"
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.83.0/24"
cluster_network: "192.168.84.0/24"
ceph_repository: dev
public_network: "192.168.81.0/24"
cluster_network: "192.168.82.0/24"
-monitor_interface: eth1
radosgw_interface: eth1
ceph_conf_overrides:
global:
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.17.0/24"
cluster_network: "192.168.18.0/24"
[mons]
-mon0 monitor_address=192.168.1.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.1.12
+mon0
+mon1
+mon2
[osds]
osd0
\ No newline at end of file
docker=True
[mons]
-mon0 monitor_address=192.168.1.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.1.12
+mon0
+mon1
+mon2
[osds]
osd0
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.73.0/24"
cluster_network: "192.168.74.0/24"
public_network: "192.168.87.0/24"
cluster_network: "192.168.88.0/24"
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
ceph_conf_overrides:
global:
ceph_repository: community
public_network: "192.168.85.0/24"
cluster_network: "192.168.86.0/24"
-monitor_interface: eth1
osd_objectstore: "bluestore"
copy_admin_key: true
ceph_conf_overrides:
containerized_deployment: True
public_network: "192.168.91.0/24"
cluster_network: "192.168.92.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
ceph_conf_overrides:
ceph_repository: dev
public_network: "192.168.89.0/24"
cluster_network: "192.168.90.0/24"
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
osd_objectstore: "bluestore"
copy_admin_key: true
docker: True
containerized_deployment: True
-monitor_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
radosgw_interface: "{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
ceph_mon_docker_subnet: "{{ public_network }}"
public_network: "192.168.5.0/24"
[mons]
-mon0 monitor_address=192.168.5.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.5.12
+mon0
+mon1
+mon2
[mgrs]
mon0
[mons]
-mon0 monitor_address=192.168.3.10
-mon1 monitor_interface="{{ 'eth1' if ansible_facts['distribution'] == 'CentOS' else 'ens6' }}"
-mon2 monitor_address=192.168.3.12
+mon0
+mon1
+mon2
[mgrs]
mon0