Controller
#!/bin/sh
install_swift(){
set -o errexit
set -x
readonly passwd=openstack
readonly controller_ip=172.16.199.11
readonly compute_ip=172.16.199.31
source ./admin-openrc
openstack user create --domain default --password $passwd swift
openstack role add --project service --user swift admin
openstack service create --name swift --description "OpenStack Object Storage" object-store
openstack endpoint create --region RegionOne object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
openstack endpoint create --region RegionOne object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
openstack endpoint create --region RegionOne object-store admin http://controller:8080/v1
(echo 'y')|apt-get install swift swift-proxy python-swiftclient python-keystonemiddleware python-memcache
mkdir /etc/swift
mv proxy-server.conf /etc/swift
echo "[swift-hash]
swift_hash_path_suffix = swift_shared_path
swift_hash_path_prefix = swift_shared_path" >> /etc/swift/swift.conf
sed -i 's/^[\t]*//g' /etc/swift/swift.conf
chown -R swift. /etc/swift
swift-ring-builder /etc/swift/account.builder create 12 2 1
swift-ring-builder /etc/swift/container.builder create 12 2 1
swift-ring-builder /etc/swift/object.builder create 12 2 1
swift-ring-builder /etc/swift/account.builder add r0z0-$controller_ip:6002/device0 100
swift-ring-builder /etc/swift/container.builder add r0z0-$controller_ip:6001/device0 100
swift-ring-builder /etc/swift/object.builder add r0z0-$controller_ip:6000/device0 100
swift-ring-builder /etc/swift/account.builder add r1z1-$compute_ip:6002/device1 100
swift-ring-builder /etc/swift/container.builder add r1z1-$compute_ip:6001/device1 100
swift-ring-builder /etc/swift/object.builder add r1z1-$compute_ip:6000/device1 100
swift-ring-builder /etc/swift/account.builder rebalance
swift-ring-builder /etc/swift/container.builder rebalance
swift-ring-builder /etc/swift/object.builder rebalance
chown swift. /etc/swift/*.gz
systemctl restart swift-proxy
(echo 'y')|apt-get