Ansible Skill
ansible
Ansible automation and configuration management patterns. Use when writing Ansible playbooks, roles, or automating infrastructure configuration and deployment tasks.
SKILL.md
Full skill instructions
Ansible Skill
This skill provides Ansible automation patterns and best practices.
Playbook Structure
---
- name: Configure web servers
hosts: webservers
become: true
vars:
http_port: 80
tasks:
- name: Install nginx
ansible.builtin.apt:
name: nginx
state: present
notify: Restart nginx
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted
Role Structure
roles/
└── webserver/
├── defaults/main.yml # Default variables
├── handlers/main.yml # Handler definitions
├── tasks/main.yml # Task list
├── templates/ # Jinja2 templates
├── files/ # Static files
└── vars/main.yml # Role variables
Best Practices
Use Fully Qualified Collection Names
# ✅ Good
- ansible.builtin.apt:
name: nginx
# ❌ Bad (ambiguous)
- apt:
name: nginx
Idempotent Tasks
# Tasks should be safe to run multiple times
- name: Ensure config exists
ansible.builtin.template:
src: config.j2
dest: /etc/app/config.yml
# Only changes if content differs
Use Handlers for Service Restarts
tasks:
- name: Update config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Restart nginx
handlers:
- name: Restart nginx
service:
name: nginx
state: restarted
Inventory Best Practices
[webservers]
web1.example.com
web2.example.com
[dbservers]
db1.example.com
[production:children]
webservers
dbservers
