From d3d64d75d95469d3c5c338c8ebd913995b07b92c Mon Sep 17 00:00:00 2001 From: Andy McCrae Date: Fri, 26 Sep 2014 15:20:09 +0000 Subject: [PATCH] Adjust the ring-builder to happen on the local host * This needs to be built on the host (where the inventory file is) * Copy up from local host to remote hosts * Tag directory creation from container_common * Run against only swift_hosts and swift_proxy (Avoids running against proxy containers) --- .../playbooks/openstack/swift-build-rings.yml | 8 ++++-- .../tasks/container_os_setup.yml | 2 ++ .../roles/swift_ring_builder/tasks/main.yml | 28 +++++++------------ .../swift_ring_distribute/tasks/main.yml | 2 ++ 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/rpc_deployment/playbooks/openstack/swift-build-rings.yml b/rpc_deployment/playbooks/openstack/swift-build-rings.yml index 66b35597e5..da2c40f256 100644 --- a/rpc_deployment/playbooks/openstack/swift-build-rings.yml +++ b/rpc_deployment/playbooks/openstack/swift-build-rings.yml @@ -1,10 +1,14 @@ --- -- hosts: swift_all[0] +- hosts: local user: root roles: + - { role: container_common, tags: [ 'directories' ] } + - openstack_common - swift_ring_builder + vars_files: + - inventory/group_vars/swift_all.yml -- hosts: swift_all:!swift_all[0] +- hosts: swift_hosts:swift_proxy user: root roles: - swift_ring_distribute diff --git a/rpc_deployment/roles/container_common/tasks/container_os_setup.yml b/rpc_deployment/roles/container_common/tasks/container_os_setup.yml index 6ebd0357c6..4bfb6b086d 100644 --- a/rpc_deployment/roles/container_common/tasks/container_os_setup.yml +++ b/rpc_deployment/roles/container_common/tasks/container_os_setup.yml @@ -22,3 +22,5 @@ recurse=true when: container_directories is defined with_items: container_directories + tags: + - directories diff --git a/rpc_deployment/roles/swift_ring_builder/tasks/main.yml b/rpc_deployment/roles/swift_ring_builder/tasks/main.yml index 8b21a832be..85418f0966 100644 --- a/rpc_deployment/roles/swift_ring_builder/tasks/main.yml +++ b/rpc_deployment/roles/swift_ring_builder/tasks/main.yml @@ -2,28 +2,20 @@ - name: "make sure scripts directory exists" file: > state=directory - path=/etc/swift/scripts/ + path={{ item }} owner=root group=root mode=0755 + with_items: + - /tmp/swift/rings + - /tmp/swift/scripts -- name: "Retrieve the swift_rings.py file" +- name: "Copy the swift_rings.py file" copy: > src=swift_rings.py - dest="/etc/swift/scripts/swift_rings.py" + dest="/tmp/swift/scripts/swift_rings.py" -#- name: "build rings" -# command: /usr/bin/python /etc/swift/scripts/swift_rings.py -s /etc/rpc_deploy/rpc_user_config.yml -# args: -# chdir: /etc/swift/rings/ - -- name: "List ring files to copy over" - command: "/bin/ls /etc/swift/rings/" - register: ringfiles - -- name: "Fetch rings to local server" - fetch: > - src="/etc/swift/rings/{{ item }}" - dest=/tmp/swift/rings/ - flat=yes - with_items: ringfiles.stdout_lines +- name: "build rings" + command: /usr/bin/python /tmp/swift/scripts/swift_rings.py -s /etc/rpc_deploy/rpc_user_config.yml + args: + chdir: /tmp/swift/rings/ diff --git a/rpc_deployment/roles/swift_ring_distribute/tasks/main.yml b/rpc_deployment/roles/swift_ring_distribute/tasks/main.yml index 93297a53cc..09ca124e0b 100644 --- a/rpc_deployment/roles/swift_ring_distribute/tasks/main.yml +++ b/rpc_deployment/roles/swift_ring_distribute/tasks/main.yml @@ -4,3 +4,5 @@ src=/tmp/swift/rings/ dest=/etc/swift/rings/ mode=0644 + owner={{ system_user }} + group={{ system_group }}