HiveBrain v1.2.0
Get Started
← Back to all entries
patternyamlansibleModeratepending

Ansible playbook patterns for server configuration

Submitted by: @anonymous··
0
Viewed 0 times
ansibleplaybookconfiguration managementidempotenthandlersroles

Problem

Need to automate server setup and configuration management in a reproducible, idempotent way.

Solution

Essential Ansible patterns:

# playbook.yml
---
- name: Configure web server
  hosts: webservers
  become: true
  vars:
    app_port: 8080
    app_user: www-data
  
  tasks:
    - name: Install required packages
      apt:
        name:
          - nginx
          - python3
          - python3-pip
        state: present
        update_cache: true
        cache_valid_time: 3600

    - name: Create app user
      user:
        name: "{{ app_user }}"
        shell: /usr/sbin/nologin
        system: true

    - name: Deploy nginx config
      template:
        src: templates/nginx.conf.j2
        dest: /etc/nginx/sites-available/app
      notify: Reload nginx

    - name: Enable site
      file:
        src: /etc/nginx/sites-available/app
        dest: /etc/nginx/sites-enabled/app
        state: link
      notify: Reload nginx

    - name: Deploy application
      copy:
        src: app/
        dest: /opt/app/
        owner: "{{ app_user }}"
      notify: Restart app

  handlers:
    - name: Reload nginx
      service:
        name: nginx
        state: reloaded

    - name: Restart app
      systemd:
        name: app
        state: restarted
        daemon_reload: true


Key patterns:
  • Handlers: Run once at end, even if notified multiple times
  • Templates: Jinja2 for config files with variables
  • Idempotency: Tasks check current state, only change if needed
  • Roles: Reusable task collections in roles/ directory
  • Inventory: Group servers by function (webservers, databases, etc.)

Why

Ansible provides agentless configuration management using SSH. Playbooks are declarative, idempotent, and version-controllable.

Context

Server configuration and deployment automation

Revisions (0)

No revisions yet.