Installing Bang =============== Overview -------- Bang is published in `PyPI `_ and can be installed via pip:: pip install bang However, Bang depends on other libraries for such things as cloud provider integration and configuration management. The OpenStack client libraries in particular have extra dependencies that can be tricky to install (e.g. `python-reddwarfclient `_ depends on `lxml `_). Installing Dependencies ----------------------- Debian/Ubuntu ~~~~~~~~~~~~~ ... Using System Packages ^^^^^^^^^^^^^^^^^^^^^^^^^ .. WARNING:: This will likely upgrade some of your system Python packages. E.g. On a stock Ubuntu 12.04 LTS installation, it upgrades `boto `_. The benefit of installing Bang into your system Python installation is that you don't need to build the native extensions in Bang's dependencies - you can just use the prebuilt packages for your system. The following commands will install Bang to your system Python installation:: sudo apt-get install python-pip python-lxml sudo pip install bang ... In a Virtualenv ^^^^^^^^^^^^^^^^^^^ Unfortunately, some of Bang's dependencies have native extensions that require extra headers and compilation tools. Install the build-time dependencies from the Debian/Ubuntu package repos:: sudo apt-get install build-essential python-dev libxml2-dev libxslt-dev Then install Bang as directed above. OSX ~~~ ... Using System Packages ^^^^^^^^^^^^^^^^^^^^^^^^^ ... In a Virtualenv ^^^^^^^^^^^^^^^^^^^ Install build-time dependencies with Homebrew, and link them: brew install libxml2 brew install libxslt brew link libxml2 --force brew link libxslt --force Then install Bang as directed above RightScale ~~~~~~~~~~ Bang allows you to combine traditional cloud providers like AWS with higher-level cloud managers like RightScale in the same stack. Generally, RightScale provides ample automation on top of AWS. However, it is sometimes necessary to supplement RightScale's features. E.g. - Using new AWS technologies that are not yet supported by RightScale. - Integrating inherited application stacks that do not use Chef. - Working with resources in multiple public cloud providers or even traditional private datacenters. To enable the ``rightscale`` provider, install the following dependency:: pip install python-rightscale==0.1.3 .. _openstack-deps: OpenStack ~~~~~~~~~ As much as possible, Bang uses official OpenStack client libraries to provision resources in OpenStack clouds. Prior to Bang 0.10, this dependency was explicitly defined in the Bang package such that ``pip install bang`` would install the OpenStack client libraries as well. From Bang 0.10 onwards, OpenStack users will need to install the client libraries on their own. .. NOTE:: Problems with the client libraries include: - Not having dependencies defined correctly in their packages - Unnecessary dependency on native libraries like lxml Bugs have been filed with upstream, but they have not been very responsive to feedback from outside the OpenStack organization. The following commands should install the necessary dependencies:: sudo apt-get install build-essential python-dev libxml2-dev libxslt-dev pip install \ python-novaclient==2.11.1 python-swiftclient==1.3.0 python-reddwarfclient==0.1.2 novaclient-auth-secretkey HP Cloud ^^^^^^^^ HP Cloud uses OpenStack as a base cloud operating system. However, HP has its own proprietary extensions and modifications which have meaningful effects on the provisioning API. Bang subclasses the appropriate OpenStack client library classes and adjusts behaviour for HP Cloud. In addition to the OpenStack dependency installation listed above, the following commands will enable Bang to deploy databases to HP Cloud's beta DBaaS:: pip install PyMySQL==0.5