Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 132 lines (101 sloc) 4.231 kB
3173488 @soveran Initial import.
authored
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <title>tele</title>
5 <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
6 </head>
7 <body>
8 <pre>
9 <strong>TELE</strong>(1)
10
11 <strong>NAME</strong>
12 tele -- Provisioning at a distance.
13
14 <strong>SYNOPSIS</strong>
15 tele [-h] [-d path] (init|deploy)
16
17 <strong>DESCRIPTION</strong>
18 Tele is a small provisioning framework that allows you to run
19 bash scripts on remote servers over SSH. It uses your own SSH,
20 not a Ruby version, so you can profit from your settings and
21 public/private keys.
22
23 It uses the following directory structure to store the recipes and
24 configuration files:
25
26 .tele/layout.json
27 .tele/ssh_config
28 .tele/recipes/redis.sh
29 .tele/recipes/unicorn.sh
30
31 In the example, there are recipes for Redis and Unicorn. Please
32 note that you are in charge of creating them.
33
34 layout.json
35 The server layout, with the available roles and servers.
36 Example:
37
38 {
39 "roles": {
40 "db": ["redis"],
41 "web": ["ruby", "unicorn"],
42 "app": ["db", "web"]
43 },
44
45 "servers": {
46 "app-1": ["db", "web"],
47 "app-2": ["db"],
48 "app-3": ["app"]
49 }
50 }
51
52 The key "roles" stores a tree, where each key is mapped to an
53 array of recipes. The leaves--those elements in the tree that
54 are not present as keys--are the ones that have to be available
55 as bash scripts. In this example, both "redis" and "unicorn"
56 are leaves, while "db", "web" and "app" are recipes composed of
57 other recipes.
58
59 The key "servers" stores a map of servers to roles. The keys
60 can be either hostnames declared in .tele/ssh_config or IP
61 addresses.
62
63 ssh_config
64 Configuration file for the SSH connection. Check the SSH_CONFIG
65 man page for more information.
66
67 The following options are available:
68
69 -h
70 Displays this help message.
71
72 -d path
73 Sets path as the directory where tele will search for scripts
74 and configuration files. You can also use the environment
75 variable TELE_HOME.
76
77 init
78 Copies a .tele template to the current directory.
79
80 deploy
81 Runs every recipe script on the servers declared in
82 layout.json. The exit code must be 0 if the command was
83 successful.
84
85 tail
86 Displays standard output and standard error from each running
87 recipe.
88
89 <strong>USAGE</strong>
90 To provision two servers called `server1` and `server2` with Redis,
91 starting from scratch:
92
93 # Create the .tele directory.
94 $ tele init
95
96 # Create the Redis recipe.
97 $ echo "which redis-server || sudo apt-get install redis" > .tele/recipes/redis.sh
98
99 # Edit .tele/layout.json as follows:
100
101 {
102 "roles": {
103 "db": ["redis"]
104 },
105
106 "servers": {
107 "server1": ["db"],
108 "server2": ["db"]
109 }
110 }
111
112 # Edit .tele/ssh_config:
113
114 Host server1
115 Hostname 10.0.0.1
116
117 Host server2
118 Hostname 10.0.0.2
119
120 # Run tele deploy
121 $ tele deploy
122
123 <strong>INSTALLATION</strong>
124 $ gem install tele
125
126 <strong>CODE</strong>
127 This project is open source, and the code is available
128 at <a href="https://github.com/djanowski/tele">https://github.com/djanowski/tele</a>.
129 </pre>
130 </body>
131 </html>
Something went wrong with that request. Please try again.