Readme edits

This commit is contained in:
Michael DeHaan 2012-02-23 14:28:39 -05:00
parent 381b3c971a
commit 5170a9fe2c

View file

@ -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 <michael.dehaan@gmail.com> | http://michaeldehaan.net/
Michael DeHaan <michael.dehaan@gmail.com>
http://michaeldehaan.net/