This repository is an Ansible-based Configuration as Code (CaC) system designed to automate the setup and management of demo environments on the Red Hat Demo Platform. It serves as the foundation for the Ansible Product Demos catalog item, enabling quick deployment of various automation demonstrations.
The aap.as.code repository:
- Automates AAP Configuration: Provisions and configures Ansible Automation Platform (AAP) instances with predefined templates, credentials, inventories, and projects
- Enables Demo Orchestration: Loads setup templates that pull in other specialized demo repositories
- Manages Configuration as Code: Maintains all configuration definitions in version-controlled YAML files
- Integrates ServiceNow & EDA: Provides Event-Driven Ansible integration with ServiceNow for automated incident response
Organizations and sales engineers need to quickly spin up working Ansible demonstrations on the Red Hat Demo Platform. Rather than manually configuring each AAP instance, this repository provides:
- Consistency: Every demo environment is configured identically
- Speed: Automated setup reduces deployment time from hours to minutes
- Repeatability: Infrastructure as Code ensures reproducible environments
- Flexibility: Modular design allows loading different demo scenarios
The project follows an Configuration as Code (CaC) pattern where:
- All infrastructure and configuration is defined in code
- Changes are version-controlled through Git
- Ansible playbooks manage the entire lifecycle
- Configuration is declarative rather than imperative
Entry Point: playbooks/main.yml
Located in playbooks/files/config_as_code/, these define:
-
Controller Configuration:
controller_credentials.yml- Authentication credentialscontroller_hosts.yml- Managed hostscontroller_inventories.yml- Host groupingscontroller_projects.yml- Source code repositoriescontroller_templates.yml- Job templatescontroller_settings.yml- Platform settings
-
Event-Driven Ansible:
eda_credentials.yml- EDA authenticationeda_decision_environments.yml- Decision environment containerseda_event_streams.yml- Event source configurationseda_projects.yml- Rulebook repositorieseda_rulebook_activations.yml- Active event-response rules
-
Gateway & Access:
gateway_organizations.yml- Organization structuregateway_settings.yml- Gateway configurationgateway_teams.yml- Team definitionsgateway_users.yml- User accounts
This repository integrates with specialized daily demos:
- AAP Daily Demo Windows - Windows automation scenarios
- AAP Daily Demo Linux - Linux system management
- AAP Daily Demo F5 - F5 load balancer automation
- AAP Daily Demo Panos - Palo Alto firewall automation
- AAP Daily Demo Satellite - Red Hat Satellite integration
- AAP Daily Demo Hashicorp - Vault and Terraform integration
-
Automation Hub Access:
- Certified content:
https://console.redhat.com/api/automation-hub/content/published/ - Validated content:
https://console.redhat.com/api/automation-hub/content/validated/ - API token for authentication
- Certified content:
-
Secrets Management:
- Vault credential in AAP
- Remote vault file with encrypted secrets
- Public SSH key in a publicly accessible repository
-
Red Hat Demo Platform:
- Access to the Ansible Product Demos catalog item
- AAP instance provisioned and accessible
- Configure Credentials: Set up Automation Hub (certified and validated) credentials in AAP
- Link to Organization: Associate Galaxy credentials with the Default Organization
- Create Vault Credential: Configure vault password for decrypting secrets
- Create Project: Point AAP to this Git repository
- Prepare Remote Resources: Host vault file and SSH public key in accessible locations
- Create Job Template: Configure template with required extra variables
- Execute: Launch the job template to provision the demo environment
my_windows_catalog_short_description: "Your Catalog Description"
my_aap_url: "URL from Red Hat Demo Platform"
my_ctrl_admin_password: "Password from Red Hat Demo Platform"
my_vault: "Your Vault Credential Name"
my_remote_vault: "https://url-to-your-vault-file.yml"
my_remote_ssh_pub_key: "https://url-to-your-public-key.pub"The repository includes extensive Event-Driven Ansible integration with ServiceNow:
- Event Streams: Listen for ServiceNow incidents and changes
- Rulebook Activations: Automated response to SNOW events
- Decision Environments: Containerized rulebook execution
- Documentation: See
doc/AAP_Servicenow.pdffor detailed setup
Check playbooks/files/config_as_code/eda_* files for EDA configuration examples.
- README.md: Setup and deployment instructions
- docs/index.md: Documentation index and quick reference
- docs/project-overview.md: Executive summary
- docs/architecture.md: Technical architecture details
- docs/development-guide.md: Developer setup process
- docs/deployment-guide.md: Deployment instructions
- docs/: ServiceNow integration guides (PDFs and external links)
- Orchestration: Ansible Automation Platform
- Configuration Management: Ansible playbooks and roles
- Event-Driven Automation: Event-Driven Ansible (EDA)
- Integration: ServiceNow, AWS, various network devices
- Version Control: Git/GitHub
- Secrets Management: Ansible Vault, remote vault files
Monolithic - All configuration and playbooks are maintained in a single repository for simplified management and deployment.
For detailed setup instructions, see:
- README.md - Complete setup walkthrough
- docs/development-guide.md - Development environment setup
- docs/deployment-guide.md - Deployment on Red Hat Demo Platform
- Red Hat sales engineers demonstrating AAP capabilities
- Solution architects building proof-of-concepts
- Partners showcasing Red Hat Ansible automation
- Training and education teams delivering hands-on labs