From ansible-poc
Creates a structured GitHub repository for Ansible proof of concepts, customer demos, or automation scenarios using official Red Hat Ansible Automation Platform (AAP) products and Red Hat Certified Ansible Collections. Use when the user asks to create an Ansible POC, Ansible Customer POC, Ansible PoC, Ansible demo repository, or says something like "I need an Ansible POC", "create an Ansible proof of concept", or "set up an Ansible customer demo".
How this skill is triggered — by the user, by Claude, or both
Slash command
/ansible-poc:ansible-pocThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creates a GitHub repository following the official Ansible recommended directory layout.
Creates a GitHub repository following the official Ansible recommended directory layout. The PoC can be:
All content must be written in English. Use only official Red Hat Certified Collections and reference official Red Hat documentation for every module, role, or feature used.
Reference: Ansible Sample Setup
poc-<short-slug>/
├── README.md
├── ansible.cfg
├── requirements.yml # collection and role dependencies
├── inventory/
│ ├── hosts.yml # managed nodes
│ ├── group_vars/
│ │ └── all.yml # variables shared across all groups
│ └── host_vars/ # per-host variables (if needed)
├── playbooks/
│ ├── site.yml # main entry-point playbook
│ ├── <concern>.yml # one playbook per logical concern
│ └── verify.yml # idempotency / smoke-test playbook
├── roles/
│ └── <role-name>/
│ ├── tasks/
│ │ └── main.yml
│ ├── handlers/
│ │ └── main.yml
│ ├── templates/ # Jinja2 templates (.j2)
│ ├── files/ # static files for copy/script modules
│ ├── vars/
│ │ └── main.yml # role variables (higher priority)
│ ├── defaults/
│ │ └── main.yml # role defaults (lowest priority)
│ └── meta/
│ └── main.yml # role metadata and dependencies
└── docs/
├── setup.md # environment prerequisites and installation
├── procedures.md # step-by-step guide to run the PoC
└── verification.md # how to validate expected outcomes
Keep roles focused on a single concern. Use separate playbooks per logical operation rather
than one monolithic site.yml when the PoC has multiple distinct phases.
Minimal config scoped to this repo — do not rely on system-wide defaults:
[defaults]
inventory = inventory/hosts.yml
roles_path = roles
collections_paths = ~/.ansible/collections
host_key_checking = False
stdout_callback = yaml
Declare all collection dependencies — never assume collections are pre-installed:
---
collections:
- name: ansible.builtin
- name: redhat.rhel_system_roles
source: https://cloud.redhat.com/api/automation-hub/
# add further collections here
roles: []
Install with:
ansible-galaxy collection install -r requirements.yml
# Prefer Automation Hub for customer PoCs (certified content):
ansible-galaxy collection install -r requirements.yml \
--server https://cloud.redhat.com/api/automation-hub/
Reference: Automation Hub
Use YAML format. Group variables in inventory/group_vars/, host variables in
inventory/host_vars/. Never put secrets in inventory files — use ansible-vault.
deploy.yml, configure.yml, verify.yml).site.yml imports the other playbooks in order and serves as the single entry point.collections: explicitly in each play — never rely on implicit FQCN resolution.ansible.builtin.template, not just template.# Description: header comment.# Description: <what this playbook achieves>
---
- name: <Descriptive play name>
hosts: all
become: true
gather_facts: true
collections:
- ansible.builtin
- redhat.rhel_system_roles # replace with actual collections
tasks:
- name: <What the task achieves, not what it does>
ansible.builtin.<module>:
# parameters
tags: [configure]
notify: Restart <service>
handlers:
- name: Restart <service>
ansible.builtin.service:
name: <service>
state: restarted
Create a role when logic is reused across playbooks or the task list exceeds ~20 tasks.
Initialize with ansible-galaxy role init roles/<role-name>.
tasks/main.yml — task entry point; import sub-task files for clarity.defaults/main.yml — user-overridable defaults; document every variable.vars/main.yml — role-internal constants not intended to be overridden.meta/main.yml — set galaxy_info and list role dependencies.ansible-vault encrypted vars.Reference: Roles — Ansible Docs
All human-readable step-by-step instructions live in docs/, keeping automation code and
prose separate.
ansible-galaxy collection install -r requirements.ymlansible-vault setup needed for secretsansible-playbook invocations with relevant flags (-i, --tags, --vault-id)playbooks/verify.yml and what a passing run looks likeansible.builtin.template, not template.setup, configure, verify) for selective execution.ansible.builtin.command: systemctl restart.ansible-vault; document vault usage in docs/setup.md.defaults/, role constants in vars/.Reference: Red Hat Ansible Best Practices
Use only Red Hat Certified or Red Hat Validated Collections.
| Use Case | Collection | Documentation |
|---|---|---|
| Core modules | ansible.builtin | ansible/builtin |
| POSIX / files / users | ansible.posix | ansible/posix |
| RHEL System Roles | redhat.rhel_system_roles | RHEL System Roles |
| AAP Controller API | ansible.controller | Controller Collection |
| AAP Hub | ansible.hub | Private Automation Hub |
| Red Hat Satellite | redhat.satellite | Satellite Ansible Modules |
| Red Hat Insights | redhat.insights | Insights Collection |
| OpenShift / Kubernetes | redhat.openshift / kubernetes.core | OpenShift Collection |
| Networking (validated) | network.base | Network Validated Content |
| IdM / FreeIPA | redhat.rhel_idm | IdM System Roles |
Must include:
ansible-galaxy collection install -r requirements.yml then the first ansible-playbook commandCite documentation inline in every docs/ file. Preferred sources (in order):
Do not link to unofficial blogs, third-party tutorials, or community forum posts.
Before finishing:
ansible.cfg is present and scoped to this reporequirements.yml lists every collection used, with Automation Hub as sourcecollections: explicitlyansible-vaulthttps://docs.redhat.com, https://docs.ansible.com, or https://console.redhat.comdocs/setup.md can be followed from scratch with zero prior contextplaybooks/verify.yml exists and validates the expected end statenpx claudepluginhub juanlu-sanz/rh-saa-skills --plugin ansible-pocGenerates or scaffolds Ansible playbooks, roles, tasks, handlers, inventory, and vars from requests. Handles full projects, snippets, or docs with templates and best practices.
Ansible automation conventions, patterns, and toolchain: playbook design, roles, inventory, vault, collections, execution environments, Event-Driven Ansible, testing, and performance tuning. Invoke whenever task involves any interaction with Ansible — writing playbooks, creating roles, managing inventory, reviewing automation code, debugging runs, upgrading ansible-core, or working with AAP.
Provides Ansible playbook and role structures plus best practices for idempotent tasks, handlers, FQCN, and inventory management. Use when writing playbooks, roles, or automating infrastructure.