diff --git a/docs/contribute.md b/docs/contribute.md index 9821721..13e784b 100644 --- a/docs/contribute.md +++ b/docs/contribute.md @@ -1,6 +1,63 @@ # Contribute -This project is **not** currently taking PRs (pull requests) or code contributions. This is currently a work in progress and not at a point that would make sense to take contributions. Please try to make PRs into [ansible-examples](https://github.com/ansible/ansible-examples) if you want to showcase Ansible Playbooks or roles. +So you want to create a demo? What do you do? These demos are considered "demos as code" so every demo must adhere to our standards and be highly re-usable. + +## Requirements. + +- Must work with Ansible Tower / Ansible Automation Platform. There has to be a UX component to the demo. +- Must be ephemeral and require no service that cannot be reproduced in an automated fashion. This means a demo that requires the user to create a personalized token with an external service (e.g. ServiceNow, Slack) is not appropriate here because it would require manual steps for a user to recreate your demo. +- Must align with Red Hat use-cases. A demo that programs your lawn mower is not something we would actually demonstrate. You can easily create a fork of this repo and make your own fun project. + +You need **three** major components to get a demo accepted + +## 1. Demo var file + +In the principle of "everything as code", these are "demos as code". Each demo has its own individual var file. All var files are installed under: + + ``` + /roles/install_demo/vars/main + ``` + +There are four categories of demos: + 1. **infrastructure** - automation for IT infrastructure such as Linux and Windows. + 2. **network** - automation for network infrastructure such as routers and switches. + 3. **security** - automation for SIEMs, firewalls, and IPS such as IBM Qradar, Splunk and Checkpoint. + 4. **developer** - automation for developer persona, such as CI/CD pipelines, web hooks, developer environments and automated testing + +Look at a very specific example here: `deploy_application.yml` + +Location: `roles/install_demo/vars/main/infrastructure/deploy_application.yml` +Link: [https://github.com/ansible/product-demos/blob/master/roles/install_demo/vars/main/infrastructure/deploy_application.yml](https://github.com/ansible/product-demos/blob/master/roles/install_demo/vars/main/infrastructure/deploy_application.yml) + +## 2. Ansible Playbook + +In the demo var file above you will notice a `playbook` line. For example in the `deploy_application.yml` example: + +`playbook: "playbooks/infrastructure/deploy_application.yml"` + +There is also a **project** section of the demo var file + +``` +project: + name: "Ansible official demo project" + description: "prescriptive demos from Red Hat Management Business Unit" + organization: "Default" + scm_type: git + scm_url: "https://github.com/ansible/product-demos" +``` + +The Ansible Playbook **does NOT** have to exist in this repo. In fact it is encouraged to fork this repo and test it out by pointing to your own repo. It is also recommended to create Ansible Playbooks that work on the [Ansible Automation Workshop](https://github.com/ansible/workshops) topologies. This makes them extremely re-usable. + + +## 3. Walkthrough + +Each demo should have a walkthrough. In the demo var file there is a line with the key `readme`. For example for the `deploy_application.yml`: + +``` +readme: "https://github.com/ansible/product-demos/blob/master/docs/infrastructure/deploy_application.md" +``` + +Here is an example walkthrough for the `deploy_application.yml` demo: [https://github.com/ansible/product-demos/blob/master/docs/infrastructure/deploy_application.md](https://github.com/ansible/product-demos/blob/master/docs/infrastructure/deploy_application.md) # Converting Existing Workflows into ephemeral demos @@ -8,6 +65,10 @@ There is no way in the Ansible Tower API to access the workflow schema at this t The Workflow schema can be automated by using the [tower_workflow_template](https://docs.ansible.com/ansible/latest/modules/tower_workflow_template_module.html#parameter-schema) module to load Ansible Tower with an entire Workflow. +## update May 2020 + +The [awx.awx collection](https://galaxy.ansible.com/awx/awx) has some new enhancements to allow installation of Ansible workflows Please coordinate with Ansible API team if you need help. + # Going Further The following links will be helpful if you want to contribute code to the Ansible Workshops project, or any Ansible project: diff --git a/roles/install_demo/vars/main/developer/developer_report.yml b/roles/install_demo/vars/main/developer/developer_report.yml index 975925f..a036019 100644 --- a/roles/install_demo/vars/main/developer/developer_report.yml +++ b/roles/install_demo/vars/main/developer/developer_report.yml @@ -13,7 +13,7 @@ developer_report: survey_enabled: false project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/debug_info.yml b/roles/install_demo/vars/main/infrastructure/debug_info.yml index f395080..3c2ff83 100644 --- a/roles/install_demo/vars/main/infrastructure/debug_info.yml +++ b/roles/install_demo/vars/main/infrastructure/debug_info.yml @@ -19,7 +19,7 @@ debug_info: required: false project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/deploy_application.yml b/roles/install_demo/vars/main/infrastructure/deploy_application.yml index b87dca3..81ebcae 100644 --- a/roles/install_demo/vars/main/infrastructure/deploy_application.yml +++ b/roles/install_demo/vars/main/infrastructure/deploy_application.yml @@ -28,7 +28,7 @@ deploy_application: video: "https://www.youtube.com/watch?v=pU8ZgSBuEJw&list=PLdu06OJoEf2bp-PNtxPP_2n7Avkax8TED" project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/grant_sudo.yml b/roles/install_demo/vars/main/infrastructure/grant_sudo.yml index 547b0b9..c9774fc 100644 --- a/roles/install_demo/vars/main/infrastructure/grant_sudo.yml +++ b/roles/install_demo/vars/main/infrastructure/grant_sudo.yml @@ -37,7 +37,7 @@ grant_sudo: default: minutes project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/insights.yml b/roles/install_demo/vars/main/infrastructure/insights.yml index daee560..f052ef1 100644 --- a/roles/install_demo/vars/main/infrastructure/insights.yml +++ b/roles/install_demo/vars/main/infrastructure/insights.yml @@ -23,7 +23,7 @@ insights: required: true project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/patching.yml b/roles/install_demo/vars/main/infrastructure/patching.yml index 6f4699f..c1dc1c3 100644 --- a/roles/install_demo/vars/main/infrastructure/patching.yml +++ b/roles/install_demo/vars/main/infrastructure/patching.yml @@ -19,7 +19,7 @@ patching: required: false project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/security_patching.yml b/roles/install_demo/vars/main/infrastructure/security_patching.yml index 53808bf..3279b4b 100644 --- a/roles/install_demo/vars/main/infrastructure/security_patching.yml +++ b/roles/install_demo/vars/main/infrastructure/security_patching.yml @@ -19,7 +19,7 @@ security_patching: required: false project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/infrastructure/windows_iss.yml b/roles/install_demo/vars/main/infrastructure/windows_iss.yml index 35d4aa9..2e35ecf 100644 --- a/roles/install_demo/vars/main/infrastructure/windows_iss.yml +++ b/roles/install_demo/vars/main/infrastructure/windows_iss.yml @@ -11,7 +11,7 @@ windows_iis: survey_enabled: false project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/network/configlet_logging.yml b/roles/install_demo/vars/main/network/configlet_logging.yml index 1be874b..08adc52 100644 --- a/roles/install_demo/vars/main/network/configlet_logging.yml +++ b/roles/install_demo/vars/main/network/configlet_logging.yml @@ -12,7 +12,7 @@ configlet_logging: fact_caching_enabled: true project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/network/configlet_ntp.yml b/roles/install_demo/vars/main/network/configlet_ntp.yml index bab86d8..0dcb917 100644 --- a/roles/install_demo/vars/main/network/configlet_ntp.yml +++ b/roles/install_demo/vars/main/network/configlet_ntp.yml @@ -12,7 +12,7 @@ configlet_ntp: fact_caching_enabled: true project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/security/hardening.yml b/roles/install_demo/vars/main/security/hardening.yml index 5bb0391..285cd26 100644 --- a/roles/install_demo/vars/main/security/hardening.yml +++ b/roles/install_demo/vars/main/security/hardening.yml @@ -47,7 +47,7 @@ hardening: - 'No' project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos" diff --git a/roles/install_demo/vars/main/security/openscap.yml b/roles/install_demo/vars/main/security/openscap.yml index 0f0147f..8287b42 100644 --- a/roles/install_demo/vars/main/security/openscap.yml +++ b/roles/install_demo/vars/main/security/openscap.yml @@ -11,7 +11,7 @@ openscap: survey_enabled: false project: name: "Ansible official demo project" - description: "prescriptive demos from Red Hat Management Buisness Unit" + description: "prescriptive demos from Red Hat Management Business Unit" organization: "Default" scm_type: git scm_url: "https://github.com/ansible/product-demos"