Skip to content

Automation Task: Writing Reusable Ansible Roles

Description

Creating standardized and modular Ansible roles for configuration management.

Role Structure

my-role/
├── tasks/
│   └── main.yml
├── handlers/
│   └── main.yml
├── templates/
│   └── config.j2
├── vars/
│   └── main.yml
└── meta/
    └── main.yml

Best Practices

  • Use variables for dynamic configuration
  • Separate logic into tasks/, handlers/, defaults/
  • Document variables in README.md

Example Usage

- hosts: servers
  roles:
    - role: my-role
      vars:
        config_port: 8080

Tools & Commands

  • ansible-galaxy init, ansible-lint, ansible-playbook