2 Commits

Author SHA1 Message Date
Matthew Fernandez
fc9c621ecf Merge branch 'main' into jce/multi-arch-ee 2025-06-18 09:45:03 -06:00
Chris Edillon
c96096c2c9 support building multi-arch EE image 2025-06-03 16:24:19 -04:00
7 changed files with 56 additions and 55 deletions

View File

@@ -1,6 +1,6 @@
# GitHub Actions # GitHub Actions
## Background ## Background
We want to make attempts to run our integration tests in the same manner wether using GitHub actions or on a developers's machine locally. For this reason, the tests are curated to run using container images. As of this writing, two images exist which we would like to test against: We want to make attempts to run our integration tests in the same manner wether using GitHub actions or on a developers's machine locally. For this reason, the tests are curated to run using conatiner images. As of this writing, two images exist which we would like to test against:
- quay.io/ansible-product-demos/apd-ee-24:latest - quay.io/ansible-product-demos/apd-ee-24:latest
- quay.io/ansible-product-demos/apd-ee-25:latest - quay.io/ansible-product-demos/apd-ee-25:latest

1
.gitignore vendored
View File

@@ -13,4 +13,3 @@ roles/*
.cache/ .cache/
.ansible/ .ansible/
**/tmp/ **/tmp/
execution_environments/context/

View File

@@ -1,9 +1,10 @@
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit) [![Lab](https://img.shields.io/badge/Try%20Me-EE0000?style=for-the-badge&logo=redhat&logoColor=white)](https://red.ht/aap-product-demos)
[![Dev Spaces](https://img.shields.io/badge/Customize%20Here-0078d7.svg?style=for-the-badge&logo=visual-studio-code&logoColor=white)](https://workspaces.openshift.com/f?url=https://github.com/ansible/product-demos) [![Dev Spaces](https://img.shields.io/badge/Customize%20Here-0078d7.svg?style=for-the-badge&logo=visual-studio-code&logoColor=white)](https://workspaces.openshift.com/f?url=https://github.com/ansible/product-demos)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
# APD - Ansible Product Demos # Official Ansible Product Demos
The Ansible Product Demos (APD) project is a set of Ansible demos that are deployed using [Red Hat Ansible Automation Platform](https://www.redhat.com/en/technologies/management/ansible). It uses configuraton-as-code to create AAP resources such as projects, templates, and credentials that form the basis for demonstrating automation use cases in several technology domains: 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](https://www.redhat.com/en/technologies/management/ansible).
| Demo Name | Description | | Demo Name | Description |
|-----------|-------------| |-----------|-------------|
@@ -14,21 +15,54 @@ The Ansible Product Demos (APD) project is a set of Ansible demos that are deplo
| [OpenShift](openshift/README.md) | OpenShift automation demos | | [OpenShift](openshift/README.md) | OpenShift automation demos |
| [Satellite](satellite/README.md) | Demos of automation with Red Hat Satellite Server | | [Satellite](satellite/README.md) | Demos of automation with Red Hat Satellite Server |
## Contributions
If you would like to contribute to this project please refer to [contribution guide](CONTRIBUTING.md) for best practices.
## Using this project ## Using this project
Use the [APD bootstrap](https://github.com/ansible/product-demos-bootstrap) repo to add APD to an existing Ansible Automation Platform deployment. The bootstrap repo provides the initial manual prerequisite steps as well as a playbook for adding APD to the existing deployment. This project is tested for compatibility with the [demo.redhat.com Ansible Product Demos](https://demo.redhat.com/catalog?search=product+demos&item=babylon-catalog-prod%2Fopenshift-cnv.aap-product-demos-cnv.prod) lab environment. To use with other Ansible Automation Platform installations, review the [prerequisite documentation](https://github.com/ansible/product-demos-bootstrap).
For Red Hat associates and partners, there is an Ansible Product Demos catalog item [available on demo.redhat.com](https://red.ht/apd-sandbox) (account required). > 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](https://console.redhat.com/ansible/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](https://console.redhat.com/ansible/automation-hub/token). 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](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 Product Demos` 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 ## Bring Your Own Demo
Can't find what you're looking for? Customize this repo to make it your own. Can't find what you're looking for? Customize this repo to make it your own.
1. Create a fork of this repo. 1. Create a fork of this repo.
2. Update the URL of the `Ansible Project Demos` project your Ansible Automation Platform controller. 2. Update the URL of the `Ansible Project Demos` in the Controller.
3. Make changes to your fork as needed and run the **Product Demos | Single demo setup** job 3. Make changes as needed and run the **Product Demos | Single demo setup** job
See the [contributing guide](CONTRIBUTING.md) for more details on how to customize the project. See the [contribution guide](CONTRIBUTING.md) for more details on how to customize the project.
--- ---

View File

@@ -44,13 +44,14 @@ controller_inventory_sources:
- tag:Name - tag:Name
compose: compose:
ansible_host: public_ip_address ansible_host: public_ip_address
ansible_user: ec2-user ansible_user: 'ec2-user'
groups: groups:
cloud_aws: true cloud_aws: true
os_linux: "platform_details == 'Red Hat Enterprise Linux'" os_linux: tags.blueprint.startswith('rhel')
os_windows: "platform_details == 'Windows'" os_windows: tags.blueprint.startswith('win')
keyed_groups: keyed_groups:
- key: platform
prefix: os
- key: tags.blueprint - key: tags.blueprint
prefix: blueprint prefix: blueprint
- key: tags.owner - key: tags.owner
@@ -61,7 +62,6 @@ controller_inventory_sources:
prefix: deployment prefix: deployment
- key: tags.Compliance - key: tags.Compliance
separator: '' separator: ''
controller_groups: controller_groups:
- name: cloud_aws - name: cloud_aws
inventory: Demo Inventory inventory: Demo Inventory

View File

@@ -52,9 +52,7 @@
state: enabled state: enabled
immediate: true immediate: true
permanent: true permanent: true
when: when: "'firewalld.service' in ansible_facts.services"
- "'firewalld.service' in ansible_facts.services"
- ansible_facts.services["firewalld.service"].state == "running"
- name: Disable httpd welcome page - name: Disable httpd welcome page
ansible.builtin.file: ansible.builtin.file:

View File

@@ -245,34 +245,6 @@ controller_templates:
- "OpenShift Credential" - "OpenShift Credential"
controller_workflows: controller_workflows:
- name: OpenShift / CNV / Sync Hosts
description: A workflow to update dynamic CNV inventory and wait for hosts to become avilable
organization: Default
notification_templates_started: Telemetry
notification_templates_success: Telemetry
notification_templates_error: Telemetry
survey_enabled: true
survey:
name: ''
description: ''
spec:
- question_name: Specify target hosts
type: text
variable: _hosts
required: true
default: "openshift-cnv-rhel*"
simplified_workflow_nodes:
- identifier: Inventory Sync
unified_job_template: OpenShift CNV Inventory
success_nodes:
- Wait Hosts
- identifier: Wait Hosts
unified_job_template: OpenShift / CNV / Wait Hosts
failure_nodes:
- Second Inventory Sync
- identifier: Second Inventory Sync
unified_job_template: OpenShift CNV Inventory
- name: OpenShift / CNV / Infra Stack - name: OpenShift / CNV / Infra Stack
description: A workflow to deploy Virtualized infra in OCP Virtalization description: A workflow to deploy Virtualized infra in OCP Virtalization
organization: Default organization: Default
@@ -348,15 +320,15 @@ controller_workflows:
success_nodes: success_nodes:
- Patch Instance - Patch Instance
# We need to do an invnetory sync *after* creating snapshots, as turning VMs on/off changes their IP # We need to do an invnetory sync *after* creating snapshots, as turning VMs on/off changes their IP
- identifier: Sync Hosts - identifier: Inventory Sync
unified_job_template: OpenShift / CNV / Sync Hosts unified_job_template: OpenShift CNV Inventory
success_nodes: success_nodes:
- Patch Instance - Patch Instance
- identifier: Take Snapshot - identifier: Take Snapshot
unified_job_template: OpenShift / CNV / Create VM Snapshots unified_job_template: OpenShift / CNV / Create VM Snapshots
success_nodes: success_nodes:
- Project Sync - Project Sync
- Sync Hosts - Inventory Sync
- identifier: Patch Instance - identifier: Patch Instance
unified_job_template: OpenShift / CNV / Patch unified_job_template: OpenShift / CNV / Patch
job_type: run job_type: run

View File

@@ -46,17 +46,15 @@
- name: Create some users - name: Create some users
microsoft.ad.user: microsoft.ad.user:
name: "{{ item.name }}" name: "{{ item.name }}"
groups: groups: "{{ item.groups }}"
set:
- "{{ item.group }}"
password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}" password: "{{ lookup('community.general.random_string', min_lower=1, min_upper=1, min_special=1, min_numeric=1) }}"
update_password: on_create update_password: on_create
loop: loop:
- name: "UserA" - name: "UserA"
group: "GroupA" groups: "GroupA"
- name: "UserB" - name: "UserB"
group: "GroupB" groups: "GroupB"
- name: "UserC" - name: "UserC"
group: "GroupC" groups: "GroupC"
retries: 5 retries: 5
delay: 10 delay: 10