======================================================= Building and Deploying Custom Debian packages for Swift ======================================================= This documents setting up the prerequisites, downloading the code and building Debian packages necessary to deploy the various components of the swift project code. These steps were done on a server running *Ubuntu 10.04 LTS (Lucid Lynx)*, but should give a good idea what to do on other distros. ------------------------------------------ Instructions for Deploying Swift-Core PPAs ------------------------------------------ These packages are built from the current development branch "trunk" * Add swift-core/ppa repository. As root::: apt-get install python-software-properties add-apt-repository ppa:swift-core/trunk apt-get update * Install the swift base packages:: apt-get install python-swift apt-get install swift * Install the swift packages depending on your implementations:: apt-get install swift-auth apt-get install swift-proxy apt-get install swift-account apt-get install swift-container apt-get install swift-object * Copy sample configuration files to `/etc/swift` directory and rename them to `*.conf files`:: cp -a /usr/share/doc/swift/*.conf-sample /etc/swift/ cd /etc/swift ; rename 's/\-sample$//' *.conf-sample * For servers running the swift-account, swift-container or swift-object the rsync.conf file should be moved to the `/etc` directory:: cd /etc/swift mv rsyncd.conf /etc * Modify configuration files to meet your implementation requirements the defaults have been not been geared to a multi-server implementation. --------------------------------------------------- Instructions for Building Debian Packages for Swift --------------------------------------------------- * Add swift-core/ppa repository and install prerequisites. As root:: apt-get install python-software-properties add-apt-repository ppa:swift-core/ppa apt-get update apt-get install curl gcc bzr python-configobj python-coverage python-dev python-nose python-setuptools python-simplejson python-xattr python-webob python-eventlet python-greenlet debhelper python-sphinx python-all python-openssl python-pastedeploy * As you #. Tell bzr who you are:: bzr whoami ' ' bzr lp-login #. Create a local bazaar repository for dev/testing:: bzr init-repo swift #. Pull down the swift/debian files:: cd swift bzr branch lp:~swift-core/swift/debian #. If you want to merge in a branch:: cd debian bzr merge lp: #. Create the debian packages:: cd debian bzr bd --builder='debuild -uc -us' #. Upload packages to your target servers:: cd .. scp *.deb root@:~/. ---------------------------------------------------- Instructions for Deploying Debian Packages for Swift ---------------------------------------------------- * On a Target Server, As root: #. Setup the swift ppa:: add-apt-repository ppa:swift-core/ppa apt-get update #. Install dependencies:: apt-get install rsync python-openssl python-setuptools python-webob python-simplejson python-xattr python-greenlet python-eventlet #. Install base packages:: dpkg -i python-swift__all.deb dpkg -i swift__all.deb #. Install packages depending on your implementation:: dpkg -i swift-auth__all.deb dpkg -i swift-proxy__all.deb dpkg -i swift-account__all.deb dpkg -i swift-container__all.deb dpkg -i swift-object__all.deb dpkg -i swift-doc__all.deb #. Copy sample configuration files to `/etc/swift` directory and rename them to `*.conf files`:: cp -a /usr/share/doc/swift/*.conf-sample /etc/swift/ cd /etc/swift rename 's/\-sample$//' *.conf-sample #. For servers running the swift-account, swift-container or swift-object the rsync.conf file should be moved to the `/etc` directory:: cd /etc/swift/ mv rsyncd.conf /etc #. Modify configuration files to meet your implementation requirements the defaults have been not been geared to a multi-server implementation.