summaryrefslogtreecommitdiff
path: root/docsite/rst/YAMLSyntax.rst
diff options
context:
space:
mode:
authorMichael DeHaan <michael.dehaan@gmail.com>2012-10-08 07:44:38 -0400
committerMichael DeHaan <michael.dehaan@gmail.com>2012-10-08 07:44:38 -0400
commitd6e4b1bf5b5d573c4f0161aec6d2235670fe41c2 (patch)
tree1bc317fc2564497b4738ea3054d1eef7f177b56e /docsite/rst/YAMLSyntax.rst
parentc8854a23ea97d892d87a40955307cb27bbc9d408 (diff)
parentbb0b2305e3ba6df2b7400f3ca6d20c5e3b69c360 (diff)
downloadansible-d6e4b1bf5b5d573c4f0161aec6d2235670fe41c2.tar.gz
Subtree merge of ansible-docs
Diffstat (limited to 'docsite/rst/YAMLSyntax.rst')
-rw-r--r--docsite/rst/YAMLSyntax.rst95
1 files changed, 95 insertions, 0 deletions
diff --git a/docsite/rst/YAMLSyntax.rst b/docsite/rst/YAMLSyntax.rst
new file mode 100644
index 0000000000..25be062a17
--- /dev/null
+++ b/docsite/rst/YAMLSyntax.rst
@@ -0,0 +1,95 @@
+YAML Syntax
+===========
+
+This page provides a basic overview of correct YAML syntax, which is how Ansible
+playbooks (our configuration management language) are expressed.
+
+We use YAML because it is easier to read and write for humans than other common
+data formats like XML or JSON. Further, there are libraries available for reading
+and writing YAML in most programming languages.
+
+You may also wish to read :doc:`playbooks` at the same time to see how this
+is used in practice.
+
+
+YAML Basics
+-----------
+
+For `ansible`, nearly every YAML file starts with a list.
+Each item in the list is a list of key/value pairs, commonly
+called a "hash" or a "dictionary". So, we need to know how
+to write lists and dictionaries in YAML.
+
+There's another small quirk to YAML. All YAML files (regardless of their association with
+`ansible` or not) should start with ``---``. This is just a YAML
+format thing that means "this is the start of a document".
+
+All members of a list are lines beginning at the same indentation level starting
+with a ``-`` (dash) character::
+
+ ---
+ # A list of tasty fruits
+ - Apple
+ - Orange
+ - Strawberry
+ - Mango
+
+A dictionary is represented in a simple ``key:`` and ``value`` form::
+
+ ---
+ # An employee record
+ name: John Eckersberg
+ job: Developer
+ skill: Elite
+
+Dictionaries can also be represented in an abbreviated form if you really want to::
+
+ ---
+ # An employee record
+ {name: John Eckersberg, job: Developer, skill: Elite}
+
+.. _truthiness:
+
+Ansible doesn't really use these too much, but you can also specify a
+boolean value (true/false) in several forms::
+
+ ---
+ knows_oop: True
+ likes_emacs: TRUE
+ uses_cvs: false
+
+Let's combine what we learned so far in an arbitary YAML example. This really
+has nothing to do with Ansible, but will give you a feel for the format::
+
+ ---
+ # An employee record
+ name: John Eckersberg
+ job: Developer
+ skill: Elite
+ employed: True
+ foods:
+ - Apple
+ - Orange
+ - Strawberry
+ - Mango
+ languages:
+ ruby: Elite
+ python: Elite
+ dotnet: Lame
+
+That's all you really need to know about YAML to get started writing
+`Ansible` playbooks.
+
+.. seealso::
+
+ :doc:`playbooks`
+ Learn what playbooks can do and how to write/run them.
+ `YAMLLint <http://yamllint.com/>`_
+ YAML Lint (online) helps you debug YAML syntax if you are having problems
+ `Github examples directory <https://github.com/ansible/ansible/tree/devel/examples/playbooks>`_
+ Complete playbook files from the github project source
+ `Mailing List <http://groups.google.com/group/ansible-project>`_
+ Questions? Help? Ideas? Stop by the list on Google Groups
+ `irc.freenode.net <http://irc.freenode.net>`_
+ #ansible IRC chat channel
+