mirror of https://github.com/ceph/ceph-ansible.git
simplify monitor address setting
this drops the following parameters: - monitor_address_block - monitor_interface - monitor_address The monitor address will be automatically set from `public_network` parameter. Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>pull/7493/head
parent
62e48fc14f
commit
8871de6d99
|
@ -88,7 +88,6 @@ ansible_provision = proc do |ansible|
|
|||
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,
|
||||
|
@ -97,7 +96,6 @@ ansible_provision = proc do |ansible|
|
|||
else
|
||||
ansible.extra_vars = ansible.extra_vars.merge({
|
||||
devices: settings['disks'],
|
||||
monitor_interface: ETH,
|
||||
radosgw_interface: ETH,
|
||||
os_tuning_params: settings['os_tuning_params'],
|
||||
})
|
||||
|
@ -105,8 +103,6 @@ ansible_provision = proc do |ansible|
|
|||
|
||||
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({
|
||||
|
|
|
@ -228,7 +228,6 @@ An example configuration that deploys the upstream ``octopus`` version of Ceph w
|
|||
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'
|
||||
|
@ -238,7 +237,6 @@ selection or other aspects of your cluster.
|
|||
|
||||
- ``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.
|
||||
|
|
|
@ -130,15 +130,15 @@ way so that a vagrant environment can be isolated to the given scenario.
|
|||
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:
|
||||
|
||||
|
|
|
@ -311,14 +311,6 @@ dummy:
|
|||
#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
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@ dummy:
|
|||
# - --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(',') }}
|
||||
|
||||
|
||||
|
|
|
@ -30,15 +30,6 @@
|
|||
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
|
||||
|
@ -158,7 +149,7 @@
|
|||
|
||||
- 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
|
||||
|
|
|
@ -304,7 +304,7 @@
|
|||
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
|
||||
|
@ -317,7 +317,7 @@
|
|||
|
||||
- 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
|
||||
|
|
|
@ -13,11 +13,11 @@ auth client required = none
|
|||
|
||||
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 %}
|
||||
|
|
|
@ -303,14 +303,6 @@ rbd_client_log_file: "{{ rbd_client_log_path }}/qemu-guest-$pid.log" # must be w
|
|||
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
|
||||
|
||||
|
|
|
@ -1,59 +1,14 @@
|
|||
---
|
||||
- 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])
|
||||
|
|
|
@ -54,7 +54,7 @@ ceph_mon_container_params:
|
|||
- --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(',') }}
|
||||
|
||||
|
||||
|
|
|
@ -158,13 +158,13 @@
|
|||
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
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
---
|
||||
- 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
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
- 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
|
||||
|
|
|
@ -11,15 +11,6 @@
|
|||
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"
|
||||
|
@ -107,22 +98,6 @@
|
|||
- 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:
|
||||
|
|
|
@ -6,7 +6,6 @@ containerized_deployment: true
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ containerized_deployment: true
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: dev
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ containerized_deployment: true
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: dev
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ containerized_deployment: true
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ containerized_deployment: true
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ containerized_deployment: true
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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 }}"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
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:
|
||||
|
@ -36,3 +36,4 @@ prometheus_container_image: "quay.io/prometheus/prometheus:v2.7.2"
|
|||
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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
create_crush_tree: True
|
||||
crush_rule_config: True
|
||||
create_crush_tree: true
|
||||
crush_rule_config: true
|
||||
crush_rule_hdd:
|
||||
name: HDD
|
||||
root: default
|
||||
|
|
|
@ -5,6 +5,6 @@ ganesha_conf_overrides: |
|
|||
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"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
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
|
||||
|
|
|
@ -19,8 +19,8 @@ mgr_vms: 1
|
|||
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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
monitor_interface: eth1
|
||||
public_network: "192.168.30.0/24"
|
||||
cluster_network: "192.168.31.0/24"
|
||||
dashboard_admin_password: $sX!cD$rYU6qR^B!
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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 }}"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
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"
|
||||
|
|
|
@ -5,7 +5,6 @@ docker: True
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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 }}"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
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
|
||||
|
|
|
@ -10,7 +10,6 @@ ceph_repository: dev
|
|||
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"
|
||||
|
|
|
@ -5,7 +5,6 @@ ceph_repository: community
|
|||
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
|
||||
|
|
|
@ -10,7 +10,6 @@ ceph_repository: community
|
|||
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
|
||||
|
|
|
@ -5,7 +5,6 @@ ceph_repository: community
|
|||
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
|
||||
|
|
|
@ -8,7 +8,6 @@ ceph_origin: repository
|
|||
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
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_origin: repository
|
|||
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:
|
||||
|
|
|
@ -5,7 +5,6 @@ ceph_repository: community
|
|||
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:
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -6,7 +6,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@ ceph_repository: community
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -3,7 +3,6 @@ ceph_origin: repository
|
|||
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"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -3,7 +3,6 @@ ceph_origin: repository
|
|||
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:
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
|
@ -2,9 +2,9 @@
|
|||
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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -5,7 +5,6 @@ docker: True
|
|||
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:
|
||||
|
|
|
@ -3,7 +3,6 @@ ceph_origin: repository
|
|||
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:
|
||||
|
|
|
@ -6,7 +6,6 @@ docker: True
|
|||
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:
|
||||
|
|
|
@ -3,7 +3,6 @@ ceph_origin: repository
|
|||
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
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
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"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[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
|
||||
|
|
Loading…
Reference in New Issue