← Back to Skills Marketplace
1929
Downloads
3
Stars
15
Active Installs
1
Versions
Install in OpenClaw
/install ansible
Description
Avoid common Ansible mistakes — YAML syntax traps, variable precedence, idempotence failures, and handler gotchas.
README (SKILL.md)
YAML Syntax Traps
- Jinja2 in value needs quotes —
"{{ variable }}"not{{ variable }} :in string needs quotes —msg: "Note: this works"notmsg: Note: this- Boolean strings:
yes,no,true,falseparsed as bool — quote if literal string - Indentation must be consistent — 2 spaces standard, tabs forbidden
Variable Precedence
- Extra vars (
-e) override everything — highest precedence - Host vars beat group vars — more specific wins
vars:in playbook beats inventory vars — order: inventory \x3C playbook \x3C extra vars- Undefined variable fails — use
{{ var | default('fallback') }}
Idempotence
command/shellmodules aren't idempotent — always "changed", usecreates:or specific module- Use
apt,yum,copyetc. — designed for idempotence changed_when: falsefor commands that don't change state — like queriescreates:/removes:for command idempotence — skips if file exists/doesn't
Handlers
- Handlers only run if task reports changed — not on "ok"
- Handlers run once at end of play — not immediately after notify
- Multiple notifies to same handler = one run — deduplicated
--force-handlersto run even on failure — ormeta: flush_handlers
Become (Privilege Escalation)
become: yesto run as root —become_user:for specific userbecome_method: sudois default — usesuordoasif needed- Password needed for sudo —
--ask-become-passor in ansible.cfg - Some modules need become at task level — even if playbook has
become: yes
Conditionals
when:without Jinja2 braces —when: ansible_os_family == "Debian"notwhen: "{{ ... }}"- Multiple conditions use
and/or— or list for implicitand is defined,is not definedfor optional vars —when: my_var is defined- Boolean variables:
when: my_bool— don't compare== true
Loops
loop:is modern,with_items:is legacy — both work, loop preferredloop_control.loop_varfor nested loops — avoids variable collisionitemis the loop variable — useloop_control.labelfor cleaner outputuntil:for retry loops —until: result.rc == 0 retries: 5 delay: 10
Facts
gather_facts: nospeeds up play — but can't useansible_*variables- Facts cached with
fact_caching— persists across runs - Custom facts in
/etc/ansible/facts.d/*.fact— JSON or INI, available asansible_local
Common Mistakes
register:captures output even on failure — checkresult.rcorresult.failedignore_errors: yescontinues but doesn't change result — task still "failed" in registerdelegate_to: localhostfor local commands — butlocal_actionis cleaner- Vault password for encrypted files —
--ask-vault-passor vault password file --check(dry run) not supported by all modules —command,shellalways skip
Usage Guidance
This skill appears to be a safe, read-only Ansible best-practices reference. Before installing, confirm you actually want an agent-accessible reference (the agent could invoke it when answering Ansible questions). Ensure the system where the agent runs has a trusted 'ansible' binary if the skill will trigger command execution later; if you do not want the agent to run commands on your machine, keep model/tool invocation restrictions in place. If future versions add an install step, code, or requests for credentials (vault passwords, cloud keys, etc.), reassess — that would change this assessment.
Capability Analysis
Type: OpenClaw Skill
Name: ansible
Version: 1.0.0
The skill bundle is benign. The `_meta.json` file contains standard metadata. The `SKILL.md` file is purely informational, providing best practices and common pitfalls for using Ansible. It does not contain any executable commands, prompt injection attempts against the agent, or instructions for data exfiltration, malicious execution, or persistence. The content is descriptive and educational, aligning with a benign purpose.
Capability Assessment
Purpose & Capability
Name/description promise (Ansible pitfalls and best practices) matches the content and requirements: the only declared runtime dependency is the 'ansible' binary, which is appropriate for this topic.
Instruction Scope
SKILL.md is a static list of guidance and examples (YAML/Ansible tips). It does not instruct the agent to read files, access environment variables, call external endpoints, or execute commands — no scope creep detected.
Install Mechanism
No install spec and no code files are present. Being instruction-only means nothing is written to disk or fetched at install time — lowest-risk installation profile.
Credentials
No environment variables, credentials, or config paths are requested. The lack of secrets or unrelated env requirements is proportionate to the stated purpose.
Persistence & Privilege
always:false (default) and normal model invocation allowed. The skill does not request persistent presence or elevated privileges beyond being user-invocable — appropriate for a reference/guide skill.
How to Use
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ansible - After installation, invoke the skill by name or use
/ansible - Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release
Metadata
Frequently Asked Questions
What is Ansible?
Avoid common Ansible mistakes — YAML syntax traps, variable precedence, idempotence failures, and handler gotchas. It is an AI Agent Skill for Claude Code / OpenClaw, with 1929 downloads so far.
How do I install Ansible?
Run "/install ansible" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Ansible free?
Yes, Ansible is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Ansible support?
Ansible is cross-platform and runs anywhere OpenClaw / Claude Code is available (linux, darwin).
Who created Ansible?
It is built and maintained by Iván (@ivangdavila); the current version is v1.0.0.
More Skills