agentleFS
ryanmacleanryanmaclean/skills/ansible-fleet/SKILL.md

ansible-fleet

Skill1 starsChanged 50 days agoMITView on GitHub

Deploy and manage software on Linux/BSD fleet hosts (Pis, NAS, workstations) via Ansible. Use when user mentions deploy, ansible, fleet, hosts, inventory, or deployment.

  • Pipes a download into a shell

The file

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 8 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill for deploying and managing software on fleet of Linux hosts (Raspberry Pis, NAS, workstations) via Ansible.

    line 13
  2. Distinctive:

    Bash: - Run ansible-playbook, ansible commands

    line 16
  3. Distinctive:

    Write/Edit: - Create/update playbooks

    line 20
  4. Distinctive:

    Before any changes, run Ansible facts to understand current state:

    line 26
  5. Distinctive:

    Never try to do everything in one playbook.

    line 35
  6. Very specific:

    Use ollama-linux-arm64.tgz for Pis, ollama-linux-amd64.tgz for x86_64

    line 42
  7. Very specific:

    Fix: Use official irclaw installer which handles Node.js automatically

    line 98
  8. Very specific:

    Fix: Run ollama pull directly without become_user

    line 102
  9. Distinctive:

    Fix: Use staged download approach, or increase Ansible timeout

    line 106
  10. Distinctive:

    Audit first: Check what's already installed

    line 126
  11. Very specific:

    Run playbooks: Use --limit to test, then full fleet

    line 128
  12. Distinctive:

    Verify: Check installation worked

    line 129

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Ansible Fleet Deployment Skill

Overview

Use this skill for deploying and managing software on fleet of Linux hosts (Raspberry Pis, NAS, workstations) via Ansible.

Tools Required

  • Bash - Run ansible-playbook, ansible commands
  • SSH - Connect to remote hosts
  • Glob/Grep - Find playbook files, inventory
  • Read - Examine existing playbooks, inventory
  • Write/Edit - Create/update playbooks
  • WebFetch - Research Ansible Galaxy roles, documentation

Key Principles

1. ALWAYS Audit First

Before any changes, run Ansible facts to understand current state:

ansible <hosts> -i inventory -m setup
ansible <hosts> -i inventory -m package_facts
ansible <hosts> -i inventory -m service_facts
ansible <hosts> -i inventory -m shell -a "which <software>"

2. Use Separate Playbooks Per Component

Never try to do everything in one playbook. Create separate playbooks:

  • 01-datadog.yml - Datadog Agent
  • 02-ollama.yml - Ollama LLM
  • 03-irclaw.yml - irclaw gateway

3. Handle Architecture Correctly

  • Raspberry Pis are ARM64 (aarch64), not AMD64
  • Use ollama-linux-arm64.tgz for Pis, ollama-linux-amd64.tgz for x86_64
  • Detect with: ansible -m setup -a "filter=ansible_architecture"

4. Stage Large Downloads

For large files (1GB+), download once to controller, then distribute:

# Download to controller
curl -fsSL <url> -o /tmp/file.tgz

# Distribute to hosts via Ansible copy
ansible <hosts> -i inventory -b -m copy -a "src=/tmp/file.tgz dest=/tmp/file.tgz"

5. Use Official Installers

irclaw installer handles Node.js automatically:

curl -fsSL https://irclaw.ai/install.sh | bash -s -- --no-onboard

6. Use Ansible Galaxy Roles Where Available

  • datadog.dd.agent - Datadog Agent collection
  • juju4.ollama - Ollama role (but fix ARM64 URL manually)
  • nodesource.node - Node.js (supports 18.x, 20.x, 22.x, 23.x)
  • irclaw.installer.irclaw - irclaw collection

Common Playbook Patterns

Deploy to Multiple Hosts (Parallel)

ansible-playbook -i inventory <playbook.yml>

Deploy to Specific Hosts

ansible-playbook -i inventory <playbook.yml> --limit "host1,host2,host3"

Check What's Installed

ansible <hosts> -i inventory -m command -a "which <software>"
ansible <hosts> -i inventory -m package_facts

Service Management

ansible <hosts> -i inventory -b -m systemd -a "name=<service> state=started enabled=yes"

Known Issues & Fixes

Ollama Wrong Architecture

  • Problem: juju4.ollama role downloads AMD64 by default
  • Fix: Override URL: ollama_url: "https://github.com/ollama/ollama/releases/download/v0.13.1/ollama-linux-arm64.tgz"

Node.js 24 Not Supported by Ansible Roles

  • Problem: nodesource.node role only supports up to 23.x
  • Fix: Use official irclaw installer which handles Node.js automatically

Model Download Fails with become_user

  • Problem: Permission errors when downloading Ollama models as _ollama user
  • Fix: Run ollama pull directly without become_user

Long Timeouts

  • Problem: Downloading large files times out
  • Fix: Use staged download approach, or increase Ansible timeout

Reference Files

~/ansible/
├── inventory              # Fleet inventory
├── 01-datadog.yml         # Datadog deployment
├── 02-ollama.yml          # Ollama deployment  
├── 03-irclaw.yml          # irclaw deployment
└── requirements.yml       # Ansible Galaxy requirements

Inventory Groups

  • [pis] - BSD Raspberry Pis (ARM64)
  • [nas] - NAS devices
  • [all:vars] - Global variables

Usage

  1. Audit first: Check what's already installed
  2. Create/fix playbooks: Based on audit results
  3. Run playbooks: Use --limit to test, then full fleet
  4. Verify: Check installation worked

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.