summaryrefslogtreecommitdiff
path: root/extensions/swift-build-rings.yml
blob: 1ffe9c370ccae2c678f4a998e4ec1468b5b6e06a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
---
- hosts: localhost
  vars:
    - rings:
        - { name: account, port: 6002 }
        - { name: container, port: 6001 }
        - { name: object, port: 6000 }
  remote_user: root
  tasks:
    - file: path={{ ansible_env.ROOT }}/etc/swift owner=root group=root state=directory

    - name: Create ring
      shell: swift-ring-builder {{ item.name }}.builder create {{ ansible_env.SWIFT_PART_POWER }}
        {{ ansible_env.SWIFT_REPLICAS }} {{ ansible_env.SWIFT_MIN_PART_HOURS }}
      with_items: rings

    - name: Add each storage node to the ring
      shell: swift-ring-builder {{ item[0].name }}.builder
        add r1z1-{{ item[1].ip }}:{{ item[0].port }}/{{ item[1].device }} {{ item[1].weight }}
      with_nested:
        - rings
        - ansible_env.SWIFT_STORAGE_DEVICES

    - name: Rebalance the ring
      shell: swift-ring-builder {{ item.name }}.builder rebalance {{ ansible_env.SWIFT_REBALANCE_SEED }}
      with_items: rings

    - name: Copy ring configuration files into place
      copy: src={{ item.name }}.ring.gz dest={{ ansible_env.ROOT }}/etc/swift
      with_items: rings

    - name: Copy ring builder files into place
      copy: src={{ item.name }}.builder dest={{ ansible_env.ROOT }}/etc/swift
      with_items: rings