Skip to main content

ansible-fleet

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.

ソース情報

リポジトリ
ryanmaclean/skills
ソースの最終更新活動
2026年4月15日 07:53
検出された SKILL.md の言語
英語
スター
1
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
ansible-fleet
description
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.
compatibility
opencode
metadata
{"tools_needed":"sh, ash, SSH, Glob, Grep, Read, Write, WebFetch","triggers":"ansible, fleet, deploy, inventory, playbook"}
# 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: ```bash 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: ```bash # 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: ```bash 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) ```bash ansible-playbook -i inventory <playbook.yml> ``` ### Deploy to Specific Hosts ```bash ansible-playbook -i inventory <playbook.yml> --limit "host1,host2,host3" ``` ### Check What's Installed ```bash ansible <hosts> -i inventory -m command -a "which <software>" ansible <hosts> -i inventory -m package_facts ``` ### Service Management ```bash 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
GitHubで見る