SuperAPI AI Directory

ansible-playbooks

General & other

View repository

Updated 10-16 01:13

About this skill

Ansible Playbooks

Writing and organizing Ansible playbooks for configuration management.

Basic Playbook

---
- 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

- name: Install packages
  apt:
    name:
      - nginx
      - git
      - python3
    state: present

File Operations

- name: Copy configuration
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
    backup: yes
  notify: Restart nginx

Handlers

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

- name: Ensure directory exists
  file:
    path: /opt/app
    state: directory
    mode: '0755'