Git Product home page Git Product logo

fabgis's Introduction

FabGIS

'Fabric tasks for the busy FOSSGIS professional'

Welcome to the fabgis project! The purpose of this project is to commodotise the deployment of FOSSGIS services onto services. By commodotise we mean 'treat servers as expendible and rapidly replaceable entities that can be deployed either singularly or en masse'.

Warning

While we try our best to make stable and reliable tasks, there is the inherant danger that these tasks may break some configuration on a running server. Before using in any production environment, test, test and test again in a sandboxed environment. We take NO RESPONSIBILITY for any bad things that may happen on your system.

Warning

Yeah I know we are going a bit overboard with our warnings but please note that these scripts do not harden your server against intrusion / maximum security - that is YOUR RESPONSIBILITY.

To achieve this we use the wonderful fabric library (http://fabfile.org). If you want to get more familiar with fabric, there is a very nice article here: http://www.linuxjournal.com/content/fabric-system-administrators-best-friend which contains enough information to get you started.

What kind of services do we commodotise? Here are a few of the kinds of activities you can do with fabgis:

  • Install PostgreSQL and PostGIS (both 1.5 and 2.0). We support 1.5 because many DJANGO instances still rely on it.
  • Install QGIS (both 1.8 and master), built from source for optimium performance.
  • Install QGIS Server (both 1.8 and master), again built from source.
  • Backup and restore Postgresql databases (pulling a backup off the server and pushing a backup up to the server and restoring it).
  • Deploying a DJANGO application under apache.
  • Deploying a website under apache.
  • Deploying a UMN Mapserver instance.

We plan on supporting many other activities (tasks in fabric parlance).

Getting started

Note

All documentation here assumes that your host and target systems use Ubuntu. The procedures will probably work on other debian derivatives. Support for other operating systems is not yet available.

To get started, you need to install fabric and fabtools. This command will take care of that for you:

sudo pip install -r requirements.txt

We assume you have pip installed and that you are happy to install these as system packages. If not, consider deploying a venv in the fabgis root directory and activating it before trying any of the examples listed below.

Testing with Vagrant

You need to have a server to deploy to. The simplest use case is to deploy directly onto localhost. For testing we recommend and support using Vagrant since the testing will be in a sandbox that you can destroy and recreate from scratch (which is kinda the whole point of fabgis).

Vagrant will spin up a virtual machine and you can run your vagrant tasks in the Vagrant instance. A Vagrantfile is provided in this repository so that you can try out the tools provided by fabgis is a sandbox with no risk of damaging your production systems.

To start you need to install vagrant on your system:

wget -c http://files.vagrantup.com/packages/a7853fe7b7f08dbedbc934eb9230d33be6bf746f/vagrant_1.2.1_x86_64.deb
sudo dpkg -i vagrant_1.2.1_x86_64.deb

The download is around 20mb.

Note

Don't use the one in apt - it is old (at the time of writing anyway).

Some examples

Here is how we might create a new postgis 1.5 instance on the target host:

fab vagrant create_postgis_1_5_db:dbname=test

fabgis's People

Contributors

timlinux avatar mach0 avatar

Watchers

James Cloos avatar George Irwin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.