1 环境准备
1.1 版本
Linux系统版本:Ubuntu Server 12.04.1 LTS;
Swift版本:1.0(稍后安装);
Python版本:2.7.3(稍后安装);
Python-swiftclient版本:1.3.0(稍后安装)。
1.2 节点IP
IP:192.168.1.107。
1.3 替换镜像(可选步骤)
网速较慢或者安装软件失败的情况下,可以考虑替换成国内的镜像:
vsroot@ubuntu:~$ sudo sed -i's#us.archive.ubuntu.com#mirrors.163.com#g' /etc/apt/sources.list
vsroot@ubuntu:~$ sudo apt-get update
1.4 系统时间
vsroot@ubuntu:~$ date #查看系统时间是否正确,正确的话则忽略下面两步
vsroot@ubuntu:~$ sudo date -s"2013-11-04 15:05:57" #设置系统时间
vsroot@ubuntu:~$ sudo hwclock –w #写入硬件时间
1.5 关闭防火墙
请确保已关闭SELinux。
vsroot@ubuntu:~$ sudo ufw disable #关闭防火墙
2 通用的OS配置
2.1 创建Swift用户
vsroot@ubuntu:~$ sudo useradd -mk/home/swift -s /bin/bash swift
vsroot@ubuntu:~$ sudo passwd swift # 不妨把用户swift的密码设置成swift
编辑/etc/sudoers,在文件末尾添加以下内容:
vsroot@ubuntu:~$ sudo vim /etc/sudoers
# User alias specification
swift ALL=(ALL) NOPASSWD:ALL
之后就可以切换到swift用户进行后续操作了:
vsroot@ubuntu:~$ su swift
2.2 安装Swift依赖库
swift@ubuntu:~$ sudo apt-get install curlgcc memcached rsync sqlite3 xfsprogs git-core libffi-dev python-setuptools
swift@ubuntu:~$ sudo apt-get installpython-coverage python-dev python-nose python-simplejson python-xattrpython-eventlet python-greenlet python-pastedeploy python-netifaces python-pippython-dnspython python-mock
2.3 安装Swift相关软件
swift@ubuntu:~$ sudo add-apt-repositorycloud-archive:grizzly
swift@ubuntu:~$ sudo apt-get update
swift@ubuntu:~$ sudo apt-get install swiftpython-swiftclient openssh-server
2.4 创建Swift工作目录
swift@ubuntu:~$ sudo mkdir -p /etc/swift
swift@ubuntu:~$ sudo chown -R swift:swift/etc/swift/
2.5 创建Swift配置文件
swift@ubuntu:~$ cat>/etc/swift/swift.conf <<EOF
[swift-hash]
# random unique strings that can neverchange (DO NOT LOSE)
swift_hash_path_prefix = `od -t x8 -N 8 -An </dev/random`
swift_hash_path_suffix = `od -t x8 -N 8 -An </dev/random`
EOF
2.6 设置IP的环境变量
根据自身真实IP设置如下:
swift@ubuntu:~$ export LOCAL_NET_IP=192.168.1.107
考虑到export命令只对当前用户的当前会话生效,也可以考虑将环境变量写到/etc/profile中:
swift@ubuntu:~$ sudo vim /etc/profile
swift@ubuntu:~$ source /etc/profile #当前会话立即生效
2.7 创建Swift服务目录并修改开机配置文件
swift@ubuntu:~$ sudo mkdir -p/var/cache/swift /var/cache/swift2 /var/cache/swift3 /var/cache/swift4
swift@ubuntu:~$ sudo chown swift:swift/var/cache/swift*
swift@ubuntu:~$ sudo mkdir -p/var/run/swift
swift@ubuntu:~$ sudo chown swift:swift/var/run/swift
swift@ubuntu:~$ sudo vim /etc/rc.local
sudo mkdir -p /var/cache/swift/var/cache/swift2 /var/cache/swift3 /var/cache/swift4
sudo chown swift:swift /var/cache/swift*
sudo mkdir -p /var/run/swift
sudo chown swift:swift /var/run/swift
exit 0
3 配置Proxy服务
3.1 安装swift-proxy库
swift@ubuntu:~$ sudo apt-get installswift-proxy memcached
3.2 配置memcached并监听默认的端口
swift@ubuntu:~$ sudo perl -pi -e "s/-l127.0.0.1 /-l $LOCAL_NET_IP/" /etc/memcached.conf # 替换成自己的IP
3.3 重启memcached服务器
swift@ubuntu: ~$ sudo service memcachedrestart
最好检查一下memcached服务是否已经正常启动。
3.4 创建Proxy服务器配置文件
swift@ubuntu:~$ cat>/etc/swift/proxy-server.conf <<EOF
[DEFAULT]
bind_port = 8080
workers = 1
user = swift
log_facility = LOG_LOCAL1
eventlet_debug = true
[pipeline:main]
# Yes, proxy-logging appears twice. This isnot a mistake.
pipeline = healthcheck proxy-logging cachetempauth proxy-logging proxy-server
[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true
[filter:tempauth]
use = egg:swift#tempauth
user_admin_admin = admin .admin.reseller_admin
user_test_tester = testing .admin
user_test2_tester2 = testing2 .admin
user_test_tester3 = testing3
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:cache]
use = egg:swift#memcache
memcache_servers = $LOCAL_NET_IP:11211
[filter:proxy-logging]
use = egg:swift#proxy_logging
EOF
3.5 确保所有配置文件都属于swift用户
swift@ubuntu:~$ sudo chown -R swift:swift/etc/swift