Fix Swift for multinode P+ACO deployment
Current Swift playbook is based on the preassumption of AIO setup. However, if one goes with default multinode setup (ansible/inventory/multinode), it follows the P + ACO deployment model, which proxy-server runs on controller nodes where ACO (account/container/object services) run on storage nodes. It will break because swift proxy-server no longer has access (it shouldn't have) to /srv/node path. This change ensure disk mounting part only happens on storage node. It also moves chown from proxy-server Dockerfile to rsyncd because no matter with PACO, P+ACO or P+A+C+O model, rsyncd is always running on each storage node. Change-Id: I3aa20454902caa9c84d3901bb91e4e4c93ac5f34 Partially-Implements: blueprint swift-physical-disk Closes-Bug: #1537544
This commit is contained in:
parent
1057dcd50a
commit
b209da1306
@ -8,10 +8,16 @@
|
||||
changed_when: "{{ swift_disk_lookup.stdout.find('localhost | SUCCESS => ') != -1 and
|
||||
(swift_disk_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed }}"
|
||||
failed_when: swift_disk_lookup.stdout.split()[2] != 'SUCCESS'
|
||||
when: inventory_hostname in groups['swift-account-server'] or
|
||||
inventory_hostname in groups['swift-container-server'] or
|
||||
inventory_hostname in groups['swift-object-server']
|
||||
|
||||
- name: Reading data from variable
|
||||
set_fact:
|
||||
swift_disks: "{{ (swift_disk_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).disks|from_json }}"
|
||||
when: inventory_hostname in groups['swift-account-server'] or
|
||||
inventory_hostname in groups['swift-container-server'] or
|
||||
inventory_hostname in groups['swift-object-server']
|
||||
|
||||
- name: Mounting Swift disks
|
||||
mount:
|
||||
@ -21,6 +27,9 @@
|
||||
state: mounted
|
||||
name: "{{ swift_devices_mount_point }}/{{ item['fs_label'] }}"
|
||||
with_items: swift_disks
|
||||
when: inventory_hostname in groups['swift-account-server'] or
|
||||
inventory_hostname in groups['swift-container-server'] or
|
||||
inventory_hostname in groups['swift-object-server']
|
||||
|
||||
- name: Starting swift-rsyncd container
|
||||
kolla_docker:
|
||||
@ -43,7 +52,6 @@
|
||||
volumes:
|
||||
- "{{ node_config_directory }}/swift/:/var/lib/kolla/swift/:ro"
|
||||
- "{{ node_config_directory }}/swift-proxy-server/:{{ container_config_directory }}/:ro"
|
||||
- "{{ swift_devices_mount_point }}:{{ swift_devices_mount_point }}"
|
||||
- "/var/lib/kolla/dev/log:/dev/log"
|
||||
when: inventory_hostname in groups['swift-proxy-server']
|
||||
|
||||
|
@ -33,6 +33,5 @@ RUN ln -s swift-base-source/* swift \
|
||||
|
||||
{% endif %}
|
||||
|
||||
COPY config-swift.sh /usr/local/bin/kolla_config_swift
|
||||
COPY build-swift-ring.py /usr/local/bin/kolla_build_swift_ring
|
||||
RUN mkdir /opt/swift
|
||||
|
@ -10,7 +10,4 @@ RUN yum -y install openstack-swift-proxy \
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
COPY extend_start.sh /usr/local/bin/kolla_extend_start
|
||||
RUN chmod 755 /usr/local/bin/kolla_extend_start
|
||||
|
||||
{{ include_footer }}
|
||||
|
@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
source /usr/local/bin/kolla_config_swift
|
@ -13,4 +13,7 @@ RUN apt-get install -y --no-install-recommends rsync \
|
||||
|
||||
{% endif %}
|
||||
|
||||
COPY extend_start.sh /usr/local/bin/kolla_extend_start
|
||||
RUN chmod 755 /usr/local/bin/kolla_extend_start
|
||||
|
||||
{{ include_footer }}
|
||||
|
Loading…
Reference in New Issue
Block a user