Coder Social home page Coder Social logo

puppet-bruno's Introduction

bRUNo - Ruby, Unicorn, Nginx on puppet

WARNING This is pre-release, unstable, untested code. Use at your own risk

The aim of this project is to provide an heroku-like, black-box container for ruby applications, whose infrastructure is entirely managed by puppet.

It currently supports installation of a ruby interpreter through rbenv in a sandbox user directory; creation of per-user sandboxes for applications; God installation as process manager; setup of systemwide services such as starling and libreoffice; installation and management of Postgresql roles and databases for apps, and wrapping it everything up on multiple servers.

Concepts

Each server must define two parameters: $bruno_env and $bruno_role. The first may contain whichever environment you like, such as staging or production, while role may contain one or more of the following tags: server, worker or database.

  • server roles get nginx and application servers (unicorn & thin) installed and the database.yml configuration file generated
  • worker roles get libreoffice, starling, and resque installed and the database.yml configuration file generated
  • database roles get postgresql installed and configured, and get new users and databases created as needed.

Each deployed app defines its resources through a standard puppet .pp manifest file.

TODO

  • git post-receive hook

    • on the first time ever the app is deployed, parse an app Manifest and then generate the app.pp file and manually trigger a puppet kick
    • on subsequent runs, then launch the buildpack and restart the app server of choice.
  • application shell

  • log viewer

  • status CLI

  • Tests and documentation ๐Ÿ˜‰

Projects to build upon

Dependencies

Caveats

  • Tested only on Puppet Enterprise 2.5 running on OpenSuSE 11.4 (sorry)
  • Requires the puppet dashboard ENC
  • A role can be assigned only to a single node - you cannot have two "database" servers as of now

Licensing

BSD 2-clause

puppet-bruno's People

Contributors

vjt avatar

Stargazers

dariomas avatar Chris Thompson avatar Gianluca Varisco avatar Gardiner Allen avatar Matteo Collina avatar Fabrizio Regini avatar

Watchers

 avatar James Cloos avatar  avatar

Forkers

freegenie

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.