README.md in chake-0.8 vs README.md in chake-0.9
- old
+ new
@@ -1,18 +1,24 @@
-# chake
+chake(1) - serverless configuration with chef
+=============================================
-Simple host management with chef and rake. No chef server required.
+chake is a tool that helps you manage multiple hosts with, without the need for
+a chef server. Configuration is managed in a local directory, which should
+probably be under version control with **git(1)** or anything else.
+Configuration is usually deployed via rsync over SSH, and applied by invoking
+**chef-solo(1)** over SSH on each host.
## Installation
$ gem install chake
## Creating the repository
```
$ chake init
[create] nodes.yaml
+[ mkdir] nodes.d/
[create] config.rb
[ mkdir] config/roles
[ mkdir] cookbooks/basics/recipes/
[create] cookbooks/basics/recipes/default.rb
[create] Rakefile
@@ -21,10 +27,11 @@
A brief explanation of the created files:
|File|Description|
|----|-----------|
| `nodes.yaml` | where you will list the hosts you will be managing, and what recipes to apply to each of them. |
+| `nodes.d` | a directory with multiple files in the same format as nodes.yaml. All files matching `*.yaml` in it will be added to the list of nodes. |
| `config.rb` | contains the chef-solo configuration. You can modify it, but usually you won't need to. |
| `config/roles` | directory is where you can put your role definitions. |
| `cookbooks` | directory where you will store your cookbooks. A sample cookbook called "basics" is created, but feel free to remove it and add actual cookbooks. |
| `Rakefile` | Contains just the `require 'chake'` line. You can augment it with other tasks specific to your intrastructure. |
@@ -200,18 +207,29 @@
```
When you run `rake converge` on `desktop`, `laptop` will be skipped, and
vice-versa.
-### Environment variables
+## Environment variables
-|Variable|Meaning|Default value|
-|--------|-------|-------------|
-| `$CHAKE_SSH_CONFIG` | local SSH configuration file | `.ssh_config` |
-| `$CHAKE_SSH_PREFIX` | Command to prefix SSH (and rsync over SSH) calls with | _none_ |
-| `$CHAKE_RSYNC_OPTIONS` | extra options to pass to `rsync`. Useful to e.g. exclude large files from being upload to each server | _none_ |
-| `$CHAKE_NODES` | File containing the list of servers to be managed | `nodes.yaml` |
-| `$CHAKE_TMPDIR` | Directory used to store temporary cache files | `tmp/chake` |
+* `$CHAKE_SSH_CONFIG`:
+ Local SSH configuration file. Defaults to `.ssh_config`.
+* `$CHAKE_SSH_PREFIX`:
+ Command to prefix SSH (and rsync over SSH) calls with.
+* `$CHAKE_RSYNC_OPTIONS`:
+ extra options to pass to `rsync`. Useful to e.g. exclude large files from
+ being upload to each server.
+* `$CHAKE_NODES`:
+ File containing the list of servers to be managed. Default: `nodes.yaml`.
+* `$CHAKE_NODES_D`:
+ Directory containing node definition files servers to be managed. Default: `nodes.d`.
+* `$CHAKE_TMPDIR`:
+ Directory used to store temporary cache files. Default: `tmp/chake`.
+
+## See also
+
+* **rake(1)**, **chef-solo(1)**
+* Chef documentation: https://docs.chef.io/
## Contributing
1. Fork it ( http://github.com/terceiro/chake/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)