From 4f68598779706bb3de9e9b8025ec250c43adf60d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Han?= Date: Mon, 23 Mar 2015 12:20:00 +0100 Subject: [PATCH] Rework radosgw keys and data dir path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix the usage of Upstart for Ubuntu machines instead of the init.d script. Note that because of the way upstart init script looks at the radosgw id the command 'start radosgw id=' is broken, you should use 'start radosgw-all' instead. Keep backard compatibility with the radosgw init script as well by using client prefixed by 'client.radosgw'. Signed-off-by: Sébastien Han --- roles/ceph-common/templates/ceph.conf.j2 | 4 ++-- roles/ceph-mon/tasks/ceph_keys.yml | 4 ++-- roles/ceph-radosgw/tasks/pre_requisite.yml | 26 +++++++++++----------- roles/ceph-radosgw/tasks/start_radosgw.yml | 7 +++++- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/roles/ceph-common/templates/ceph.conf.j2 b/roles/ceph-common/templates/ceph.conf.j2 index 47c3818d2..a0416525a 100644 --- a/roles/ceph-common/templates/ceph.conf.j2 +++ b/roles/ceph-common/templates/ceph.conf.j2 @@ -141,10 +141,10 @@ rgw dns name = {{ radosgw_dns_name }} {% endif %} host = {{ hostvars[host]['ansible_hostname'] }} - keyring = /etc/ceph/radosgw.{{ hostvars[host]['ansible_hostname'] }}.keyring + keyring = /var/lib/ceph/radosgw/ceph-radosgw.{{ hostvars[host]['ansible_hostname'] }}/keyring rgw socket path = /tmp/radosgw-{{ hostvars[host]['ansible_hostname'] }}.sock log file = /var/log/ceph/radosgw-{{ hostvars[host]['ansible_hostname'] }}.log - rgw data = /var/lib/ceph/radosgw/{{ hostvars[host]['ansible_hostname'] }} + rgw data = /var/lib/ceph/radosgw/ceph-radosgw.{{ hostvars[host]['ansible_hostname'] }} rgw print continue = false {% if radosgw_frontend == 'civetweb' %} rgw frontends = civetweb port={{ radosgw_civetweb_port }} diff --git a/roles/ceph-mon/tasks/ceph_keys.yml b/roles/ceph-mon/tasks/ceph_keys.yml index 73761a2c2..798dae83d 100644 --- a/roles/ceph-mon/tasks/ceph_keys.yml +++ b/roles/ceph-mon/tasks/ceph_keys.yml @@ -7,8 +7,8 @@ - name: Create RGW keyring command: > - ceph auth get-or-create client.radosgw.{{ hostvars[item]['ansible_hostname'] }} osd 'allow rwx' mon 'allow rw' -o /etc/ceph/radosgw.{{ hostvars[item]['ansible_hostname'] }}.keyring - creates=/etc/ceph/radosgw.{{ hostvars[item]['ansible_hostname'] }}.keyring + ceph auth get-or-create client.radosgw.{{ hostvars[item]['ansible_hostname'] }} osd 'allow rwx' mon 'allow rw' -o /etc/ceph/ceph.client.radosgw.{{ hostvars[item]['ansible_hostname'] }}.keyring + creates=/etc/ceph/ceph.client.radosgw.{{ hostvars[item]['ansible_hostname'] }}.keyring when: cephx and radosgw with_items: groups.rgws changed_when: False diff --git a/roles/ceph-radosgw/tasks/pre_requisite.yml b/roles/ceph-radosgw/tasks/pre_requisite.yml index 4e6415323..80fabf82c 100644 --- a/roles/ceph-radosgw/tasks/pre_requisite.yml +++ b/roles/ceph-radosgw/tasks/pre_requisite.yml @@ -1,25 +1,25 @@ --- +- name: Create RGW directory + file: > + path=/var/lib/ceph/radosgw/ceph-radosgw.{{ ansible_fqdn }} + state=directory + owner=root + group=root + mode=0644 + - name: Copy RGW bootstrap key copy: > - src=fetch/{{ fsid }}/etc/ceph/radosgw.{{ ansible_hostname }}.keyring - dest=/etc/ceph/radosgw.{{ ansible_hostname }}.keyring + src=fetch/{{ fsid }}/etc/ceph/ceph.client.radosgw.{{ ansible_hostname }}.keyring + dest=/var/lib/ceph/radosgw/ceph-radosgw.{{ ansible_hostname }}/keyring owner=root group=root mode=600 when: cephx -- name: Set RGW bootstrap key permissions +- name: Activate RGW with upstart file: > - path=/etc/ceph/radosgw.{{ ansible_hostname }}.keyring - mode=0600 - owner=root - group=root - when: cephx - -- name: Create RGW directory - file: > - path=/var/lib/ceph/radosgw/{{ ansible_fqdn }} - state=directory + path=/var/lib/ceph/radosgw/ceph-radosgw.{{ ansible_fqdn }}/done + state=touch owner=root group=root mode=0644 diff --git a/roles/ceph-radosgw/tasks/start_radosgw.yml b/roles/ceph-radosgw/tasks/start_radosgw.yml index 574b40862..0db1a1d05 100644 --- a/roles/ceph-radosgw/tasks/start_radosgw.yml +++ b/roles/ceph-radosgw/tasks/start_radosgw.yml @@ -4,7 +4,12 @@ command: /etc/init.d/radosgw status register: rgwstatus ignore_errors: True + when: ansible_distribution != "Ubuntu" + +- name: Start RGW + service: name=radosgw-all state=started + when: ansible_distribution == "Ubuntu" - name: Start RGW command: /etc/init.d/radosgw start - when: rgwstatus.rc != 0 + when: rgwstatus.rc != 0 and ansible_distribution != "Ubuntu"