Port FAQ docs from 0.x and update for 1.0
- Moved workflow diagram to FAQs - Added live demos - Removed web screenshots - Combined "Why is ARA being developed" with "Why don't you use Ansible Tower (AWX), Rundeck or Semaphore" Change-Id: Id7da538b8bce52f85ef4c4422a48d3b8b7588150
This commit is contained in:
parent
582d03e179
commit
c864d0dafa
@ -20,6 +20,8 @@ under the ara namespace, like so:
|
|||||||
[ara]
|
[ara]
|
||||||
variable = value
|
variable = value
|
||||||
|
|
||||||
|
.. _configuration_callback:
|
||||||
|
|
||||||
ARA callback plugin
|
ARA callback plugin
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
.. _ara_record:
|
||||||
|
|
||||||
Recording arbitrary data in playbooks
|
Recording arbitrary data in playbooks
|
||||||
=====================================
|
=====================================
|
||||||
|
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
Architecture and Workflows
|
|
||||||
==========================
|
|
||||||
|
|
||||||
Recording data from Ansible
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
ARA Records Ansible playbooks through an Ansible `callback plugin`_.
|
|
||||||
|
|
||||||
.. image:: _static/graphs/recording-workflow.png
|
|
||||||
|
|
||||||
0. ARA is installed and Ansible is configured to use the callback plugin
|
|
||||||
1. An ``ansible-playbook`` command is executed
|
|
||||||
2. Ansible triggers the callback plugin for every event (``v2_playbook_on_start``, ``v2_runner_on_failed``, etc.)
|
|
||||||
3. The relevant information is retrieved from the Ansible playbook execution context and is sent to the API server
|
|
||||||
4. The API server validates and serializes the data before storing it the configured database backend
|
|
||||||
5. The API server sends a response back to the API client with the results
|
|
||||||
6. The callback plugin returns, ending the callback hook
|
|
||||||
7. Ansible continues running the playbook until it fails or is completed (back to step 2)
|
|
||||||
|
|
||||||
.. _callback plugin: https://docs.ansible.com/ansible/latest/plugins/callback.html
|
|
127
doc/source/faq.rst
Normal file
127
doc/source/faq.rst
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
FAQ
|
||||||
|
===
|
||||||
|
|
||||||
|
What is ARA ?
|
||||||
|
-------------
|
||||||
|
|
||||||
|
ARA Records `Ansible <https://wwwansible.com>`_ playbooks and makes them easier to understand and troubleshoot.
|
||||||
|
|
||||||
|
ARA is currently composed of three different free and open source projects:
|
||||||
|
|
||||||
|
- https://github.com/ansible-community/ara for the REST API server and Ansible plugins
|
||||||
|
- https://github.com/ansible-community/ara-web for the standalone web interface
|
||||||
|
- https://github.com/ansible-community/ara-infra for project-specific infrastructure needs (such as the `ara.recordsansible.org <https://ara.recordsansible.org>`_ website)
|
||||||
|
|
||||||
|
How does it work ?
|
||||||
|
------------------
|
||||||
|
|
||||||
|
ARA Records Ansible playbooks through an Ansible `callback plugin`_.
|
||||||
|
|
||||||
|
.. image:: _static/graphs/recording-workflow.png
|
||||||
|
|
||||||
|
0. ARA is installed and Ansible is configured to use the callback plugin
|
||||||
|
1. An ``ansible-playbook`` command is executed
|
||||||
|
2. Ansible triggers the callback plugin for every event (``v2_playbook_on_start``, ``v2_runner_on_failed``, etc.)
|
||||||
|
3. The relevant information is retrieved from the Ansible playbook execution context and is sent to the API server
|
||||||
|
4. The API server validates and serializes the data before storing it the configured database backend
|
||||||
|
5. The API server sends a response back to the API client with the results
|
||||||
|
6. The callback plugin returns, ending the callback hook
|
||||||
|
7. Ansible continues running the playbook until it fails or is completed (back to step 2)
|
||||||
|
|
||||||
|
Once the data has been saved in the database, it is made available for query by
|
||||||
|
the API.
|
||||||
|
|
||||||
|
.. _callback plugin: https://docs.ansible.com/ansible/latest/plugins/callback.html
|
||||||
|
|
||||||
|
What's an Ansible callback ?
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
`Ansible Callbacks`_ are essentially hooks provided by Ansible. Ansible will
|
||||||
|
send an event and you can react to it with a callback.
|
||||||
|
You could use a callback to do things like print additional details or, in the
|
||||||
|
case of ARA, record the playbook run data in a database.
|
||||||
|
|
||||||
|
.. _Ansible Callbacks: https://docs.ansible.com/ansible/dev_guide/developing_plugins.html
|
||||||
|
|
||||||
|
Are there live demos available ?
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Yes, you can find persistent and up-to-date live demos at
|
||||||
|
`api.demo.recordsansible.org <https://api.demo.recordsansible.org>`_ for the
|
||||||
|
API and `web.demo.recordsansible.org <https://web.demo.recordsansible.org>`_ for
|
||||||
|
the ara-web_ standalone interface.
|
||||||
|
|
||||||
|
What versions of Ansible are supported ?
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
The upstream Ansible community and maintainers provide support for the latest
|
||||||
|
three major stable releases and ARA follows the same support cycle.
|
||||||
|
|
||||||
|
For example, if the latest version of Ansible is 2.8, then the latest release
|
||||||
|
of ARA will support 2.8 as well as 2.7 and 2.6.
|
||||||
|
|
||||||
|
For more information on Ansible's release and maintenance cycle, you can refer
|
||||||
|
to the `Ansible documentation <https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html>`_.
|
||||||
|
|
||||||
|
If you are using a release of Ansible that is no longer supported, we strongly
|
||||||
|
encourage you to upgrade as soon as possible in order to benefit from the
|
||||||
|
latest features and security fixes.
|
||||||
|
|
||||||
|
Older unsupported versions of Ansible can contain unfixed security
|
||||||
|
vulnerabilities (*CVE*).
|
||||||
|
|
||||||
|
What versions of Python are supported ?
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Before version 1.0 of ARA, both python2 and python3 were supported.
|
||||||
|
Versions of ARA after 1.0 are not designed to support python2 in consideration
|
||||||
|
that python2 will reach end of life in `January 2020 <https://pythonclock.org/>`_.
|
||||||
|
|
||||||
|
Why ARA instead of <X> ?
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Ansible is an awesome tool. It can be used for a lot of things.
|
||||||
|
|
||||||
|
Reading and interpreting the output of an ``ansible-playbook`` run, especially
|
||||||
|
one that is either long running, involves a lot of hosts or prints a lot of
|
||||||
|
output can be hard to understand and troubleshoot.
|
||||||
|
|
||||||
|
This is especially true when you happen to be running Ansible hundreds of times
|
||||||
|
during the day, through automated means -- for example when doing continuous
|
||||||
|
integration or continuous delivery.
|
||||||
|
|
||||||
|
ARA aims to do one thing and do it well: Record Ansible playbooks and provide
|
||||||
|
you with the tools you need to make your playbook results intuitive for you and
|
||||||
|
for your systems.
|
||||||
|
|
||||||
|
The great thing about ARA is that it is not mutually exclusive with other
|
||||||
|
software and systems you might already be using Ansible with today.
|
||||||
|
|
||||||
|
There is nothing preventing you from using ARA with other tools such as `Ansible
|
||||||
|
Tower`_ (or AWX_), Zuul_, Jenkins_ or Rundeck_ since all you need to get started is
|
||||||
|
to install and enable the ARA Ansible callback plugin.
|
||||||
|
|
||||||
|
.. _Ansible Tower: https://www.ansible.com/tower
|
||||||
|
.. _AWX: https://github.com/ansible/awx
|
||||||
|
.. _Zuul: https://zuul-ci.org
|
||||||
|
.. _Jenkins: https://www.redhat.com/en/blog/integrating-ansible-jenkins-cicd-process
|
||||||
|
.. _Rundeck: https://www.rundeck.com/ansible
|
||||||
|
|
||||||
|
Can I set up the different components of ARA on different servers ?
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
|
||||||
|
Yes.
|
||||||
|
|
||||||
|
The defaults are set to have the callback use the offline API client which
|
||||||
|
expects the server dependencies installed and the data is saved to a local
|
||||||
|
sqlite database.
|
||||||
|
|
||||||
|
However, the callback can also be configured to send data to a specified API
|
||||||
|
server address and the API server can be configured to use a remote database
|
||||||
|
server such as PostgreSQL or MySQL.
|
||||||
|
|
||||||
|
The web client interface provided by ara-web_ is stateless and requires an API
|
||||||
|
server address to connect to.
|
||||||
|
It can be installed anywhere that has access to the API server.
|
||||||
|
|
||||||
|
.. _ara-web: https://github.com/ansible-community/ara-web
|
@ -8,6 +8,7 @@ Table of Contents
|
|||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
|
||||||
|
Frequently asked questions <faq>
|
||||||
Installing ARA <installation>
|
Installing ARA <installation>
|
||||||
Configuring Ansible to use ARA <ansible-configuration>
|
Configuring Ansible to use ARA <ansible-configuration>
|
||||||
Configuring the ARA Ansible plugins <ara-plugin-configuration>
|
Configuring the ARA Ansible plugins <ara-plugin-configuration>
|
||||||
@ -17,7 +18,6 @@ Table of Contents
|
|||||||
API: Usage with built-in clients <api-usage>
|
API: Usage with built-in clients <api-usage>
|
||||||
Setting playbook names and labels <playbook-names-and-labels>
|
Setting playbook names and labels <playbook-names-and-labels>
|
||||||
Recording arbitrary data in playbooks <ara-record>
|
Recording arbitrary data in playbooks <ara-record>
|
||||||
Architecture and workflows <architecture>
|
|
||||||
Contributing to ARA <contributing>
|
Contributing to ARA <contributing>
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
|
Loading…
x
Reference in New Issue
Block a user