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`)