Active
AI Generated
RHEL Subscription Routing
Route by registration state
Description
Switch on RHEL subscription state after a compliance check. Registration status drives the remediation path — not whether the Ansible job turned green.
Why it matters
- RHEL subscription state — expiring, expired, unregistered — needs different fixes than a green Ansible job result.
- Compliance scans that publish subscription_status enable proactive renewal before entitlement lapses.
- Registration automation on unregistered hosts closes drift without manual inventory hunts.
AO building blocks
Automation orchestrator step types this workflow uses on the canvas. See all building blocks
-
Triggers
Manual trigger
Starts a workflow when a user clicks Run in the UI or calls the workflow execution API — the simplest entry point for on-demand runs like demos, break-glass remediation, or operator-initiated changes. No extra configuration is required, and runs appear in history with the triggering user as the source.
-
Logic
Switch step
Evaluates conditions and routes execution to the first matching branch, supporting up to 100 ordered paths plus a fallback when nothing matches. Use it to branch on severity tiers, environment (dev/staging/prod), or AI agent output categories where a binary conditional isn't enough.
-
AAP execution
AAP job template
Launches a single Ansible Automation Platform job template from the workflow, polling until the job completes and exposing results to downstream steps. The standard bridge between automation orchestrator reasoning and AAP execution — one playbook with resolved inventory, credentials, limits, and extra vars.
Interactive Experience
Workflow
flowchart LR
A@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/manual-trigger.png", label: "Schedule", pos: "b", h: 96, constraint: "on" } --> B@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/launch-aap-job-template.png", label: "Check Subscription", pos: "b", h: 96, constraint: "on" }
B --> C@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/switch-node.png", label: "subscription_status", pos: "b", h: 96, constraint: "on" }
C -->|registered| D@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/launch-aap-job-template.png", label: "Log Compliant", pos: "b", h: 96, constraint: "on" }
C -->|expiring| E@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/launch-aap-job-template.png", label: "Notify Expiring", pos: "b", h: 96, constraint: "on" }
C -->|expired| F@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/launch-aap-job-template.png", label: "Renew Subscription", pos: "b", h: 96, constraint: "on" }
C -->|unregistered| G@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/launch-aap-job-template.png", label: "Register System", pos: "b", h: 96, constraint: "on" }
D --> H@{ img: "https://ansible-tmm.github.io/aap-orchestrator-demos/assets/icons/launch-aap-job-template.png", label: "Notify Chatroom", pos: "b", h: 96, constraint: "on" }
E --> H
F --> H
G --> H
classDef noBorder fill:transparent,stroke:transparent
class A,B,C,D,E,F,G,H noBorder
Switch routing
| subscription_status | Action |
|---|---|
registered |
Log compliant |
expiring |
Notify + schedule renewal |
expired |
Register or attach subscription |
unregistered |
Register with activation key |
Playbooks
| Playbook | What it does | Runs on |
|---|---|---|
check_subscription.yml
|
Checks RHEL subscription status and classifies as registered, expiring, expired, or unregistered. | RHEL node |
log_compliant.yml
|
Logs compliance for properly registered systems. | RHEL node |
notify_expiring.yml
|
Logs expiring subscription advisory with expiry details. | RHEL node |
renew_subscription.yml
|
Refreshes and auto-attaches expired RHEL subscriptions. | RHEL node |
register_system.yml
|
Registers unregistered systems with activation key. | RHEL node |
notify_chatroom.yml
|
Posts subscription status to Mattermost with color-coded status. | localhost (Mattermost API) |
AI Generated
This demo's playbooks and workflow were generated by AI to illustrate the pattern. They have not been fully tested in a live environment. Review and adapt before using in production.