Skip to content
Snippets Groups Projects
Commit 8fa96a15 authored by Paul Bourke's avatar Paul Bourke
Browse files

Add rsyncd image and related Ansible for Swift

Swift replicator services require rsync to function. This patch adds a
new container which is included automatically on each of the Swift
storage nodes.

Change-Id: If10fbe610ca4df21ef0f2c7a1025035d627cb4ba
Partial-Bug: #1477993
parent e569d801
No related branches found
No related tags found
No related merge requests found
...@@ -40,6 +40,10 @@ swift_object_updater_image: "{{ docker_registry ~ '/' if docker_registry else '' ...@@ -40,6 +40,10 @@ swift_object_updater_image: "{{ docker_registry ~ '/' if docker_registry else ''
swift_object_updater_tag: "{{ openstack_release }}" swift_object_updater_tag: "{{ openstack_release }}"
swift_object_updater_image_full: "{{ swift_object_updater_image }}:{{ swift_object_updater_tag }}" swift_object_updater_image_full: "{{ swift_object_updater_image }}:{{ swift_object_updater_tag }}"
swift_rsyncd_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-swift-rsyncd"
swift_rsyncd_tag: "{{ openstack_release }}"
swift_rsyncd_image_full: "{{ swift_rsyncd_image }}:{{ swift_rsyncd_tag }}"
#################### ####################
# Openstack # Openstack
#################### ####################
......
...@@ -82,3 +82,14 @@ ...@@ -82,3 +82,14 @@
dest: "{{ node_config_directory }}/swift/container.ring.gz" } dest: "{{ node_config_directory }}/swift/container.ring.gz" }
- { src: "/etc/kolla/config/swift/account.ring.gz", - { src: "/etc/kolla/config/swift/account.ring.gz",
dest: "{{ node_config_directory }}/swift/account.ring.gz" } dest: "{{ node_config_directory }}/swift/account.ring.gz" }
- name: Ensuring swift-rsyncd config directory exists
file:
path: "{{ node_config_directory }}/swift-rsyncd/"
state: "directory"
recurse: "yes"
- name: Copying over swift-rsyncd config(s)
template:
src: "rsyncd.conf.j2"
dest: "{{ node_config_directory }}/swift-rsyncd/rsyncd.conf"
--- ---
- name: Starting Swift-rsyncd container
docker:
docker_api_version: "{{ docker_api_version }}"
net: host
pull: "{{ docker_pull_policy }}"
restart_policy: "{{ docker_restart_policy }}"
restart_policy_retry: "{{ docker_restart_policy_retry }}"
state: reloaded
registry: "{{ docker_registry }}"
username: "{{ docker_registry_username }}"
password: "{{ docker_registry_password }}"
insecure_registry: "{{ docker_insecure_registry }}"
name: swift_rsyncd
image: "{{ swift_rsyncd_image_full }}"
volumes: "{{ node_config_directory }}/swift-rsyncd/:/opt/kolla/swift-rsyncd/:ro"
volumes_from:
- swift_data
env:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
- name: Starting Swift Proxy Server container - name: Starting Swift Proxy Server container
docker: docker:
docker_api_version: "{{ docker_api_version }}" docker_api_version: "{{ docker_api_version }}"
......
uid = swift
gid = swift
address = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
{% if inventory_hostname in groups['swift-account-server'] %}
[account]
max connections = 2
path = {{ swift_devices_mount_point }}
read only = false
lock file = /var/lock/account.lock
{% endif %}
{% if inventory_hostname in groups['swift-container-server'] %}
[container]
max connections = 4
path = {{ swift_devices_mount_point }}
read only = false
lock file = /var/lock/container.lock
{% endif %}
{% if inventory_hostname in groups['swift-object-server'] %}
[object]
max connections = 8
path = {{ swift_devices_mount_point }}
read only = false
lock file = /var/lock/object.lock
{% endif %}
FROM {{ namespace }}/{{ base_distro }}-{{ install_type }}-swift-base:{{ tag }}
MAINTAINER Kolla Project (https://launchpad.net/kolla)
{% if base_distro in ['fedora', 'centos', 'oraclelinux'] %}
RUN yum install -y rsync \
&& yum clean all
{% elif base_distro in ['ubuntu', 'debian'] %}
RUN apt-get install -y --no-install-recommends \
rsync \
&& apt-get clean
{% endif %}
COPY start.sh /
COPY config-external.sh /opt/kolla/
CMD ["/start.sh"]
{{ include_footer }}
#!/bin/bash
OWNER="swift"
if [[ -f "/opt/kolla/swift-rsyncd/rsyncd.conf" ]]; then
cp /opt/kolla/swift-rsyncd/rsyncd.conf /etc/rsyncd.conf
chown ${OWNER}: /etc/rsyncd.conf
chmod 0640 /etc/rsyncd.conf
fi
#!/bin/bash
set -o errexit
CMD="/usr/bin/rsync"
ARGS="--daemon --no-detach --config=/etc/rsyncd.conf"
# Loading common functions.
source /opt/kolla/kolla-common.sh
# Execute config strategy
set_configs
exec $CMD $ARGS
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment