ansible-playbooks
$
npx mdskill add TheBushidoCollective/han/ansible-playbooksOrganizes and writes Ansible playbooks for automated configuration management and infrastructure orchestration.
- Helps automate server setup and application deployment through structured playbooks.
- Integrates with Ansible for managing packages, files, and services on remote hosts.
- Recommends best practices like using roles and handlers based on common patterns.
- Presents results as YAML code examples and configuration templates for clarity.
SKILL.md
.github/skills/ansible-playbooksView on GitHub ↗
---
name: ansible-playbooks
user-invocable: false
description: Use when writing and organizing Ansible playbooks for automated configuration management and infrastructure orchestration.
allowed-tools: []
---
# Ansible Playbooks
Writing and organizing Ansible playbooks for configuration management.
## Basic Playbook
```yaml
---
- name: Configure web servers
hosts: webservers
become: yes
vars:
http_port: 80
app_version: "1.0.0"
tasks:
- name: Install nginx
apt:
name: nginx
state: present
update_cache: yes
- name: Start nginx
service:
name: nginx
state: started
enabled: yes
- name: Deploy application
copy:
src: ./app
dest: /var/www/html
owner: www-data
mode: '0755'
```
## Inventory
```ini
[webservers]
web1.example.com
web2.example.com
[databases]
db1.example.com
[production:children]
webservers
databases
```
## Common Modules
### Package Management
```yaml
- name: Install packages
apt:
name:
- nginx
- git
- python3
state: present
```
### File Operations
```yaml
- name: Copy configuration
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
backup: yes
notify: Restart nginx
```
### Handlers
```yaml
handlers:
- name: Restart nginx
service:
name: nginx
state: restarted
```
## Best Practices
### Use Roles
```
roles/
├── webserver/
│ ├── tasks/
│ │ └── main.yml
│ ├── handlers/
│ │ └── main.yml
│ └── templates/
│ └── nginx.conf.j2
```
### Idempotency
```yaml
- name: Ensure directory exists
file:
path: /opt/app
state: directory
mode: '0755'
```