# Official Ansible Product Demos

This repo currently under construction and working on a minimal viable demo for testing purposes

# Table of contents

   * [How to use](#how-to-use)
      * [1. Provide login information and choose demo](#1-provide-login-information-and-choose-demo)
      * [2. Run Ansible Playbook](#2-run-ansible-playbook)
   * [Demo Repository](#demo-repository)
      * [Infrastructure Demos](#infrastructure-demos)
      * [Network Demos](#network-demos)
      * [Security Demos](#security-demos)
      * [Developer Demos](#developer-demos)
   * [Contribute](#contribute)
   * [Notes](#notes)

# How to use

## 1. Provide login information and choose demo

  - Modify the `choose_demo.yml` file that is included in this repo with the username, password and IP address (or DNS name) of your Ansible Tower
  - Choose the demo name you want from the table below (or choose `all`)

## 2. Run Ansible Playbook

```
ansible-playbook playbooks/install_demo.yml -e @choose_demo.yml
```

# Demo Repository

This repository currently holds {{hostvars[inventory_hostname].items()|rejectattr('0', 'match', 'ansible_')|selectattr('1.name', 'defined')|sort(attribute='1.name')|count}} demos.

## Infrastructure Demos
<table>
  <tr>
    <th>Demo Name</th>
    <th>Author</th>
    <th>install_demo.yml value</th>
    <th>Description</th>
    <th>Video Walkthrough</th>
    <th>Workshop Types</th>
  </tr>
{% for key, value in hostvars[inventory_hostname].items()|rejectattr('0', 'match', 'ansible_')|selectattr('1.name', 'defined')|selectattr('1.category', 'match', 'infrastructure$')|sort(attribute='1.name') %}
  <tr>
    <td>{% if value.readme is defined%}<a href="{{ value.readme}}">{{value.name}}</a>{% else %}{{value.name}}{% endif %}</td>
    <td>{{value.author}}</td>
    <td><pre>demo: {{key}}</pre></td>
    <td>{{value.description}}</td>
    <td>{% if value.video is defined%}<a href="{{ value.video}}">Video Link</a>{% else %}Not available {% endif %}</td>
    <td><ul>{% for workshop in value.workshop_type %}<li>{{workshop}}</li>{% endfor %}</ul></td>
  </tr>
{% endfor %}
</table>

## Network Demos

<table>
  <tr>
    <th>Demo Name</th>
    <th>Author</th>
    <th>install_demo.yml value</th>
    <th>Description</th>
    <th>Video Walkthrough</th>
    <th>Workshop Types</th>
  </tr>
{% for key, value in hostvars[inventory_hostname].items()|rejectattr('0', 'match', 'ansible_')|selectattr('1.name', 'defined')|selectattr('1.category', 'match', 'network$')|sort(attribute='1.name') %}  <tr>
    <td>{{ value.name }}</td>
    <td>{{ value.author }}</td>
    <td><pre>demo: {{key }}</pre></td>
    <td>{{ value.description }}</td>
    <td>{% if value.video is defined %}<a href="{{ value.video }}">Video Link</a>{% else %}Not available {% endif %}</td>
    <td><ul>{% for workshop in value.workshop_type %}<li>{{ workshop }}</li>{% endfor %}</ul></td>
  </tr>
{% endfor %}
</table>

## Security Demos

<table>
  <tr>
    <th>Demo Name</th>
    <th>Author</th>
    <th>install_demo.yml value</th>
    <th>Description</th>
    <th>Video Walkthrough</th>
    <th>Workshop Types</th>
  </tr>
{% for key, value in hostvars[inventory_hostname].items()|rejectattr('0', 'match', 'ansible_')|selectattr('1.name', 'defined')|selectattr('1.category', 'match', 'security$')|sort(attribute='1.name') %}  <tr>
    <td>{{ value.name }}</td>
    <td>{{ value.author }}</td>
    <td><pre>demo: {{ key }}</pre></td>
    <td>{{ value.description }}</td>
    <td>{% if value.video is defined %}<a href="{{ value.video }}">Video Link</a>{% else %}Not available {% endif %}</td>
    <td><ul>{% for workshop in value.workshop_type %}<li>{{ workshop }}</li>{% endfor %}</ul></td>
  </tr>
{% endfor %}
</table>

## Developer Demos

<table>
  <tr>
    <th>Demo Name</th>
    <th>Author</th>
    <th>install_demo.yml value</th>
    <th>Description</th>
    <th>Video Walkthrough</th>
    <th>Workshop Types</th>
  </tr>
{% for key, value in hostvars[inventory_hostname].items()|rejectattr('0', 'match', 'ansible_')|selectattr('1.name', 'defined')|selectattr('1.category', 'match', 'developer$')|sort(attribute='1.name') %}  <tr>
    <td>{{ value.name }}</td>
    <td>{{ value.author }}</td>
    <td><pre>demo: {{ key }}</pre></td>
    <td>{{ value.description }}</td>
    <td>{% if value.video is defined %}<a href="{{ value.video }}">Video Link</a>{% else %}Not available {% endif %}</td>
    <td><ul>{% for workshop in value.workshop_type %}<li>{{ workshop }}</li>{% endfor %}</ul></td>
  </tr>
{% endfor %}
</table>


# Contribute

please refer to the [contribute.md](docs/contribute.md) documentation included in this collection.

# Notes

This README.md was auto-generated by Ansible user **{{ ansible_user_id }}** on **{{ ansible_date_time.date }}** with Ansible version **{{ ansible_version.full }}**

To generate a README.md, execute the following command

```
ansible-playbook playbooks/generate_readme.yml
```
