First We need to Installing dependencies
- Hit super user
sudo su
apt-get update -y
apt-get install curl gcc memcached rsync sqlite3 xfsprogs \
git-core libffi-dev python-setuptools \
liberasurecode-dev libssl-dev
apt-get install python-coverage python-dev python-nose \
python-xattr python-eventlet \
python-greenlet python-pastedeploy \
python-netifaces python-pip python-dnspython \
python-mock
Then, Git Cloning swift python client
sudo apt-get update
git clone https://github.com/openstack/python-swiftclient.git
git checkout is optional but good thing to check
git checkout stable/train
pip install -r requirements.txt
python setup.py install
git clone https://github.com/openstack/swift.git
git checkout stable/train
python setup.py install
Copying Swift Configuration Files
mkdir -p /etc/swift
cd swift/etc
cp account-server.conf-sample /etc/swift/account-server.conf
cp container-server.conf-sample /etc/swift/container-server.conf
cp object-server.conf-sample /etc/swift/object-server.conf
cp proxy-server.conf-sample /etc/swift/proxy-server.conf
cp drive-audit.conf-sample /etc/swift/drive-audit.conf
cp swift.conf-sample /etc/swift/swift.conf
swift-init -h
Here I needed to install swift
apt install python-swift
Adding Drives to swift checking blocks
ls /sys/block
mkdir -p /srv/node/d1
mkdir -p /srv/node/d2
mkdir -p /srv/node/d3
Add User in Swift create user swift then add
chown -R swift:swift /srv/node
Mount
cd swift/bin
nano mount_devices.sh
cat mount_devices.sh
#!/bin/bash
sudo mount -t xfs -o noatime,nodiratime,logbufs=8 -L d1 /srv/node/d1
sudo mount -t xfs -o noatime,nodiratime,logbufs=8 -L d2 /srv/node/d2
sudo mount -t xfs -o noatime,nodiratime,logbufs=8 -L d3 /srv/node/d3
check everything mounted properly or not
cat /etc/mtab | grep /dev/sd
Create Swift Ring-file
cd /etc/swift
swift-ring-builder account.builder create 3 3 1
swift-ring-builder container.builder create 3 3 1
swift-ring-builder object.builder create 3 3 1
swift-ring-builder account.builder add r1z1-127.0.0.1:6002/d1 100
swift-ring-builder container.builder add r1z1-127.0.0.1:6001/d1 100
swift-ring-builder object.builder add r1z1-127.0.0.1:6000/d1 100
swift-ring-builder account.builder add r1z1-127.0.0.1:6002/d2 100
swift-ring-builder container.builder add r1z1-127.0.0.1:6001/d2 100
swift-ring-builder object.builder add r1z1-127.0.0.1:6000/d2 100
swift-ring-builder account.builder add r1z1-127.0.0.1:6002/d3 100
swift-ring-builder container.builder add r1z1-127.0.0.1:6001/d3 100
swift-ring-builder object.builder add r1z1-127.0.0.1:6000/d3 100
Balancing the rings
swift-ring-builder account.builder rebalance
swift-ring-builder container.builder rebalance
swift-ring-builder object.builder rebalance
ls
Changing the binding ports account
swift-ring-builder account.builder
nano account-server.conf
bind_port : 6002
container
swift-ring-builder container.builder
nano container-server.conf
bind_port : 6001
object
swift-ring-builder object.builder
nano object-server.conf
bind_port : 6000
bind port for proxy server
nano proxy-server.conf
Bind_port : 8080
cd /etc
cd rsyslog.d
nano 0-swift.conf
local0.* /var/log/swift/all.log
cd /etc/rsyslog.d
mkdir /var/log/swift
chown -R syslog.adm /var/log/swift
chmod -R g+w /var/log/swift
service rsyslog restart
cd /etc/swift
nano swift.conf
swift_hash_path_suffix = RzUfDdu32L7J2ZBDYgsD6YI3Xie7hTVO8/oaQbpTbI8=
swift_hash_path_prefix = OZ1uQJNjJzTuFaM8X3v%fsJ1iR#F8wJjf9uhRiABevQ4
cd
cd ~/python-swiftclient
swift-init proxy restar