Установка OpenStack Swift на Ubuntu Server

Установка OpenStack Swift на Ubuntu Server

Установка Swift All in One (SAIO) на Ubuntu Server
1) Устанавливаем пакеты
sudo apt-get update
sudo apt-get install curl gcc memcached rsync sqlite3 xfsprogs git-core libffi-dev python-setuptools liberasurecode-dev libssl-dev
sudo 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
  2) Далее нужно выбрать среди 2 вариантов 2.1 или 2.2 2.1 Если устанавливаете в отдельный раздел диска:
sudo fdisk /dev/sdb
sudo mkfs.xfs /dev/sdb1
Открываем /etc/fstab добавляем в конец
/dev/sdb1 /mnt/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0
Создаем точки монтирования и ссылки:
sudo mkdir /mnt/sdb1
sudo mount /mnt/sdb1
sudo mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
sudo chown ${USER}:${USER} /mnt/sdb1/*
sudo mkdir /srv
for x in {1..4}; do sudo ln -s /mnt/sdb1/$x /srv/$x; done
sudo mkdir -p /srv/1/node/sdb1 /srv/1/node/sdb5 \
/srv/2/node/sdb2 /srv/2/node/sdb6 \
/srv/3/node/sdb3 /srv/3/node/sdb7 \
/srv/4/node/sdb4 /srv/4/node/sdb8 \
/var/run/swift
sudo chown -R ${USER}:${USER} /var/run/swift
# **Make sure to include the trailing slash after /srv/$x/**
for x in {1..4}; do sudo chown -R ${USER}:${USER} /srv/$x/; done
  2.2 Для использования существующего места на диске:
sudo mkdir /srv
sudo truncate -s 1GB /srv/swift-disk # выделяем допустимый размер, в данном случае 1ГБ
sudo mkfs.xfs /srv/swift-disk
  Открываем /etc/fstab добавляем в конец
/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0
  Создаем точки монтирования и ссылки:
sudo mkdir /mnt/sdb1
sudo mount /mnt/sdb1
sudo mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
sudo chown ${USER}:${USER} /mnt/sdb1/*
for x in {1..4}; do sudo ln -s /mnt/sdb1/$x /srv/$x; done
sudo mkdir -p /srv/1/node/sdb1 /srv/1/node/sdb5 /srv/2/node/sdb2 /srv/2/node/sdb6 /srv/3/node/sdb3 /srv/3/node/sdb7 /srv/4/node/sdb4 /srv/4/node/sdb8 /var/run/swift
sudo chown -R ${USER}:${USER} /var/run/swift
# **Make sure to include the trailing slash after /srv/$x/**
for x in {1..4}; do sudo chown -R ${USER}:${USER} /srv/$x/; done
  Добавляем следующие строки в файл /etc/rc.local (перед exit 0):
mkdir -p /var/cache/swift /var/cache/swift2 /var/cache/swift3 /var/cache/swift4
chown <your-user-name>:<your-group-name> /var/cache/swift*
mkdir -p /var/run/swift
chown <your-user-name>:<your-group-name> /var/run/swift
  Устанавливаем клиент для swift:
cd $HOME; git clone https://github.com/openstack/python-swiftclient.git
cd $HOME/python-swiftclient; sudo python setup.py develop; cd -
  Скачиваем и уставливаем дистрибутив swift:
git clone https://github.com/openstack/swift.git
cd $HOME/swift; sudo python setup.py develop; cd -
sudo pip install -U xattr
sudo pip install -r test-requirements.txt
  Настрайваем rsyncd.conf
sudo cp $HOME/swift/doc/saio/rsyncd.conf /etc/
sudo sed -i "s/<your-user-name>/${USER}/" /etc/rsyncd.conf
  Редактируем /etc/default/rsync:
RSYNC_ENABLE=true
sudo service rsync restart
rsync rsync://pub@localhost/
  На что получили ответ:
account6012
account6022
account6032
account6042
container6011
container6021
container6031
container6041
object6010
object6020
object6030
object6040

sudo service memcached start
sudo chkconfig memcached on // включаем автозагрузку у ubuntu $ sudo update-rc.d memcached defaults
  4) Логирование .... необязательно
sudo cp $HOME/swift/doc/saio/rsyslog.d/10-swift.conf /etc/rsyslog.d/
 
Отредактировать /etc/rsyslog.conf в секции “GLOBAL DIRECTIVES”:

$PrivDropToGroup adm
  Если включены в конфиге hourly logs ( я не включал)Ж
sudo mkdir -p /var/log/swift/hourly
  Иначе:
sudo mkdir -p /var/log/swift
  Запуск логирования:
sudo chown -R syslog.adm /var/log/swift
sudo chmod -R g+w /var/log/swift
sudo service rsyslog restart
  5) Если уже существует директория /etc/swift удалите:
sudo rm -rf /etc/swift
Скопируйте дефотные конфиги в /etc/swift :
cd $HOME/swift/doc; sudo cp -r saio/swift /etc/swift; cd -
sudo chown -R ${USER}:${USER} /etc/swift
 
mkdir -p $HOME/bin
find /etc/swift/ -name \*.conf | xargs sudo sed -i "s/<your-user-name>/${USER}/"
cd $HOME/swift/doc; cp saio/bin/* $HOME/bin; cd -
chmod +x $HOME/bin/*
  Если вы монтировали раздел из свободного пространства (как я):
sed -i "s/dev\/sdb1/src\/swift-disk/" $HOME/bin/resetswift
Если вы не закотели писать логи (я захотел):
sed -i "/find \/var\/log\/swift/d" $HOME/bin/resetswift
  Копируем тестовую конфигурацию:
cp $HOME/swift/test/sample.conf /etc/swift/test.conf
  Добавляем переменную окружения
echo "export SWIFT_TEST_CONFIG_FILE=/etc/swift/test.conf" >> $HOME/.bashrc
Убедитель что указан правильный путь к папке bin:
echo "export PATH=${PATH}:$HOME/bin" >> $HOME/.bashrc
Перезагрузим окружеие :
. $HOME/.bashrc
Пересобираем кольца
remakerings
  Проведем ряд тестов:
$HOME/swift/.unittests
Стартуем все сервисы SWIFT
startmain
Получаем an X-Storage-Url и X-Auth-Token
curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:8080/auth/v1.0
OK Авторизация через токены:
curl -v -H 'X-Auth-Token: <token-from-x-auth-token-above>' <url-from-x-storage-url-above>
авторизоватлись, но там ничего нет Проверка сущестующей информации по юзеру test:tester :
swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing stat
Загрузка файла для начала скачаем что нибудь
wget https://weblst.ru/item.jpg
Загрузим картинку item.jpg в контейнер images
swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing upload images item.jpg
Картинка должна быть доступна по адресу http://127.0.0.1:8080/v1/AUTH_test/images/item.jpg по умолчанию у контейнера images нет прав на чтение
swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing post -r '.r:*' images
теперь картинки в контейнере images доступны
Стартуем сервисы . тоже самое что startmain
swift-init main start
Останавливаем сервисы
swift-init all stop
Также есть команда которая заоново создает разделы для окружения swift, удаляя старый раздел
все данные потрутся в разделе и картинки не будет
resetswift

Возврат к списку