From 378aadf3e3deba2ba30b57b17938613dcdf6e052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Han?= Date: Thu, 3 Mar 2016 11:03:03 +0100 Subject: [PATCH] ceph-mon/mds: fix fqdn MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes #596 Signed-off-by: Sébastien Han --- roles/ceph-common/handlers/main.yml | 4 +-- roles/ceph-common/templates/ceph.conf.j2 | 6 ++--- roles/ceph-mds/tasks/pre_requisite.yml | 28 +++++++++++++-------- roles/ceph-mon/tasks/deploy_monitors.yml | 32 +++++++++++++++--------- roles/ceph-mon/tasks/start_monitor.yml | 12 ++++----- 5 files changed, 49 insertions(+), 33 deletions(-) diff --git a/roles/ceph-common/handlers/main.yml b/roles/ceph-common/handlers/main.yml index 8aa7cc448..9b166b567 100644 --- a/roles/ceph-common/handlers/main.yml +++ b/roles/ceph-common/handlers/main.yml @@ -13,7 +13,7 @@ - name: restart ceph mons with systemd service: - name: ceph-mon@{{ ansible_hostname }} + name: ceph-mon@{{ monitor_name }} state: restarted when: socket.rc == 0 and @@ -74,7 +74,7 @@ - name: restart ceph mdss with systemd service: - name: ceph-mds@{{ ansible_hostname }} + name: ceph-mds@{{ mds_name }} state: restarted when: socket.rc == 0 and diff --git a/roles/ceph-common/templates/ceph.conf.j2 b/roles/ceph-common/templates/ceph.conf.j2 index 7752248e2..c5d154a3e 100644 --- a/roles/ceph-common/templates/ceph.conf.j2 +++ b/roles/ceph-common/templates/ceph.conf.j2 @@ -93,7 +93,7 @@ debug auth = {{ debug_mon_level }} [mon.{{ hostvars[host]['ansible_fqdn'] }}] host = {{ hostvars[host]['ansible_fqdn'] }} mon addr = {{ hostvars[host]['ansible_' + (hostvars[host]['monitor_interface'] if hostvars[host]['monitor_interface'] is defined else monitor_interface) ]['ipv4']['address'] }} -{% else %} +{% elif hostvars[host]['ansible_hostname'] is defined %} [mon.{{ hostvars[host]['ansible_hostname'] }}] host = {{ hostvars[host]['ansible_hostname'] }} mon addr = {{ hostvars[host]['ansible_' + (hostvars[host]['monitor_interface'] if hostvars[host]['monitor_interface'] is defined else monitor_interface) ]['ipv4']['address'] }} @@ -155,18 +155,18 @@ osd deep scrub stride = {{ osd_deep_scrub_stride }} {% if hostvars[host]['ansible_fqdn'] is defined and mds_use_fqdn %} [mds.{{ hostvars[host]['ansible_fqdn'] }}] host = {{ hostvars[host]['ansible_fqdn'] }} -{% else %} +{% elif hostvars[host]['ansible_hostname'] is defined %} [mds.{{ hostvars[host]['ansible_hostname'] }}] host = {{ hostvars[host]['ansible_hostname'] }} {% endif %} {% endfor %} +{% endif %} {% if enable_debug_mds %} debug mds = {{ debug_mds_level }} debug mds balancer = {{ debug_mds_level }} debug mds log = {{ debug_mds_level }} debug mds migrator = {{ debug_mds_level }} {% endif %} -{% endif %} {% if groups[rgw_group_name] is defined %} {% for host in groups[rgw_group_name] %} diff --git a/roles/ceph-mds/tasks/pre_requisite.yml b/roles/ceph-mds/tasks/pre_requisite.yml index ede48415a..dabfbafa2 100644 --- a/roles/ceph-mds/tasks/pre_requisite.yml +++ b/roles/ceph-mds/tasks/pre_requisite.yml @@ -1,4 +1,12 @@ --- +- set_fact: + mds_name: "{{ ansible_hostname }}" + when: not mds_use_fqdn + +- set_fact: + mds_name: "{{ ansible_fqdn }}" + when: mds_use_fqdn + - name: create bootstrap-mds directory file: path: /var/lib/ceph/bootstrap-mds/ @@ -23,22 +31,22 @@ - name: create mds directory file: - path: /var/lib/ceph/mds/ceph-{{ ansible_hostname }} + path: /var/lib/ceph/mds/ceph-{{ mds_name }} state: directory owner: "{{ dir_owner }}" group: "{{ dir_group }}" mode: "{{ dir_mode }}" - name: create mds keyring - command: ceph --cluster ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/ceph.keyring auth get-or-create mds.{{ ansible_hostname }} osd 'allow rwx' mds 'allow' mon 'allow profile mds' -o /var/lib/ceph/mds/ceph-{{ ansible_hostname }}/keyring + command: ceph --cluster ceph --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/ceph.keyring auth get-or-create mds.{{ mds_name }} osd 'allow rwx' mds 'allow' mon 'allow profile mds' -o /var/lib/ceph/mds/ceph-{{ mds_name }}/keyring args: - creates: /var/lib/ceph/mds/ceph-{{ ansible_hostname }}/keyring + creates: /var/lib/ceph/mds/ceph-{{ mds_name }}/keyring changed_when: false when: cephx - name: set mds key permissions file: - path: /var/lib/ceph/mds/ceph-{{ ansible_hostname }}/keyring + path: /var/lib/ceph/mds/ceph-{{ mds_name }}/keyring mode: "{{ key_mode }}" owner: "{{ key_owner }}" group: "{{ key_group }}" @@ -46,7 +54,7 @@ - name: activate metadata server with upstart file: - path: /var/lib/ceph/mds/ceph-{{ ansible_hostname }}/{{ item }} + path: /var/lib/ceph/mds/ceph-{{ mds_name }}/{{ item }} state: touch owner: "{{ activate_file_owner }}" group: "{{ activate_file_group }}" @@ -59,7 +67,7 @@ - name: activate metadata server with sysvinit file: - path: /var/lib/ceph/mds/ceph-{{ ansible_hostname }}/{{ item }} + path: /var/lib/ceph/mds/ceph-{{ mds_name }}/{{ item }} state: touch owner: "{{ activate_file_owner }}" group: "{{ activate_file_group }}" @@ -73,7 +81,7 @@ - name: enable systemd unit file for mds instance (for or after infernalis) file: src: /usr/lib/systemd/system/ceph-mds@.service - dest: /etc/systemd/system/multi-user.target.wants/ceph-mds@{{ ansible_hostname }}.service + dest: /etc/systemd/system/multi-user.target.wants/ceph-mds@{{ mds_name }}.service state: link changed_when: false failed_when: false @@ -86,7 +94,7 @@ name: ceph-mds state: started enabled: yes - args: "id={{ ansible_hostname }}" + args: "id={{ mds_name }}" changed_when: false when: ansible_distribution == "Ubuntu" @@ -95,7 +103,7 @@ name: ceph state: started enabled: yes - args: mds.{{ ansible_hostname }} + args: mds.{{ mds_name }} changed_when: false when: ansible_distribution != "Ubuntu" and @@ -103,7 +111,7 @@ - name: start and add that the metadata service to the init sequence (for or after infernalis) service: - name: ceph-mds@{{ ansible_hostname }} + name: ceph-mds@{{ mds_name }} state: started enabled: yes changed_when: false diff --git a/roles/ceph-mon/tasks/deploy_monitors.yml b/roles/ceph-mon/tasks/deploy_monitors.yml index 7c0df01ff..eb36a8c93 100644 --- a/roles/ceph-mon/tasks/deploy_monitors.yml +++ b/roles/ceph-mon/tasks/deploy_monitors.yml @@ -14,15 +14,23 @@ become: false when: cephx +- set_fact: + monitor_name: "{{ ansible_hostname }}" + when: not mon_use_fqdn + +- set_fact: + monitor_name: "{{ ansible_fqdn }}" + when: mon_use_fqdn + - name: create monitor initial keyring - command: ceph-authtool /var/lib/ceph/tmp/keyring.mon.{{ ansible_hostname }} --create-keyring --name=mon. --add-key={{ monitor_secret }} --cap mon 'allow *' + command: ceph-authtool /var/lib/ceph/tmp/keyring.mon.{{ monitor_name }} --create-keyring --name=mon. --add-key={{ monitor_secret }} --cap mon 'allow *' args: - creates: /var/lib/ceph/tmp/keyring.mon.{{ ansible_hostname }} + creates: /var/lib/ceph/tmp/keyring.mon.{{ monitor_name }} when: cephx - name: set initial monitor key permissions file: - path: /var/lib/ceph/tmp/keyring.mon.{{ ansible_hostname }} + path: /var/lib/ceph/tmp/keyring.mon.{{ monitor_name }} mode: "{{ key_mode }}" owner: "{{ key_owner }}" group: "{{ key_group }}" @@ -30,40 +38,40 @@ - name: create monitor directory file: - path: /var/lib/ceph/mon/ceph-{{ ansible_hostname }} + path: /var/lib/ceph/mon/ceph-{{ monitor_name }} state: directory owner: "{{ dir_owner }}" group: "{{ dir_group }}" mode: "{{ dir_mode }}" - name: ceph monitor mkfs with keyring (for or after infernalis release) - command: ceph-mon --setuser ceph --setgroup ceph --mkfs -i {{ ansible_hostname }} --fsid {{ fsid }} --keyring /var/lib/ceph/tmp/keyring.mon.{{ ansible_hostname }} + command: ceph-mon --setuser ceph --setgroup ceph --mkfs -i {{ monitor_name }} --fsid {{ fsid }} --keyring /var/lib/ceph/tmp/keyring.mon.{{ monitor_name }} args: - creates: /var/lib/ceph/mon/ceph-{{ ansible_hostname }}/keyring + creates: /var/lib/ceph/mon/ceph-{{ monitor_name }}/keyring when: cephx and is_ceph_infernalis - name: ceph monitor mkfs without keyring (for or after infernalis release) - command: ceph-mon --setuser ceph --setgroup ceph --mkfs -i {{ ansible_hostname }} --fsid {{ fsid }} + command: ceph-mon --setuser ceph --setgroup ceph --mkfs -i {{ monitor_name }} --fsid {{ fsid }} args: - creates: /var/lib/ceph/mon/ceph-{{ ansible_hostname }}/store.db + creates: /var/lib/ceph/mon/ceph-{{ monitor_name }}/store.db when: not cephx and is_ceph_infernalis - name: ceph monitor mkfs with keyring (before infernalis release) - command: ceph-mon --mkfs -i {{ ansible_hostname }} --fsid {{ fsid }} --keyring /var/lib/ceph/tmp/keyring.mon.{{ ansible_hostname }} + command: ceph-mon --mkfs -i {{ monitor_name }} --fsid {{ fsid }} --keyring /var/lib/ceph/tmp/keyring.mon.{{ monitor_name }} args: - creates: /var/lib/ceph/mon/ceph-{{ ansible_hostname }}/keyring + creates: /var/lib/ceph/mon/ceph-{{ monitor_name }}/keyring when: cephx and not is_ceph_infernalis - name: ceph monitor mkfs without keyring (before infernalis release) - command: ceph-mon --mkfs -i {{ ansible_hostname }} --fsid {{ fsid }} + command: ceph-mon --mkfs -i {{ monitor_name }} --fsid {{ fsid }} args: - creates: /var/lib/ceph/mon/ceph-{{ ansible_hostname }}/store.db + creates: /var/lib/ceph/mon/ceph-{{ monitor_name }}/store.db when: not cephx and not is_ceph_infernalis diff --git a/roles/ceph-mon/tasks/start_monitor.yml b/roles/ceph-mon/tasks/start_monitor.yml index 31db56c20..28ce2321d 100644 --- a/roles/ceph-mon/tasks/start_monitor.yml +++ b/roles/ceph-mon/tasks/start_monitor.yml @@ -1,7 +1,7 @@ --- - name: activate monitor with upstart file: - path: /var/lib/ceph/mon/ceph-{{ ansible_hostname }}/{{ item }} + path: /var/lib/ceph/mon/ceph-{{ monitor_name }}/{{ item }} state: touch owner: "{{ activate_file_owner }}" group: "{{ activate_file_group }}" @@ -17,7 +17,7 @@ name: ceph-mon state: started enabled: yes - args: "id={{ ansible_hostname }}" + args: "id={{ monitor_name }}" when: ansible_distribution == "Ubuntu" # NOTE (leseb): somehow the service ansible module is messing things up @@ -32,7 +32,7 @@ - name: enable systemd unit file for mon instance (for or after infernalis) file: src: /usr/lib/systemd/system/ceph-mon@.service - dest: /etc/systemd/system/multi-user.target.wants/ceph-mon@{{ ansible_hostname }}.service + dest: /etc/systemd/system/multi-user.target.wants/ceph-mon@{{ monitor_name }}.service state: link changed_when: false failed_when: false @@ -42,7 +42,7 @@ - name: start and add that the monitor service to the init sequence (for or after infernalis) service: - name: ceph-mon@{{ ansible_hostname }} + name: ceph-mon@{{ monitor_name }} state: started enabled: yes changed_when: false @@ -51,13 +51,13 @@ is_ceph_infernalis - name: collect admin and bootstrap keys - command: ceph-create-keys --id {{ ansible_hostname }} + command: ceph-create-keys --id {{ monitor_name }} changed_when: false failed_when: false when: cephx - name: get ceph monitor version - shell: ceph daemon mon."{{ ansible_hostname }}" version | cut -d '"' -f 4 | cut -f 1,2 -d '.' + shell: ceph daemon mon."{{ monitor_name }}" version | cut -d '"' -f 4 | cut -f 1,2 -d '.' changed_when: false failed_when: "'No such file or directory' in ceph_version.stderr" register: ceph_version