Code Monkey home page Code Monkey logo

product-demos's Introduction

Lab Dev Spaces

Official Ansible Product Demos

This is a centralized location for Ansible Product Demos. This project is a collection of use cases implemented with Ansible for use with the Ansible Automation Platform.

Demo Name Description
Linux Repository of demos for RHEL and Linux automation
Windows Repository of demos for Windows Server automation
Cloud Demo for infrastructure and cloud provisioning automation
Network Ansible Network automation demos
Satellite Demos of automation with Red Hat Satellite Server

Contributions

If you would like to contribute to this project please refer to contribution guide for best practices.

Using this project

This project is tested for compatibility with the demo.redhat.com Product Demos Sandbox lab environment. To use with other Ansible Controller installations, review the prerequisite documentation.

NOTE: demo.redhat.com is available to Red Hat Associates and Partners with a valid account.

  1. First you must create a credential for Automation Hub to successfully sync collections used by this project.

    1. In the Credentials section of the Controller UI, add a new Credential called Automation Hub with the type Ansible Galaxy/Automation Hub API Token

    2. You can obtain a token here. This page will also provide the Server URL and Auth Server URL.

    3. Next, click on Organizations and edit the Default organization. Add your Automation Hub credential to the Galaxy Credentials section. Don't forget to click Save!!

      You can also use an execution environment for disconnected environments. To do this, you must disable collection downloads in the Controller. This can be done in Settings > Job Settings. This setting prevents the controller from downloading collections listed in the collections/requirements.yml file.

  2. If it is not already created for you, add an Execution Environment called product-demos

    • Name: product-demos
    • Image: quay.io/acme_corp/product-demos-ee:latest
    • Pull: Only pull the image if not present before running
  3. If it is not already created for you, create a Project called Ansible official demo project with this repo as a source. NOTE: if you are using a fork, be sure that you have the correct URL. Update the project.

  4. Finally, Create a Job Template called Setup with the following configuration:

    • Name: Setup

    • Inventory: Demo Inventory

    • Exec Env: product-demos

    • Playbook: setup_demo.yml

    • Credentials:

      • Type: Red Hat Ansible Automation Platform
      • Name: Controller Credential
    • Extra vars:

       demo: <linux or windows or cloud or network>
      

Bring Your Own Demo

Can't find what you're looking for? Customize this repo to make it your own.

  1. Create a fork of this repo.
  2. Update the URL of the Ansible official demo project in the Controller.
  3. Make changes as needed and run the Setup job

See the contribution guide for more details on how to customize the project.


Privacy statement | Terms of use | Security disclosure | All policies and guidelines

product-demos's People

Contributors

anshulbehl avatar benblasco avatar chadmf avatar cloin avatar codebot-user1 avatar colin-mccarthy avatar dlemons-redhat avatar heatmiser avatar hichammourad avatar ipvsean avatar jce-redhat avatar jctanner avatar l3acon avatar liquidat avatar mkletz avatar nleiva avatar sstanovnik avatar taruch avatar termlen0 avatar willtome avatar youtous avatar zjleblanc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

product-demos's Issues

RHPDS Compliance DEMO - Insufficient MEM on nodes

The compliance DEMO cannot be completed per accompanying instructions due to insufficient memory size on the provisioned nodes. The total mem for each node is 800MB.

Steps:

  1. Run the ansible job template name "Openscap report" in Ansible tower to create the openscap html report for all RHEL 8 servers

  2. Check the /var/log/message - shows the error "out of memory"

The ansible tower url: https://student1..open.redhat.com/#/templates?template_search=page_size:20;order_by:name;type:workflow_job_template,job_template

Job template name: Openscap report

Missing firewall module

firewall module missing on default rhel8&9 amis. Reproduce with patching job

Failed to import the required Python library (firewall) on ip-192-168-0-103.us-east-2.compute.internal's Python /usr/libexec/platform-python. Please read the module documentation and install it in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter. Version 0.2.11 or newer required (0.3.9 or newer for offline operations)

Windows demos - Creating AD domain takes multiple runs

More often than not the Create AD Domain playbook takes multiple runs and reboots to complete due to some service quirks with Windows. Current work around is manually triggering a reboot after the first failure and run the playbook again.

NETWORK / DISA STIG consistently fails when trying to execute cisco.ios.ios_facts module

In both the RHPDS - Ansible Product Demo site, as well as the DoD Automated Compliance site, the NETWORK / DISA STIG consistently fails (multiple reports from customers and multiple tests on my end) on the [Gathering Facts] task with the following fatal error: "msg": "ssh connection failed: ssh connect failed: Socket error: Connection reset by peer." The full stack is attached. For reference, it is calling this playbook to run the job template.

job_17.txt

Pin product-demos-ee to a version tag

currently the product-demos EE configuration pulls the latest image tag, so any collection updates made in the product-demos-ee repo could cause issues with current demo content. the task that defines the product-demos EE should use a specific version tag instead of latest so updates to the EE can be tested without affecting current demo content.

add node1 to cloud workflow

in addition to creating RHEL and windows instances as part of the "Deploy Cloud Stack in AWS", add the creation of a "node1" instance. this node will be used for hosting reports generated by other job templates such as the patching report, network report, etc.

Document injector formatting requirement

when defining injectors for controller credential types (see linux/setup.yml example), the infra.controller_configuration.credential_types role has an odd requirement for adding two spaces between jinja brackets in order to pass the bracketed variable through to the credential configuration. see https://github.com/redhat-cop/controller_configuration/tree/devel/roles/credential_types#formating-injectors for details. this caused some confusion for users of this repo who weren't familiar with the requirement, so a comment should be added for clarity where used.

additionally, the {% raw %} {% endraw %} construct is not required when using the infra.controller_configuration.credential_types role and its two space construct.

Cloud Demos - VPC Report

The VPC report is failing due to AWS permission issues.

An exception occurred during task execution. To see the full traceback, use -vvv. The error was: botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the GetPublicAccessBlock operation: Access Denied
7
fatal: [localhost]: FAILED! => {"boto3_version": "1.28.62", "botocore_version": "1.31.62", "changed": false, "error": {"code": "AccessDenied", "message": "Access Denied"}, "msg": "Failed to get bucket public access configuration: An error occurred (AccessDenied) when calling the GetPublicAccessBlock operation: Access Denied", "response_metadata": {"host_id": "u/NEFouJ/8csVLtlJFC65G5wgtPvNltvmr0h93kFly0HFl1EMbC51EDAe80cYJpmZdrMaFpWqAQ=", "http_headers": {"content-type": "application/xml", "date": "Tue, 24 Oct 2023 16:49:42 GMT", "server": "AmazonS3", "transfer-encoding": "chunked", "x-amz-id-2": "u/NEFouJ/8csVLtlJFC65G5wgtPvNltvmr0h93kFly0HFl1EMbC51EDAe80cYJpmZdrMaFpWqAQ=", "x-amz-request-id": "X884301GABKE3R5H"}, "http_status_code": 403, "request_id": "X884301GABKE3R5H", "retry_attempts": 0}}

Unable to make outbound RESTful API calls after upgrade from Madrid to New York

I have a ServiceNow developer instance which at one time week was running the Madrid release. Using the ServiceNow documentation showing Google as an Oauth2 provider, I set up ServiceNow to successfully make outbound RESTful calls into Ansible Tower. I used a self-signed certificate from Ansible Tower in order to make these calls.

When available, I upgraded my developer instance to New York. Where I was able to make outbound RESTful calls before, I am now unable to. Inspection into the Logs shows that ServiceNow is not seeing certificate for the web server:

image

I've gone through the settings and everything looks correct. Furthermore, I changed the system properties to ignore any certificate chain and to trust all certificates (just to take those checks out of the equation):

com.glide.communications.httpclient.verify_hostname: false

com.glide.communications.trustmanager_trust_all: true

I am still getting the message "no issuer certificate found for [webserver]." In order to test whether or not this is an issue with self-signed certificates, I created a certificate via letsencrypt.org and installed it to my webserver. This new certificate is not being recognized either, and I am still seeing "no issuer certificate found for [webserver]." This is the case both for Oauth2 authentication as well as basic authentication.

I am at a point where nothing is readily apparent as to something being misconfigured in ServiceNow - does anyone have an idea as to what may have changed from Madrid to New York (and now Orlando) to result in this behavior?

relocate DISA compliance roles

the DISA compliance roles are external third party content being "vendored" in under the collections/ directory. they should be moved under roles/ instead, just like the external redhatofficial.* roles currently under roles/.

Document GitLab + DevSpaces Setup

Test and document...

  1. setting up GitLab and Devspaces on OpenShift cluster
  2. document self-registering users and create a project and repo (this could be automated maybe?)
  3. connecting the dev space to a gitlab repo w/ a personal access token
  4. connecting the gitlab repo to the automation controller

Showcase RBAC

Having a way to showcase RBAC across organizations helps demo the value differentiation of AAP. This was an old PR that might be useful: RedHatGov#15

SECURITY / Create Openscap Report fails

on rhpds using the Service "Ansible Compliance Demos", I tried running the "SECURITY / Create Openscap Report" template on Tower and it fails for all nodes with this error:

failed: [node2] (item=report.xml) => {"ansible_loop_var": "item", "changed": false, "item": "report.xml", "msg": "Source ./report.xml not found"}

Update credentials to use `state: exists`

Update all configuration as code credentials to use state: exists (see ansible/awx#13725)

Using state: exists allows credentials to not be over-written, improving idempotency . This is particularly helpful when attempting to use Product-demos in brown-field environments, as well as improving the debugging/troubleshooting experience

Unable to add a middleware demo due to small VM sizes

We now have a reproducible middleware + Ansible product demo that we can showcase. The demo uses 3 containers that host mysql, Decision Manager and Fuse within a podman pod on rhel. I tried to use node 3 to host the pod but that kills the VM. I would very much like this to be part of our product demos since we can build upon this state tracking use case to show customers. Any chance we could beef up our workshop VMs (or at least one of them) to xlarge? If that's not an option, would it make sense to have a "demo provisioner" with beefier nodes that is made available in RHPDS?

Details:
Demo provisioner: https://github.com/RedHatTelco/product-demos/tree/middleware
Demo dependencies: https://github.com/RedHatTelco/intelligent-restarts/blob/master/dependencies.yml

Expanded Use-Case Request OpenSCAP

It would be helpful, to include Windows in the OpenSCAP demo as well in order to tell the story of having a single automation tool that can run compliance across the entire architecture. Are there any plans/efforts into this?

Stick to role prefix variable naming

The current variable naming of the roles does not stick with the recommended role naming of ansible-lint.
All variables that need a rename have been identified using the following comment:

# noqa var-naming[no-role-prefix] - TODO : we should rework roles to use variable prefix, until scope is defined, silence is the way

This issue address the renaming of those and the associated tests & documentation.

SETUP with Demo Category: Cloud fails

At the very start of the workshop/lab, when running the SETUP Job template with Demo Category: 'Cloud' , the following error pops up: failed: [localhost] (item={'failed': 0, 'started': 1, 'finished': 0, 'ansible_job_id': 'j760450173010.1206', 'results_file': '/tmp/.ansible_async/j760450173010.1206', 'changed': False, '__workflow_loop_node_item': {'identifier': 'Deploy Windows Blueprint', 'unified_job_template': 'Cloud / AWS / Create VM', 'extra_data': {'vm_name': 'aws_win', 'vm_blueprint': 'windows_full', 'vm_owner': '{{ aws_owner_tag }}'}, 'success_nodes': ['Update Inventory'], 'failure_nodes': ['Ticket - Instance Failed']}, 'ansible_loop_var': '__workflow_loop_node_item'}) => {"__workflows_node_async_results_item": {"__workflow_loop_node_item": {"extra_data": {"vm_blueprint": "windows_full", "vm_name": "aws_win", "vm_owner": "{{ aws_owner_tag }}"}, "failure_nodes": ["Ticket - Instance Failed"], "identifier": "Deploy Windows Blueprint", "success_nodes": ["Update Inventory"], "unified_job_template": "Cloud / AWS / Create VM"}, "ansible_job_id": "j760450173010.1206", "ansible_loop_var": "__workflow_loop_node_item", "changed": false, โ€ฆ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.