diff --git a/docsite/latest/rst/developing_api.rst b/docsite/latest/rst/developing_api.rst index 9b1d253b6cf..df522462530 100644 --- a/docsite/latest/rst/developing_api.rst +++ b/docsite/latest/rst/developing_api.rst @@ -85,3 +85,16 @@ Advanced programmers may also wish to read the source to ansible itself, for it uses the Runner() API (with all available options) to implement the command line tools ``ansible`` and ``ansible-playbook``. +.. seealso:: + + :doc:`developing_inventory` + Developing dynamic inventory integrations + :doc:`developing_modules` + How to develop modules + :doc:`developing_plugins` + How to develop plugins + `Development Mailing List `_ + Mailing list for development topics + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/developing_inventory.rst b/docsite/latest/rst/developing_inventory.rst index 1905b3d8b88..3fe59f011c3 100644 --- a/docsite/latest/rst/developing_inventory.rst +++ b/docsite/latest/rst/developing_inventory.rst @@ -80,4 +80,17 @@ The data to be added to the top level JSON dictionary looks like this:: } + :doc:`developing_api` + Python API to Playbooks and Ad Hoc Task Execution + :doc:`developing_modules` + How to develop modules + :doc:`developing_plugins` + How to develop plugins + `AnsibleWorks AWX `_ + Mailing list for development topics + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/developing_modules.rst b/docsite/latest/rst/developing_modules.rst index 0a294b36312..232ae8950d4 100644 --- a/docsite/latest/rst/developing_modules.rst +++ b/docsite/latest/rst/developing_modules.rst @@ -458,9 +458,15 @@ a github pull request to the main project. :doc:`modules` Learn about available modules + :doc:`developing_plugins` + Learn about developing plugins + :doc:`developing_api` + Learn about the Python API for playbook and task execution `Github modules directory `_ Browse source of core modules - `Mailing List `_ - Questions? Help? Ideas? Stop by the list on Google Groups + `Mailing List `_ + Development mailing list `irc.freenode.net `_ #ansible IRC chat channel + + diff --git a/docsite/latest/rst/developing_plugins.rst b/docsite/latest/rst/developing_plugins.rst index 7247f41f7fb..0c0f42e5bb5 100644 --- a/docsite/latest/rst/developing_plugins.rst +++ b/docsite/latest/rst/developing_plugins.rst @@ -113,8 +113,14 @@ In addition, plugins can be shipped in a subdirectory relative to a top-level pl :doc:`modules` List of built-in modules - `Mailing List `_ - Questions? Help? Ideas? Stop by the list on Google Groups + :doc:`developing_api` + Learn about the Python API for task execution + :doc:`developing_inventory` + Learn about how to develop dynamic inventory sources + :doc:`developing_modules` + Learn about how to write Ansible modules + `Mailing List `_ + The development mailing list `irc.freenode.net `_ #ansible IRC chat channel diff --git a/docsite/latest/rst/faq.rst b/docsite/latest/rst/faq.rst index f4c82d2d3e5..69128fbe92a 100644 --- a/docsite/latest/rst/faq.rst +++ b/docsite/latest/rst/faq.rst @@ -208,5 +208,18 @@ We're happy to help. See the "Resources" section of the documentation home page for a link to the IRC and Google Group. +.. seealso:: + + :doc:`index` + The documentation index + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_best_practices` + Best practices advice + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/glossary.rst b/docsite/latest/rst/glossary.rst index ea0d7b1d2b6..9ec102c5f35 100644 --- a/docsite/latest/rst/glossary.rst +++ b/docsite/latest/rst/glossary.rst @@ -426,4 +426,16 @@ YAML Ansible does not want to force people to write programming language code to automate infrastructure, so Ansible uses YAML to define playbook configuration languages and also variable files. YAML is nice because it has a minimum of syntax and is very clean and easy for people to skim. It is a good data format for configuration files and humans, but also machine readable. Ansible's usage of YAML stemmed from Michael's first use of it inside of Cobbler around 2006. YAML is fairly popular in the dynamic language community and the format has libraries available for serialization in many different languages (Python, Perl, Ruby, etc.). +.. seealso:: + + :doc:`faq` + Frequently asked questions + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_best_practices` + Best practices advice + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel diff --git a/docsite/latest/rst/guide_aws.rst b/docsite/latest/rst/guide_aws.rst index 732b9ffec35..76f7ba4ebf6 100644 --- a/docsite/latest/rst/guide_aws.rst +++ b/docsite/latest/rst/guide_aws.rst @@ -182,5 +182,16 @@ Pending Information In the future look here for more topics. +.. seealso:: + :doc:`modules` + All the documentation for Ansible modules + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_delegation` + Delegation, useful for working with loud balancers, clouds, and locally executed steps. + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel diff --git a/docsite/latest/rst/index.rst b/docsite/latest/rst/index.rst index 007249e7dac..2c57fc444fe 100644 --- a/docsite/latest/rst/index.rst +++ b/docsite/latest/rst/index.rst @@ -83,7 +83,7 @@ Upgrading the Ansible Experience: AnsibleWorks AWX AWX allows you to control access to who can access what, even allowing sharing of SSH credentials without someone being able to transfer those credentials. Inventory can be graphically managed or synced with a widde variety of cloud sources. It logs all of your jobs, integrates well with LDAP, and has an amazing browseable REST API. -Find out more about AWX features and how to download it on the `AWX webpage `_. AWX +Find out more about AWX features and how to download it on the `AWX webpage `_. AWX is free for usage for up to 10 nodes, and comes bundled with amazing support from AnsibleWorks. As you would expect, AWX is installed using Ansible playbooks! @@ -134,10 +134,9 @@ Community Information Ansible is an open source project designed to bring together developers and administrators of all kinds to collaborate on building IT automation solutions that work well for them. Should you wish to get more involved -- whether in terms of just asking a question, helping -other users, introducing new people to Ansible, or helping with the software or documentation, we welcome your contributions to the project:: - - How to interact ``_ +other users, introducing new people to Ansible, or helping with the software or documentation, we welcome your contributions to the project. +`Ways to interact `_ .. _developer_information: @@ -154,7 +153,9 @@ with other solutions in your environment. developing_inventory developing_modules developing_plugins - REST API + + +Developers will also likely be interested in the fully-discoverable `REST API `_ that is part of AnsibleWorks AWX. It's great for embedding Ansible in all manner of applications. .. _misc: diff --git a/docsite/latest/rst/playbooks.rst b/docsite/latest/rst/playbooks.rst index 414598620d3..a8ca10899d3 100644 --- a/docsite/latest/rst/playbooks.rst +++ b/docsite/latest/rst/playbooks.rst @@ -352,14 +352,16 @@ can do this:: Learn about YAML syntax :doc:`playbooks_best_practices` Various tips about managing playbooks in the real world + :doc:`index` + Hop back to the documentation index for a lot of special topics about playbooks :doc:`modules` Learn about available modules :doc:`developing_modules` Learn how to extend Ansible by writing your own modules :doc:`intro_patterns` Learn about how to select hosts - `Github examples directory `_ - Complete playbook files from the github project source + `Github examples directory `_ + Complete end-to-end playbook examples `Mailing List `_ Questions? Help? Ideas? Stop by the list on Google Groups diff --git a/docsite/latest/rst/playbooks_acceleration.rst b/docsite/latest/rst/playbooks_acceleration.rst index 2ff85869c83..c2bc58fdfda 100644 --- a/docsite/latest/rst/playbooks_acceleration.rst +++ b/docsite/latest/rst/playbooks_acceleration.rst @@ -120,3 +120,13 @@ any platform. You will also need gcc and zeromq-devel installed from your packa Fedora and EPEL also have Ansible RPM subpackages available for fireball-dependencies. Also see the module documentation section. + +.. seealso:: + + :doc:`playbooks` + Introductory playbook information + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/playbooks_async.rst b/docsite/latest/rst/playbooks_async.rst index a0c4e5d6cff..d94a6986ba9 100644 --- a/docsite/latest/rst/playbooks_async.rst +++ b/docsite/latest/rst/playbooks_async.rst @@ -50,3 +50,13 @@ Alternatively, if you do not need to wait on the task to complete, you may Using a higher value for ``--forks`` will result in kicking off asynchronous tasks even faster. This also increases the efficiency of polling. + +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/playbooks_conditionals.rst b/docsite/latest/rst/playbooks_conditionals.rst index f246e89c786..ab5f1e08ef1 100644 --- a/docsite/latest/rst/playbooks_conditionals.rst +++ b/docsite/latest/rst/playbooks_conditionals.rst @@ -238,4 +238,20 @@ fields:: # same as with_items: home_dirs.stdout.split() +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_roles` + Playbook organization by roles + :doc:`playbooks_best_practices` + Best practices in playbooks + :doc:`playbooks_conditionals` + Conditional statements in playbooks + :doc:`playbooks_variables` + All about variables + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel diff --git a/docsite/latest/rst/playbooks_delegation.rst b/docsite/latest/rst/playbooks_delegation.rst index 8b082bdb27d..4c82f22c0fc 100644 --- a/docsite/latest/rst/playbooks_delegation.rst +++ b/docsite/latest/rst/playbooks_delegation.rst @@ -131,4 +131,13 @@ use the default remote connection type:: - hosts: 127.0.0.1 connection: local +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/playbooks_environment.rst b/docsite/latest/rst/playbooks_environment.rst index 7d676d5df52..32570dcd567 100644 --- a/docsite/latest/rst/playbooks_environment.rst +++ b/docsite/latest/rst/playbooks_environment.rst @@ -46,3 +46,13 @@ to define an environment hash might be a group_vars file, like so:: http_proxy: http://proxy.bos.example.com:8080 https_proxy: http://proxy.bos.example.com:8080 +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + + diff --git a/docsite/latest/rst/playbooks_error_handling.rst b/docsite/latest/rst/playbooks_error_handling.rst index a66f5c9c4a7..7a55401fff3 100644 --- a/docsite/latest/rst/playbooks_error_handling.rst +++ b/docsite/latest/rst/playbooks_error_handling.rst @@ -49,4 +49,19 @@ does not cause handlers to fire:: - shell: wall 'beep' +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_best_practices` + Best practices in playbooks + :doc:`playbooks_conditionals` + Conditional statements in playbooks + :doc:`playbooks_variables` + All about variables + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + diff --git a/docsite/latest/rst/playbooks_lookups.rst b/docsite/latest/rst/playbooks_lookups.rst index 5d7752d2104..5bed1477a98 100644 --- a/docsite/latest/rst/playbooks_lookups.rst +++ b/docsite/latest/rst/playbooks_lookups.rst @@ -93,3 +93,20 @@ template):: tasks: - debug: msg="motd value is {{ motd_value }}" +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_conditionals` + Conditional statements in playbooks + :doc:`playbooks_variables` + All about variables + :doc:`playbooks_loops` + Looping in playbooks + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + + + diff --git a/docsite/latest/rst/playbooks_loops.rst b/docsite/latest/rst/playbooks_loops.rst index d3793e11bf2..6ca85591489 100644 --- a/docsite/latest/rst/playbooks_loops.rst +++ b/docsite/latest/rst/playbooks_loops.rst @@ -215,6 +215,24 @@ can do that in the next task as follows:: delay: 10 failed_when: result.attempts == 5 +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_roles` + Playbook organization by roles + :doc:`playbooks_best_practices` + Best practices in playbooks + :doc:`playbooks_conditionals` + Conditional statements in playbooks + :doc:`playbooks_variables` + All about variables + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + + diff --git a/docsite/latest/rst/playbooks_prompts.rst b/docsite/latest/rst/playbooks_prompts.rst index 9a24d0ed10a..ce964a321b7 100644 --- a/docsite/latest/rst/playbooks_prompts.rst +++ b/docsite/latest/rst/playbooks_prompts.rst @@ -77,3 +77,18 @@ However, the only parameters accepted are 'salt' or 'salt_size'. You can use you 'salt', or have one generated automatically using 'salt_size'. If nothing is specified, a salt of size 8 will be generated. +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_conditionals` + Conditional statements in playbooks + :doc:`playbooks_variables` + All about variables + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + + + diff --git a/docsite/latest/rst/playbooks_roles.rst b/docsite/latest/rst/playbooks_roles.rst index 346ebffba01..59fccecb17f 100644 --- a/docsite/latest/rst/playbooks_roles.rst +++ b/docsite/latest/rst/playbooks_roles.rst @@ -320,6 +320,12 @@ The resulting order of execution would be as follows:: Review the basic Playbook language features :doc:`playbooks_best_practices` Various tips about managing playbooks in the real world + :doc:`playbooks_variables` + All about variables in playbooks + :doc:`playbooks_conditionals` + Conditionals in playbooks + :doc:`playbooks_loops` + Loops in playbooks :doc:`modules` Learn about available modules :doc:`developing_modules` diff --git a/docsite/latest/rst/playbooks_tags.rst b/docsite/latest/rst/playbooks_tags.rst index fbd5cae016d..90a3c547133 100644 --- a/docsite/latest/rst/playbooks_tags.rst +++ b/docsite/latest/rst/playbooks_tags.rst @@ -36,4 +36,17 @@ And you may also tag basic include statements: Both of these have the function of tagging every single task inside the include statement. +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_roles` + Playbook organization by roles + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + + + diff --git a/docsite/latest/rst/playbooks_variables.rst b/docsite/latest/rst/playbooks_variables.rst index 22fed031a59..39402db1164 100644 --- a/docsite/latest/rst/playbooks_variables.rst +++ b/docsite/latest/rst/playbooks_variables.rst @@ -887,3 +887,22 @@ if you want to forceably override something, use -e. If you found that a little hard to understand, take a look at the "ansible-examples" repo on our github for a bit more about how all of these things can work together. + +.. seealso:: + + :doc:`playbooks` + An introduction to playbooks + :doc:`playbooks_conditionals` + Conditional statements in playbooks + :doc:`playbooks_loops` + Looping in playbooks + :doc:`playbooks_roles` + Playbook organization by roles + :doc:`playbooks_best_practices` + Best practices in playbooks + `User Mailing List `_ + Have a question? Stop by the google group! + `irc.freenode.net `_ + #ansible IRC chat channel + +