Browse files

Initial import.

  • Loading branch information...
0 parents commit 3173488284ad98dd530f1af2627bd0b8e2511255 @soveran committed Sep 9, 2011
Showing with 131 additions and 0 deletions.
  1. +131 −0 index.html
131 index.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>tele</title>
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
+ </head>
+ <body>
+ <pre>
+ <strong>TELE</strong>(1)
+
+ <strong>NAME</strong>
+ tele -- Provisioning at a distance.
+
+ <strong>SYNOPSIS</strong>
+ tele [-h] [-d path] (init|deploy)
+
+ <strong>DESCRIPTION</strong>
+ Tele is a small provisioning framework that allows you to run
+ bash scripts on remote servers over SSH. It uses your own SSH,
+ not a Ruby version, so you can profit from your settings and
+ public/private keys.
+
+ It uses the following directory structure to store the recipes and
+ configuration files:
+
+ .tele/layout.json
+ .tele/ssh_config
+ .tele/recipes/redis.sh
+ .tele/recipes/unicorn.sh
+
+ In the example, there are recipes for Redis and Unicorn. Please
+ note that you are in charge of creating them.
+
+ layout.json
+ The server layout, with the available roles and servers.
+ Example:
+
+ {
+ "roles": {
+ "db": ["redis"],
+ "web": ["ruby", "unicorn"],
+ "app": ["db", "web"]
+ },
+
+ "servers": {
+ "app-1": ["db", "web"],
+ "app-2": ["db"],
+ "app-3": ["app"]
+ }
+ }
+
+ The key "roles" stores a tree, where each key is mapped to an
+ array of recipes. The leaves--those elements in the tree that
+ are not present as keys--are the ones that have to be available
+ as bash scripts. In this example, both "redis" and "unicorn"
+ are leaves, while "db", "web" and "app" are recipes composed of
+ other recipes.
+
+ The key "servers" stores a map of servers to roles. The keys
+ can be either hostnames declared in .tele/ssh_config or IP
+ addresses.
+
+ ssh_config
+ Configuration file for the SSH connection. Check the SSH_CONFIG
+ man page for more information.
+
+ The following options are available:
+
+ -h
+ Displays this help message.
+
+ -d path
+ Sets path as the directory where tele will search for scripts
+ and configuration files. You can also use the environment
+ variable TELE_HOME.
+
+ init
+ Copies a .tele template to the current directory.
+
+ deploy
+ Runs every recipe script on the servers declared in
+ layout.json. The exit code must be 0 if the command was
+ successful.
+
+ tail
+ Displays standard output and standard error from each running
+ recipe.
+
+ <strong>USAGE</strong>
+ To provision two servers called `server1` and `server2` with Redis,
+ starting from scratch:
+
+ # Create the .tele directory.
+ $ tele init
+
+ # Create the Redis recipe.
+ $ echo "which redis-server || sudo apt-get install redis" > .tele/recipes/redis.sh
+
+ # Edit .tele/layout.json as follows:
+
+ {
+ "roles": {
+ "db": ["redis"]
+ },
+
+ "servers": {
+ "server1": ["db"],
+ "server2": ["db"]
+ }
+ }
+
+ # Edit .tele/ssh_config:
+
+ Host server1
+ Hostname 10.0.0.1
+
+ Host server2
+ Hostname 10.0.0.2
+
+ # Run tele deploy
+ $ tele deploy
+
+ <strong>INSTALLATION</strong>
+ $ gem install tele
+
+ <strong>CODE</strong>
+ This project is open source, and the code is available
+ at <a href="https://github.com/djanowski/tele">https://github.com/djanowski/tele</a>.
+ </pre>
+ </body>
+</html>

0 comments on commit 3173488

Please sign in to comment.