diff --git a/README.md b/README.md index cb144a516da..88f8006c653 100644 --- a/README.md +++ b/README.md @@ -3,29 +3,33 @@ Ansible Ansible is a extra-simple Python API for doing 'remote things' over SSH. -As Func, which I co-wrote, aspired to avoid using SSH and have it's own daemon infrastructure, Ansible aspires to be quite different and more minimal, but still able to grow more modularly over time. +While Func, which I co-wrote, aspired to avoid using SSH and have it's own daemon infrastructure, Ansible aspires to be quite different and more minimal, but still able to grow more modularly over time. Principles ========== -* Dead simple setup -* No server or client daemons, uses existing SSHd -* Only SSH keys are allowed for authentication -* usage of ssh-agent is more or less required -* plugins can be written in ANY language -* as with Func, API usage is an equal citizen to CLI usage + * Dead simple setup + * No server or client daemons, uses existing SSHd + * Only SSH keys are allowed for authentication + * usage of ssh-agent is more or less required + * plugins can be written in ANY language + * as with Func, API usage is an equal citizen to CLI usage + * use Python's multiprocessing capabilities to emulate Func's forkbomb logic Requirements ============ -* python 2.6 -- or a backport of the multiprocessing module -* paramiko +For the server the tool is running from, *only*: + + * python 2.6 -- or a backport of the multiprocessing module + * paramiko Inventory file ============== The default inventory file (-H) is ~/.ansible_hosts and is a list -of all hostnames to target with ansible, one per line. +of all hostnames to target with ansible, one per line. These +can be hostnames or IPs This list is further filtered by the pattern wildcard (-P) to target specific hosts. @@ -55,7 +59,8 @@ data = runner.run() } Additional options to runner include the number of forks, hostname -exclusion pattern, library path, and so on. +exclusion pattern, library path, and so on. Read the source, it's not +complicated. Parallelism =========== @@ -64,27 +69,35 @@ Specify the number of forks to use, to run things in greater parallelism. ansible -f 10 "*.example.com" -m modName -a "arg1 arg2" +10 forks. The default is 3. 5 is right out. + Bundled Modules =============== See the example library for modules, they can be written in any language and simply return JSON to stdout. The path to your ansible library is specified with the "-L" flag should you wish to use a different location -than "~/ansible". +than "~/ansible". There is potential for a sizeable community to build +up around the library scripts. -Features not supported from Func (by design) +Features not supported from Func (yet?) ============================================ -* Delegation for treeish topologies -* Asynchronous modes for long running tasks -- background tasks on your own + * Delegation for treeish topologies + * Asynchronous modes for polling long running operations Future plans ============ -* Dead-simple declarative configuration management & facts engine, with - probes implementable in any language. + * Dead-simple declarative configuration management using + a runbook style recipe file + * facts engine, including exec'ing facter if present Author ====== -* Michael DeHaan | http://michaeldehaan.net/ +Michael DeHaan + +http://michaeldehaan.net/ + +