website: Align index content with the project README

We should have a great README and there is no need for the project home
page to have different content.

Change-Id: I53e48f10ab9c833f09f8392078f837bf49fd8db7
This commit is contained in:
David Moreau Simard 2021-02-19 11:26:15 -05:00
parent bff86cd158
commit c04b918e60
No known key found for this signature in database
GPG Key ID: 7D4729EC4E64E8B7
8 changed files with 146 additions and 133 deletions

View File

@ -4,83 +4,43 @@ languageCode = "en-us"
title = "ARA Records Ansible | ara.recordsansible.org" title = "ARA Records Ansible | ara.recordsansible.org"
theme = "hugo-future-imperfect" theme = "hugo-future-imperfect"
preserveTaxonomyNames = true preserveTaxonomyNames = true
paginate = 5 paginate = 10
disqusShortname = ""
googleAnalytics = "UA-119558821-1"
pluralizeListTitles = false pluralizeListTitles = false
enableRobotsTXT = true enableRobotsTXT = true
enableGitInfo = true enableGitInfo = true
relativeURLs = true relativeURLs = true
[params] [params]
# Sets the meta tag description categoriesByCount = true
description = "ARA Records Ansible playbook runs and makes the recorded data available and intuitive for users and systems." cssFiles = ["default"]
# Sets the navbarTitle that appears in the top left of the navigation bar description = "ARA Records Ansible and makes it easier to understand and troubleshoot."
navbarTitle = "ARA Records Ansible" dynamicTitles = false
# Sets where "View More Posts" links enableCDN = false
viewMorePostLink = "/blog/" faviconVersion = ""
hideEmptyStats = false
# Optional Params highlightjsLang = ["bash", "python", "yaml"]
# Sets navbarTitle to match the section of the website highlightjsTheme = "github"
dynamicTitles = false highlightjs = true
# Sets RSS icons to appear on the sidebar with the social media buttons imageStretch = ""
rssAppearAtTop = true jsFiles = ["default"]
rssAppearAtBottom = true loadFavicon = true
# Sets Social Media icons to appear on the sidebar navbarTitle = "ARA Records Ansible"
socialAppearAtTop = true readingTime = true
socialAppearAtBottom = true removeBlur = false
# Sets Categories to sort by number of posts instead of alphabetical rssAppearAtBottom = true
categoriesByCount = true rssAppearAtTop = true
# set to show or to hide categories in the sidebar showSidebarCategories = true
showSidebarCategories = true socialShare = []
# Sets Estimated Reading Time to appear in post headers viewMorePostsLink = "/blog/"
includeReadingTime = true
# Sets the Favicon and Version for the site. Default support is for
# apple-touch-icon-precomposed.png, favicon.png, favicon.ico, and mstile.png.
# These are stored in the favicon folder. See the following for more information:
# https://github.com/audreyr/favicon-cheat-sheet
loadFavicon = true
faviconVersion = ""
# Sets Social Share links to appear on posts
socialShare = false
# Sets specific share to appear on posts (default behavior is to appear)
socialShareTwitter = false
socialShareGoogleplus = false
socialShareFacebook = false
socialShareReddit = false
socialShareLinkedin = false
socialShareStumbleupon = false
socialSharePinterest = false
socialShareEmail = false
# Load custom CSS or JavaScript files. The variable is an array so that you
# can load multiple files if necessary. You can also load the standard theme
# files by adding the value, "default".
# customCSS = ["default", "/path/to/file"]
# customJS = ["default", "/path/to/file"]
customCSS = ["default"]
customJS = ["default"]
# options for highlight.js (version, additional languages, and theme)
disable_highlight = false # set to true to disable Highlight
highlightjsVersion = "9.13.1"
highlightjsCDN = "//cdn.bootcss.com"
highlightjsLang = ["r", "yaml", "css"]
highlightjsTheme = "github"
[permalinks] [permalinks]
blog = "/blog/:year/:month/:day/:slug/" blog = "/blog/:year/:month/:day/:slug/"
[params.intro] [params.intro]
paragraph = "Making your Ansible playbooks easier to understand and troubleshoot." paragraph = "Records Ansible and makes it easier to understand and troubleshoot."
# This appears at the top of the sidebar above params.intro.header.
# A width of less than 100px is recommended from a design perspective.
[params.intro.pic] [params.intro.pic]
src = "static/logo.png" src = "static/logo.png"
# Sets Image to be a circle
circle = false circle = false
# Sets Image to be Future Imperfect's hexagon
imperfect = false imperfect = false
width = "" width = ""
alt = "ara.recordsansible.org" alt = "ara.recordsansible.org"
@ -91,7 +51,7 @@ unsafe = true
[params.postAmount] [params.postAmount]
# Sets the number of recent posts to show in the sidebar. The default value is 5. # Sets the number of recent posts to show in the sidebar. The default value is 5.
sidebar = 5 sidebar = 8
# Sets the menu items in the navigation bar # Sets the menu items in the navigation bar
# Identifier prepends a Font Awesome icon to the menu item # Identifier prepends a Font Awesome icon to the menu item
@ -107,21 +67,30 @@ unsafe = true
identifier = "fa fa-newspaper-o" identifier = "fa fa-newspaper-o"
weight = 2 weight = 2
[[menu.main]]
name = "Code"
url = "https://github.com/ansible-community/ara"
identifier = "fa fa-github"
weight = 3
[[menu.main]] [[menu.main]]
name = "Documentation" name = "Documentation"
url = "https://ara.readthedocs.io" url = "https://ara.readthedocs.io"
identifier = "fa fa-book" identifier = "fa fa-book"
weight = 3 weight = 4
[[menu.main]]
name = "Demo"
url = "https://demo.recordsansible.org"
identifier = "fa fa-external-link"
weight = 5
[[menu.main]] [[menu.main]]
name = "Community & Help" name = "Community & Help"
url = "/community" url = "/community"
identifier = "fa fa-users" identifier = "fa fa-users"
weight = 4 weight = 6
# Sets Social Media icons to appear and link to your account. Value should be your
# username unless otherwise noted. These are the icons affected by socialAppearAtTop
# and socialAppearAtBottom.
[social] [social]
github = "ansible-community/?q=ara" github = "ansible-community/?q=ara"
twitter = "RecordsAnsible" twitter = "RecordsAnsible"

View File

@ -2,99 +2,143 @@
kind: home kind: home
--- ---
# What's ARA ? ARA Records Ansible and makes it easier to understand and troubleshoot.
ARA Records Ansible playbooks and makes them easier to understand and troubleshoot. It's another recursive acronym.
![reports](static/reports.png) ![ara-full-logo](/static/ara-full-logo.png)
ARA saves playbook results to a local or remote database by using an Ansible ## What it does
callback plugin and provides an API to integrate this data in tools and interfaces.
The [ara](https://github.com/ansible-community/ara) project provides ARA's Simple to install and get started, ara provides reporting by saving detailed and
Ansible roles and plugins, the REST API server as well as simple built-in web granular results of ``ansible`` and ``ansible-playbook`` commands wherever you run them:
interfaces to browse the recorded data.
The [ara-web](https://github.com/ansible-community/ara-web) project provides a - by hand or from a script
stateless javascript client interface to the ARA API. - from a laptop, a desktop, a container or a server
- for development, CI or production
- from a linux distribution or even on OS X (as long as you have ``python >= 3.5``)
- from tools such as AWX or Tower, Jenkins, GitLab CI, Rundeck, Zuul, Molecule, ansible-pull, ansible-test or ansible-runner
## How does it work ? By default, ara's Ansible callback plugin will record data to a local sqlite
database without requiring you to run a server or a service:
ARA Records Ansible playbooks through an Ansible ![quickstart-default](/static/ara-quickstart-default.gif)
[callback plugin](https://docs.ansible.com/ansible/latest/plugins/callback.html).
ara can also provide a single pane of glass when recording data from multiple
locations by pointing the callback plugin to a running API server:
![quickstart-server](/static/ara-quickstart-server.gif)
The data is then made available for browsing, searching and querying over the
included reporting interface, a CLI client as well as a REST API.
## How it works
ARA Records Ansible execution results to sqlite, mysql or postgresql databases
by using an [Ansible callback plugin](https://docs.ansible.com/ansible/latest/plugins/callback.html).
This callback plugin leverages built-in python API clients to send data to a
REST API server:
![recording-workflow](/static/recording-workflow.png) ![recording-workflow](/static/recording-workflow.png)
0. ARA is installed and Ansible is configured to use the callback plugin ## What it looks like
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 ### API browser
the API and web interfaces.
## Quickstart Included by the API server with django-rest-framework, the API browser allows
users to navigate the different API endpoints and query recorded data.
Here's how you can get started from scratch with sane defaults with python>=3.6: ![ui-api-browser](/static/ui-api-browser.png)
``` ### Reporting interface
# Install ARA and Ansible for the current user
A simple reporting interface built-in to the API server without any extra dependencies.
![ui-playbook-details](/static/ui-playbook-details.png)
### ara CLI
A built-in CLI client for querying and managing playbooks and their recorded data.
![cli-playbook-list](/static/cli-playbook-list.png)
The full list of commands, their arguments as well as examples can be found in
the [CLI documentation](https://ara.readthedocs.io/en/latest/cli.html#cli-ara-api-client).
## Getting started
### Requirements
- Any recent Linux distribution or Mac OS with python >=3.5 available
- The ara Ansible plugins must be installed for the same python interpreter as Ansible itself
For RHEL 7 and CentOS 7 it is recommended to run the API server in a container due to missing or outdated dependencies.
See this [issue](https://github.com/ansible-community/ara/issues/99) for more information.
### Recording playbooks without an API server
With defaults and using a local sqlite database:
```bash
# Install Ansible and ARA (with API server dependencies) for the current user
python3 -m pip install --user ansible "ara[server]" python3 -m pip install --user ansible "ara[server]"
# Tell Ansible to use the ARA callback plugin # Configure Ansible to use the ARA callback plugin
export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)" export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)"
# Run your playbook # Run an Ansible playbook
ansible-playbook playbook.yml ansible-playbook playbook.yaml
# Use the CLI to see recorded playbooks
ara playbook list
# Start the built-in development server to browse recorded results
ara-manage runserver
``` ```
If nothing went wrong, your playbook data should have been saved in a local ### Recording playbooks with an API server
database at ``~/.ara/server/ansible.sqlite``.
You can take a look at the recorded data by running ``ara-manage runserver`` You can get an API server deployed using the [ara Ansible collection](https://github.com/ansible-community/ara-collection)
and pointing your browser at http://127.0.0.1:8000/. or get started quickly using the container images from [DockerHub](https://hub.docker.com/r/recordsansible/ara-api) and
[quay.io](https://quay.io/repository/recordsansible/ara-api):
That's it ! ```bash
# Create a directory for a volume to store settings and a sqlite database
mkdir -p ~/.ara/server
For more information, refer to the documentation on # Start an API server with podman from the image on DockerHub:
[installation](https://ara.readthedocs.io/en/latest/installation.html) and podman run --name api-server --detach --tty \
[configuration](https://ara.readthedocs.io/en/latest/ansible-configuration.html). --volume ~/.ara/server:/opt/ara:z -p 8000:8000 \
docker.io/recordsansible/ara-api:latest
## Live demos # or with docker from the image on quay.io:
docker run --name api-server --detach --tty \
--volume ~/.ara/server:/opt/ara:z -p 8000:8000 \
quay.io/recordsansible/ara-api:latest
```
You can find live demos deployed by the built-in [ara_api](https://ara.readthedocs.io/en/latest/ansible-role-ara-api.html) Once the server is running, ara's Ansible callback plugin must be installed and configured to send data to it:
and [ara_web](https://ara.readthedocs.io/en/latest/ansible-role-ara-web.html)
Ansible roles at https://api.demo.recordsansible.org and https://web.demo.recordsansible.org.
## ARA is free and open source ```bash
# Install Ansible and ARA (without API server dependencies) for the current user
python3 -m pip install --user ansible ara
ARA is free and open source under the GPLv3 license. # Configure Ansible to use the ARA callback plugin
export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)"
The code review and CI infrastructure is hosted by [OpenDev](https://opendev.org). # Set up the ARA callback to know where the API server is located
export ARA_API_CLIENT="http"
export ARA_API_SERVER="http://127.0.0.1:8000"
You can participate in [code reviews](https://review.opendev.org/#/q/project:%255Erecordsansible/.*) # Run an Ansible playbook
and learn how you can contribute your first patch in the [contributors documentation](https://ara.readthedocs.io/en/latest/contributing.html). ansible-playbook playbook.yaml
## ARA is tested, stable and production ready # Use the CLI to see recorded playbooks
ara playbook list
```
Each new commit to ARA is gated against a series of unit and integration tests Data will be available on the API server in real time as the playbook progresses and completes.
against different Linux distributions and versions of Ansible in order to
prevent regressions.
ARA is used to record more than a [million playbooks a month](http://superuser.openstack.org/articles/scaling-ara-ansible/) from the OpenStack community alone. You can read more about how container images are built and how to run them in the
[documentation](https://ara.readthedocs.io/en/latest/container-images.html).
It works.
## ARA is offline and decentralized by default
Running Ansible from your laptop ? No problem.
You can browse your ARA reports locally from a sqlite database without ever leaving the comfort of localhost.
Need to aggregate data from multiple locations ?
You can run an API server and hook it up to a database engine like
[PostgreSQL or MySQL](https://ara.readthedocs.io/en/latest/api-configuration.html#ara-database-engine).

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB