README.md in opskeleton-0.4.3 vs README.md in opskeleton-0.4.4

- old
+ new

@@ -1,6 +1,5 @@ - <img src="https://raw.github.com/narkisr/vagrant-sketching-board/master/images/opskeleton.png" width='100%' hight='100%' alt="" /> # Intro Opskelaton is an opinionated bootstrap tool for local Sandbox projects. @@ -18,34 +17,29 @@ [![Build Status](https://travis-ci.org/narkisr/opskeleton.png)](https://travis-ci.org/narkisr/opskeleton) Usage ========= -Installing perquisites (on Ubuntu) +Perquisites (on Ubuntu): -```bash - $ sudo aptitude install ruby1.9.1 ruby1.9.1-dev - # see https://rvm.io/rvm/install/ - $ curl -L https://get.rvm.io | bash -s stable --ruby +* Vagrant 1.4.x +* RVM +* Ruby 1.9.x - # install vagrant [see](http://docs-v1.vagrantup.com/v1/docs/getting-started/) for latest package - $ wget http://files.vagrantup.com/packages/64e360814c3ad960d810456add977fd4c7d47ce6/vagrant_x86_64.deb - $ sudo dpkg -i vagrant_x86_64.deb - - # re-launch current terminal session, the following should work +```bash $ rvm use system $ sudo gem install opskeleton ``` Creating out first sandbox ```bash $ rvm use system # parameters include name vagrant-box - $ opsk generate redis ubuntu-12.10 + $ opsk generate redis ubuntu-13.10 $ cd redis-sandbox - # bundle installs gems in the background + $ bundle install $ librarian-puppet install $ vagrant up ``` ## Layout @@ -55,11 +49,11 @@ Folder layout: <img src="https://raw.github.com/narkisr/vagrant-sketching-board/master/images/opsk-folders.png" width='30%' hight='50%' alt="" /> -## Lifecycle +## Module lifecycle Opskelaton defines a simple module life cycle: 1. Internal non reusable modules (usually specific to a client site) go under static-modules 2. If we create a general reusable module which is ready for prime time we pull out to a new git repository. @@ -67,9 +61,55 @@ Life cycle scheme: <img src="https://raw.github.com/narkisr/vagrant-sketching-board/master/images/module-lifecycle-black.png" width='30%' hight='50%' alt="" /> +## Packaging + +Opskelaton fully supports deployment and portable execution of sandboxes on non Vagrant environments: + +```bash +$ opsk generate foo ubuntu-13.10 +$ cd foo-sandbox +# The package version file +$ cat opsk.yaml +--- + version: '0.0.1' + name: foo +# post bundle and gem install .. +$ opsk package + create pkg/foo-sandbox-0.0.1 + create pkg/foo-sandbox-0.0.1/scripts + create pkg/foo-sandbox-0.0.1/scripts/lookup.rb + chmod pkg/foo-sandbox-0.0.1/scripts/lookup.rb + create pkg/foo-sandbox-0.0.1/scripts/run.sh + chmod pkg/foo-sandbox-0.0.1/scripts/run.sh + create pkg/foo-sandbox-0.0.1/manifests/site.pp + exist pkg +$ ls pkg +foo-sandbox-0.0.1 foo-sandbox-0.0.1.tar.gz +``` +The packaging process creates a portable tar file that can be run on any machine with puppet installed via the bundled run.sh: + +```bash +$ tar -xvzf foo-sandbox-0.0.1.tar.gz +$ cd foo-sandbox-0.0.1 +$ sudo ./run.sh +``` + +An external node classifier based runner is also available under scripts/run.sh, this runner expects to get a <hostname>.yaml input file with the required node classes. + + +## Deployment + +The packaged tar files can be consumed using any tool and protocol however http is recommended, opsk has built in support for deploying public sandboxes into bintray: + +```bash +$ opsk package +$ opsk deploy <bintray-repo> +``` + +Make sure to [configure](https://github.com/narkisr/bintray-deploy#usage) configure the bintray API key. # Copyright and license Copyright [2013] [Ronen Narkis] Licensed under the Apache License, Version 2.0 (the "License");