Synthèse automatique
Rédige et relit des playbooks, rôles et tâches Ansible en appliquant les bonnes pratiques (FQCN, idempotence, handlers, gestion des secrets).
Points forts
- Impose des conventions concrètes et vérifiables : FQCN, nommage de chaque tâche, become explicite
- Couvre les patterns courants (template avec validate, handlers pour redémarrer un service, installation de paquets)
- Inclut une liste de contrôles de sécurité : coffre-fort ansible-vault, no_log, permissions de fichiers explicites
Limites
- Ne s'appuie que sur les modules génériques cités (apt, service, template) ; pas de gestion spécifique à d'autres distributions ou collections tierces
- Se concentre sur l'écriture et la revue statique, sans exécution réelle ni vérification en mode --check
- Pas de stratégie de tests automatisés (molecule, lint) au-delà de la compatibilité check mode mentionnée
Quand il faut créer ou auditer un playbook Ansible pour configurer des serveurs de façon idempotente et sécurisée.
Pour du provisionnement déclaratif de ressources cloud ou de l'orchestration Terraform/Kubernetes, hors du périmètre Ansible.
Analyse de sécurité
PrudenceThe content is a conventional Ansible style guide: it teaches FQCN usage, idempotency, handlers, vault for secrets, and explicitly forbids hardcoded secrets and unnecessary shell tasks. There is nothing destructive, obfuscated, or exfiltrating (no curl|sh, rm -rf, or secret transmission). The only reason it is not 'safe' is the broad allowed-tools set (Bash/Write/Edit), which is powerful but entirely appropriate for writing and validating playbooks.
- •Declares Bash and Write/Edit access, which lets the agent execute commands and modify files on the host
- •No explicit guardrails limiting Bash usage to check-mode/lint/read-only Ansible invocations
Exemples
Write an Ansible playbook that installs nginx and certbot on our webservers, deploys a config template, and restarts nginx only when the config changes.Review roles/app/tasks/main.yml and flag anything that breaks our Ansible best practices — missing FQCNs, hardcoded secrets, non-idempotent shell commands.Refactor this playbook so the database password comes from an ansible-vault file and the task that writes it uses no_log.name: ansible-playbook description: Write and review Ansible playbooks following best practices. Use when the user says "write ansible", "ansible playbook", "review playbook", "automate with ansible", or asks to configure servers with Ansible. allowed-tools: Read, Write, Edit, Glob, Grep, Bash
Ansible Playbook
Write and review Ansible playbooks, roles, and tasks following best practices.
Instructions
When writing:
- Understand the target configuration goal
- Check existing playbooks/roles for patterns to follow
- Write idempotent tasks with proper error handling
- Include appropriate tags and handlers
When reviewing:
- Read the playbook/role
- Check for issues listed below
- Suggest improvements
Playbook structure
---
- name: Configure web servers
hosts: webservers
become: true
vars_files:
- vars/main.yml
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
tasks:
- name: Install nginx
ansible.builtin.apt:
name: nginx
state: present
update_cache: true
notify: Restart nginx
tags: [nginx, packages]
Best practices
- MUST use FQCNs:
ansible.builtin.copynotcopy - MUST use
name:for every task - MUST use
become:explicitly, not assuming root - Use handlers for service restarts
- Use
block/rescue/alwaysfor error handling - Use
ansible-vaultfor secrets - Use variables for anything environment-specific
- Use
--checkmode compatible tasks where possible
Security checks
- No plaintext passwords in playbooks
- Secrets in vault-encrypted files
no_log: trueon tasks with sensitive data- File permissions explicitly set
- SSH keys not hardcoded
Common patterns
# Idempotent file content
- name: Configure app
ansible.builtin.template:
src: app.conf.j2
dest: /etc/app/config
mode: "0644"
owner: app
group: app
validate: "/usr/bin/app --check %s"
notify: Restart app
# Package installation
- name: Install packages
ansible.builtin.apt:
name: "{{ packages }}"
state: present
vars:
packages:
- nginx
- certbot
Rules
- MUST use fully qualified collection names (FQCNs)
- MUST include task names
- Never hardcode secrets in playbooks
- Never use
shell:when a module exists - Always make tasks idempotent
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ansible-playbook-writing-and-review-mm78nocd/download' --output '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md.part' && mv '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md.part' '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Read, Write, Edit, Glob, Grep, Bash
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md' && test -s '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ansible-playbook' && cp -R '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd' '.claude/skills/ansible-playbook'Cursor
test -f '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md' && test -s '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/ansible-playbook' && cp -R '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd' '.cursor/skills/ansible-playbook'Codex
test -f '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md' && test -s '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/ansible-playbook' && cp -R '.skill-downloads/ansible-playbook-writing-and-review-mm78nocd' '.agents/skills/ansible-playbook'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/ansible-playbook-writing-and-review-mm78nocd'openskills read 'ansible-playbook-writing-and-review-mm78nocd'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/ansible-playbook-writing-and-review-mm78nocd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Configurer un canal de discussion avec SecretRefs
DevOps
Configurez des canaux de discussion avec des commandes non interactives, les secrets étant uniquement des SecretRefs. Couvre les étapes de collecte, modification, réparation et vérification.
Enquêter sur les échecs CI de ClickHouse
DevOps
Investigue un échec CI de ClickHouse de bout en bout à partir d'une URL de PR ou de rapport S3. Récupère les tests échoués, classe flaky vs vraie régression, et cherche des issues/fixes existants.
Revue de PR Ansible
DevOps
Examine une PR Ansible selon le processus standardisé du projet, incluant la validation des changelogs, la couverture de tests et le suivi des commentaires.