Skip to content

Commit

Permalink
Added stub for ansible-playbook (format) docs. Docs on ansible-playbo…
Browse files Browse the repository at this point in the history
…ok script TBD once

written.
  • Loading branch information
mpdehaan committed Feb 27, 2012
1 parent fc4ba46 commit 2262705
Show file tree
Hide file tree
Showing 4 changed files with 352 additions and 13 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

ASCII2MAN = a2x -D $(dir $@) -d manpage -f manpage $<
ASCII2HTMLMAN = a2x -D docs/html/man/ -d manpage -f xhtml
MANPAGES := docs/man/man1/ansible.1 docs/man/man5/ansible-modules.1
MANPAGES := docs/man/man1/ansible.1 docs/man/man5/ansible-modules.1 docs/man/man5/ansible-playbook.1
SITELIB = $(shell python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")

docs: manuals
Expand Down
29 changes: 17 additions & 12 deletions docs/man/man5/ansible-modules.5
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ This module does not support change hooks\&.
.sp
Returns the return code from the program as well as timing information\&.
.sp
Async command running and command execution time limits are in plan\&.
Async command running and command execution time limits are in plan\&. These will probably be special keyvalue parameters expressed on the end of the command line, like ANSTIMEOUT=1 and ANS_ASYNC=1 or similar\&.
.SH "COPY"
.sp
The copy module takes a list of source files
Expand All @@ -56,28 +56,37 @@ Remote absolute path where the file should end up
This module also returns md5sum information about the resultant file\&.
.SH "FACTER"
.sp
Runs the discovery program \fIfacter\fR on the remote system, returning JSON data that can be useful for inventory purposes\&. It makes no changes on the remote system\&.
Runs the discovery program \fIfacter\fR on the remote system, returning JSON data that can be useful for inventory purposes\&.
.sp
Requires that \fIfacter\fR and \fIruby\-json\fR be installed on the remote end\&.
.sp
This module takes no parameters & does not support change hooks\&.
This module is information only \- it takes no parameters & does not support change hooks, nor does it make any changes on the system\&.
.SH "FILE"
.sp
Ensures the ownership and permissions of files are as desired\&.
.sp
Use copy or template first if you need to make sure a file is on the box\&.
.sp
In plan\&.
.SH "GIT"
.sp
Deploys software from git checkouts\&.
.sp
This module is in plan\&.
.SH "OHAI"
.sp
Similar to the facter module, this returns JSON inventory data but makes no changes on the remote system\&.
Similar to the facter module, this returns JSON inventory data\&. Ohai data is a bit more verbose and nested than facter\&.
.sp
Requires that \fIohai\fR be installed on the remote end\&.
.sp
This module takes no parameters & does not support change hooks\&.
This module is information only \- it takes no parameters & does not support change hooks, nor does it make any changes on the system\&.
.SH "PING"
.sp
A trivial test module, this module always returns the integer \fI1\fR on successful contact\&. It makes no changes on the remote system\&.
A trivial test module, this module always returns the integer \fI1\fR on successful contact\&.
.sp
This module does not support change hooks\&.
.sp
This module is information only \- it takes no parameters & does not support change hooks, nor does it make any changes on the system\&.
.SH "SERVICE"
.sp
Controls services on remote machines\&.
Expand All @@ -103,10 +112,8 @@ Writes a JSON file containing key/value data, for use in templating\&. Call this
\fBmetadata=\fR
.RS 4
Optionally overrides the default JSON file location of /etc/ansible/setup\&. If used, also supply the metadata parameter to
\fItemplate\fR\&.
\fItemplate\fR\&. Change if running as a non\-root remote user who does not have permissions on /etc/ansible\&.
.RE
.sp
Does not support change hooks yet, but in plan\&.
.SH "TEMPLATE"
.sp
Templates a file out to a remote server\&. Call the setup module prior to usage\&.
Expand All @@ -123,9 +130,7 @@ location to render the template on the remote server
.PP
\fBmetadata\fR
.RS 4
location of a JSON file to use to supply template data\&. Default is /etc/ansible/setup which can be easily created using the
\fIsetup\fR
module\&.
location of a JSON file to use to supply template data\&. Default is /etc/ansible/setup which is the same as the default for the setup module\&. Change if running as a non\-root remote user who does not have permissions on /etc/ansible\&.
.RE
.sp
This module also returns md5sum information about the resultant file\&.
Expand Down
113 changes: 113 additions & 0 deletions docs/man/man5/ansible-playbook.1.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
ansible-modules(5)
=================
:doctype:manpage
:man source: Ansible-playbook
:man version: 0.0.1
:man manual: System administration commands


NAME
----
ansible-playbook - format and function of an ansible playbook file


DESCRIPTION
-----------

Ansible ships with a ansible-playbook tool for running playbooks. Playbooks can represent
frequent tasks, desired system configurations, or deployment processes.


FORMAT
------

Playbooks are currently writeable in YAML. Other formats (JSON?) may be supported in the future.


EXAMPLE
-------

- pattern: '*'
hosts: '/etc/ansible/hosts'
tasks:
- do:
- configure template & module variables for future template calls
- setup http_port=80 max_clients=200
- do:
- write the apache config file
- template src=/srv/mytemplates/httpd.j2 dest=/etc/httpd/conf
notify:
- restart apache
- do
- ensure apache is running
- service name=httpd ensure=started
handlers:
- do:
- restart apache
- service name=httpd ensure=restarted
WHAT THE EXAMPLE MEANS
-----------------------

Here's what the above example will do.

For all hosts in /etc/ansible/hosts (one host per line) that are named 'webserver-anything', first
write a JSON file into /etc/ansible/setup on each remote system with the values
max_clients and http_port.

Next, use a Jinja2 template locally residing
at /srv/mytemplates/httpd.j2 to write the Apache config file on each host
to the path /etc/httpd/conf, using the previous values.

Ensure that apache is running if stopped.

If and only if the config file changed, note that we need to restart apache at the end of
the run, otherwise, don't bother because we already know it is running.


HIGH LEVEL EXPLANATION
----------------------

Playbooks are executed top down and can contain multiple references to patterns.
For instance, a playbook could do something to all webservers, then do something
to all database servers, then do something different to all webservers again.

For each pattern, the tasks in the 'tasks' list are executed in order for all
hosts in the host file matching the pattern.

For each task, a "do" statement describes what the task is and what ansible
module to use to accomplish the task, along with any arguments. The first
line in the "do" is the name of the task -- this will appear in any log output.

The second line in each "do" is the module name followed by module arguments.

Most modules accept key=value format arguments.

Handlers are like tasks, but are conditionally executed. If a module reports
a 'change', it can choose to notify a handler by name. If notified, it will
run only for hosts that changed.


FUTURE BEHAVIOR
---------------

What the playbook run does with a host when an error is detected is currently being refined
and is subject to change.


AUTHOR
------

Ansible was originally written by Michael DeHaan. See the AUTHORS file
for a complete list of contributors.


SEE ALSO
--------

ansible(1)

ansible-playbook(1) - pending

Ansible home page: <https://github.com/mpdehaan/ansible/>
Loading

0 comments on commit 2262705

Please sign in to comment.