RETIRED, this project was merged into a single ara repository
Go to file
Zuul 526ce375d4 Merge "Add docs on how to use the API clients with ara-server" 2018-12-21 16:54:04 +00:00
.zuul.d Namespace Zuul jobs and use ubuntu bionic 2018-11-09 14:38:35 -05:00
ara Added endpoint exposing ara and python version. 2018-12-21 11:39:30 +01:00
doc/source Add docs on how to use the API clients with ara-server 2018-12-21 11:31:04 -05:00
hacking Fix ansible-integration test after playbook.files tweak 2018-12-21 09:54:54 -05:00
tests Set exit code to 1 if at least one linter fails. 2018-11-10 20:20:52 +00:00
.editorconfig 💥 first commit 2018-03-29 12:36:14 -04:00
.gitignore Add *.retry to gitignore for failed playbook files 2018-11-15 11:39:03 -05:00
.gitreview Added .gitreview 2018-03-27 11:35:47 +00:00
LICENSE 💥 first commit 2018-03-29 12:36:14 -04:00
README.rst Update and improve README 2018-12-21 10:28:47 -05:00
pyproject.toml Allow configuration of settings via config files. 2018-10-22 19:48:52 +02:00
requirements.txt Remove requirement on django-environ 2018-12-21 10:04:18 -05:00
setup.cfg Made dynaconf integration more explicit. 2018-12-20 18:46:02 +01:00
setup.py Bootstrap the repository with the basic machinery (#1) 2018-03-29 12:36:22 -04:00
test-requirements.txt Added CI for black/isort. 2018-10-02 09:50:15 -05:00
tox.ini Made dynaconf integration more explicit. 2018-12-20 18:46:02 +01:00

README.rst

ara-server

image

ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems.

ara-server is a modern python 3 application built with the latest releases of Django and django-rest-framework.

ara-server is the component from ARA that manages the REST API and the database.

image

  • For the ARA Ansible callback plugin or the ara_record action module, look at ara-plugins
  • For the ARA REST API clients, look at ara-clients
  • For the ARA web interface, look at ara-web

Quickstart

Here's how you can get started from scratch with default settings:

# Create a virtual environment
python3 -m venv ~/.ara/venv

# Install Ansible and the required ARA projects
~/.ara/venv/bin/pip install ansible ara-server ara-clients ara-plugins

# Tell Ansible to use the ARA callback plugin from ara-plugins
export ANSIBLE_CALLBACK_PLUGINS="$(~/.ara/venv/bin/python -m ara.plugins)/callback"

# Run your playbook as your normally would
~/.ara/venv/bin/ansible-playbook playbook.yml

The data is saved in real time during the Ansible playbook execution.

What happened behind the scenes is that the ARA Ansible callback plugin (provided by ara-plugins) used the offline API client (provided by ara-clients) to send your data to the ara-server API which then saved it to a database located by default at ~/.ara/server/ansible.sqlite.

You're now ready to start poking at the API with the built-in API clients !

If you'd like to have the ARA web reporting interface, take a look at ara-web.

Documentation

Documentation for installing, configuring, running and using ara-server is available on readthedocs.io.

Community and getting help

You can chat with the ARA community on Slack and IRC. The two are transparently bridged with teamchat which broadcasts messages from one platform to the other.

In addition, you can also find ARA on Twitter: @ARecordsAnsible

IRC

Slack

Development

TL;DR: Using tox is convenient for the time being:

# Retrieve the source
git clone https://github.com/openstack/ara-server
cd ara-server

# Install tox from pip or from your distro packages
pip install tox

# Run an Ansible playbook integrated with ara-server, ara-clients and ara-plugins
# This will exercise all three components and record real data from Ansible
tox -e ansible-integration

# Run test server -> http://127.0.0.1:8000/api/v1/
tox -e runserver

# Run actual tests or get coverage
tox -e linters
tox -e py3
tox -e cover

# Build docs
tox -e docs

Authors and contributors

ARA was created by David Moreau Simard (@dmsimard) and contributors can be found on GitHub.

Copyright

Copyright (c) 2018 Red Hat, Inc.

ARA is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

ARA is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ARA.  If not, see <http://www.gnu.org/licenses/>.