Merge pull request #1646 from ceph/fix_check_mandatory_vars

Docker-common: Add missing variables declaration
pull/1648/head
Sébastien Han 2017-07-04 18:20:52 +02:00 committed by GitHub
commit 149f21b2ef
16 changed files with 36 additions and 21 deletions

2
Vagrantfile vendored
View File

@ -74,7 +74,7 @@ ansible_provision = proc do |ansible|
if DOCKER then if DOCKER then
ansible.extra_vars = ansible.extra_vars.merge({ ansible.extra_vars = ansible.extra_vars.merge({
containerized_deployment: 'true', containerized_deployment: 'true',
ceph_mon_docker_interface: ETH, monitor_interface: ETH,
ceph_mon_docker_subnet: "#{PUBLIC_SUBNET}.0/24", ceph_mon_docker_subnet: "#{PUBLIC_SUBNET}.0/24",
ceph_osd_docker_devices: settings['disks'], ceph_osd_docker_devices: settings['disks'],
devices: settings['disks'], devices: settings['disks'],

View File

@ -247,12 +247,14 @@ dummy:
## Monitor options ## Monitor options
# #
# You must define monitor_interface. # You must define either monitor_interface, monitor_address or monitor_address_block.
# You can also specify for each monitor which address the monitor will bind to in your **inventory host file** by using 'monitor_address' variable. # These variables must be defined at least in all.yml and overrided if needed (inventory host file or group_vars/*.yml).
# Preference will go to monitor_address if both are defined. # 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.
# To use an IPv6 address, use the monitor_address setting instead (and set ip_version to ipv6) # To use an IPv6 address, use the monitor_address setting instead (and set ip_version to ipv6)
#monitor_interface: interface #monitor_interface: interface
#monitor_address: 0.0.0.0 #monitor_address: 0.0.0.0
#monitor_address_block: []
# set to either ipv4 or ipv6, whichever your network is using # set to either ipv4 or ipv6, whichever your network is using
#ip_version: ipv4 #ip_version: ipv4
#mon_use_fqdn: false # if set to true, the MON name used will be the fqdn in the ceph.conf #mon_use_fqdn: false # if set to true, the MON name used will be the fqdn in the ceph.conf
@ -421,6 +423,13 @@ dummy:
#ceph_conf_key_directory: /etc/ceph #ceph_conf_key_directory: /etc/ceph
###########
# Network #
###########
#monitor_interface: 'interface'
#monitor_address: '0.0.0.0'
#monitor_address_block: []
############ ############
# KV store # # KV store #
############ ############

View File

@ -87,8 +87,7 @@ dummy:
# DOCKER # # DOCKER #
########## ##########
#docker_exec_cmd: #docker_exec_cmd:
#ceph_mon_docker_interface: "{{ monitor_interface }}" #ceph_mon_docker_subnet: "{{ public_network }}"# subnet of the monitor_interface
#ceph_mon_docker_subnet: "{{ public_network }}"# subnet of the ceph_mon_docker_interface
#ceph_mon_docker_extra_env: -e CLUSTER={{ cluster }} -e FSID={{ fsid }} -e MON_NAME={{ monitor_name }} #ceph_mon_docker_extra_env: -e CLUSTER={{ cluster }} -e FSID={{ fsid }} -e MON_NAME={{ monitor_name }}
#mon_docker_privileged: false #mon_docker_privileged: false
#mon_docker_net_host: true #mon_docker_net_host: true

View File

@ -150,7 +150,7 @@
net: "host" net: "host"
state: "running" state: "running"
privileged: "{{ mon_docker_privileged }}" privileged: "{{ mon_docker_privileged }}"
env: "MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface]['ipv4']['address'] }},CEPH_DAEMON=MON,CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }},CEPH_FSID={{ ceph_fsid.stdout }},{{ ceph_mon_docker_extra_env }}" env: "MON_IP={{ hostvars[inventory_hostname]['ansible_' + monitor_interface]['ipv4']['address'] }},CEPH_DAEMON=MON,CEPH_PUBLIC_NETWORK={{ ceph_mon_docker_subnet }},CEPH_FSID={{ ceph_fsid.stdout }},{{ ceph_mon_docker_extra_env }}"
volumes: "/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph,/etc/localtime:/etc/localtime:ro" volumes: "/var/lib/ceph:/var/lib/ceph,/etc/ceph:/etc/ceph,/etc/localtime:/etc/localtime:ro"
- name: waiting for the monitor to join the quorum... - name: waiting for the monitor to join the quorum...

View File

@ -246,6 +246,7 @@ rbd_client_admin_socket_path: /var/run/ceph # must be writable by QEMU and allow
# To use an IPv6 address, use the monitor_address setting instead (and set ip_version to ipv6) # To use an IPv6 address, use the monitor_address setting instead (and set ip_version to ipv6)
monitor_interface: interface monitor_interface: interface
monitor_address: 0.0.0.0 monitor_address: 0.0.0.0
monitor_address_block: []
# set to either ipv4 or ipv6, whichever your network is using # set to either ipv4 or ipv6, whichever your network is using
ip_version: ipv4 ip_version: ipv4
mon_use_fqdn: false # if set to true, the MON name used will be the fqdn in the ceph.conf mon_use_fqdn: false # if set to true, the MON name used will be the fqdn in the ceph.conf

View File

@ -32,7 +32,7 @@ mon initial members = {% for host in groups[mon_group_name] %}
{% if not containerized_deployment and not containerized_deployment_with_kv -%} {% if not containerized_deployment and not containerized_deployment_with_kv -%}
mon host = {% for host in groups[mon_group_name] -%} mon host = {% for host in groups[mon_group_name] -%}
{% if monitor_address_block is defined %} {% if monitor_address_block | length > 0 %}
{% if ip_version == 'ipv4' -%} {% if ip_version == 'ipv4' -%}
{{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }} {{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }}
{%- elif ip_version == 'ipv6' -%} {%- elif ip_version == 'ipv6' -%}
@ -58,7 +58,7 @@ mon host = {% for host in groups[mon_group_name] -%}
{% if containerized_deployment %} {% if containerized_deployment %}
fsid = {{ fsid }} fsid = {{ fsid }}
mon host = {% for host in groups[mon_group_name] -%} mon host = {% for host in groups[mon_group_name] -%}
{% if monitor_address_block is defined %} {% if monitor_address_block | length > 0 %}
{% if ip_version == 'ipv4' -%} {% if ip_version == 'ipv4' -%}
{{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }} {{ hostvars[host]['ansible_all_' + ip_version + '_addresses'] | ipaddr(monitor_address_block) | first }}
{%- elif ip_version == 'ipv6' -%} {%- elif ip_version == 'ipv6' -%}
@ -71,7 +71,7 @@ mon host = {% for host in groups[mon_group_name] -%}
[{{ hostvars[host]['monitor_address'] }}] [{{ hostvars[host]['monitor_address'] }}]
{%- endif %} {%- endif %}
{%- else -%} {%- else -%}
{% set interface = ["ansible_",ceph_mon_docker_interface]|join %} {% set interface = ["ansible_",monitor_interface]|join %}
{% if ip_version == 'ipv4' -%} {% if ip_version == 'ipv4' -%}
{{ hostvars[host][interface][ip_version]['address'] }} {{ hostvars[host][interface][ip_version]['address'] }}
{%- elif ip_version == 'ipv6' -%} {%- elif ip_version == 'ipv6' -%}

View File

@ -16,6 +16,13 @@ bootstrap_dirs_group: "64045"
ceph_conf_key_directory: /etc/ceph ceph_conf_key_directory: /etc/ceph
###########
# Network #
###########
monitor_interface: 'interface'
monitor_address: '0.0.0.0'
monitor_address_block: []
############ ############
# KV store # # KV store #
############ ############

View File

@ -79,8 +79,7 @@ openstack_keys:
# DOCKER # # DOCKER #
########## ##########
docker_exec_cmd: docker_exec_cmd:
ceph_mon_docker_interface: "{{ monitor_interface }}" ceph_mon_docker_subnet: "{{ public_network }}"# subnet of the monitor_interface
ceph_mon_docker_subnet: "{{ public_network }}"# subnet of the ceph_mon_docker_interface
ceph_mon_docker_extra_env: -e CLUSTER={{ cluster }} -e FSID={{ fsid }} -e MON_NAME={{ monitor_name }} ceph_mon_docker_extra_env: -e CLUSTER={{ cluster }} -e FSID={{ fsid }} -e MON_NAME={{ monitor_name }}
mon_docker_privileged: false mon_docker_privileged: false
mon_docker_net_host: true mon_docker_net_host: true

View File

@ -5,4 +5,4 @@
when: when:
- monitor_interface == 'interface' - monitor_interface == 'interface'
- monitor_address == '0.0.0.0' - monitor_address == '0.0.0.0'
- not monitor_address_block - monitor_address_block | length == 0

View File

@ -13,7 +13,7 @@
until: monitor_socket.rc == 0 until: monitor_socket.rc == 0
- name: force peer addition as potential bootstrap peer for cluster bringup - name: force peer addition as potential bootstrap peer for cluster bringup
command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint {{ hostvars[item]['ansible_' + ceph_mon_docker_interface].ipv4.address }} command: docker exec ceph-mon-{{ ansible_hostname }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint {{ hostvars[item]['ansible_' + monitor_interface].ipv4.address }}
with_items: "{{ groups[mon_group_name] }}" with_items: "{{ groups[mon_group_name] }}"
changed_when: false changed_when: false
failed_when: false failed_when: false

View File

@ -32,9 +32,9 @@ ExecStart=/usr/bin/docker run --rm --name ceph-mon-%i --net=host \
-e MON_IP=[{{ monitor_address }}] \ -e MON_IP=[{{ monitor_address }}] \
{% endif -%} {% endif -%}
{% elif ip_version == 'ipv4' -%} {% elif ip_version == 'ipv4' -%}
-e MON_IP={{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface][ip_version]['address'] }} \ -e MON_IP={{ hostvars[inventory_hostname]['ansible_' + monitor_interface][ip_version]['address'] }} \
{% elif ip_version =='ipv6' -%} {% elif ip_version =='ipv6' -%}
-e MON_IP=[{{ hostvars[inventory_hostname]['ansible_' + ceph_mon_docker_interface][ip_version][0]['address'] }}] \ -e MON_IP=[{{ hostvars[inventory_hostname]['ansible_' + monitor_interface][ip_version][0]['address'] }}] \
{% endif -%} {% endif -%}
{{ ceph_mon_docker_extra_env }} \ {{ ceph_mon_docker_extra_env }} \
{{ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} {{ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}

View File

@ -73,7 +73,7 @@ ansible_provision = proc do |ansible|
if DOCKER then if DOCKER then
ansible.extra_vars = ansible.extra_vars.merge({ ansible.extra_vars = ansible.extra_vars.merge({
containerized_deployment: 'true', containerized_deployment: 'true',
ceph_mon_docker_interface: ETH, monitor_interface: ETH,
ceph_mon_docker_subnet: "#{PUBLIC_SUBNET}.0/24", ceph_mon_docker_subnet: "#{PUBLIC_SUBNET}.0/24",
ceph_osd_docker_devices: settings['disks'], ceph_osd_docker_devices: settings['disks'],
devices: settings['disks'], devices: settings['disks'],

View File

@ -6,7 +6,7 @@ docker: True
ceph_stable: True ceph_stable: True
containerized_deployment: True containerized_deployment: True
cluster: test cluster: test
ceph_mon_docker_interface: eth1 monitor_interface: eth1
ceph_mon_docker_subnet: "{{ public_network }}" ceph_mon_docker_subnet: "{{ public_network }}"
journal_size: 100 journal_size: 100
ceph_docker_on_openstack: False ceph_docker_on_openstack: False

View File

@ -73,7 +73,7 @@ ansible_provision = proc do |ansible|
if DOCKER then if DOCKER then
ansible.extra_vars = ansible.extra_vars.merge({ ansible.extra_vars = ansible.extra_vars.merge({
containerized_deployment: 'true', containerized_deployment: 'true',
ceph_mon_docker_interface: ETH, monitor_interface: ETH,
ceph_mon_docker_subnet: "#{PUBLIC_SUBNET}.0/24", ceph_mon_docker_subnet: "#{PUBLIC_SUBNET}.0/24",
ceph_osd_docker_devices: settings['disks'], ceph_osd_docker_devices: settings['disks'],
devices: settings['disks'], devices: settings['disks'],

View File

@ -6,7 +6,7 @@ docker: True
ceph_stable: True ceph_stable: True
containerized_deployment: True containerized_deployment: True
cluster: ceph cluster: ceph
ceph_mon_docker_interface: eth1 monitor_interface: eth1
ceph_mon_docker_subnet: "{{ public_network }}" ceph_mon_docker_subnet: "{{ public_network }}"
journal_size: 100 journal_size: 100
ceph_docker_on_openstack: False ceph_docker_on_openstack: False

View File

@ -6,7 +6,7 @@ docker: True
ceph_stable: True ceph_stable: True
containerized_deployment: True containerized_deployment: True
cluster: test cluster: test
ceph_mon_docker_interface: eth1 monitor_interface: eth1
ceph_mon_docker_subnet: "{{ public_network }}" ceph_mon_docker_subnet: "{{ public_network }}"
journal_size: 100 journal_size: 100
ceph_docker_on_openstack: False ceph_docker_on_openstack: False