Execute use when you need to work with Ansible automation.
ReadWriteEditGrepGlobBash(ansible:*)Bash(terraform:*)
Creating Ansible Playbooks
Overview
Generate production-ready Ansible playbooks, roles, and inventories for infrastructure automation. Supports provisioning servers, deploying applications, configuring services, and enforcing desired state across fleets of machines using SSH-based agentless automation.
Prerequisites
- Ansible 2.14+ installed (
ansible --version)
- SSH access to target hosts with key-based authentication
- Python 3.9+ on control node and managed nodes
- Inventory of target hosts (IPs or hostnames)
- Privilege escalation credentials (sudo) if configuring system-level resources
ansible-lint installed for playbook validation
Instructions
- Scan the project for existing Ansible files (
ansible.cfg, inventory/, roles/, group_vars/) to understand current structure
- Determine the automation target: server provisioning, application deployment, configuration management, or security hardening
- Create the playbook YAML with proper structure:
hosts, become, vars, tasks, handlers
- Extract reusable logic into roles using the standard directory layout (
tasks/, handlers/, templates/, defaults/, vars/, meta/)
- Define variables in
groupvars/ and hostvars/ for environment-specific values, keeping secrets in vault-encrypted files
- Use Jinja2 templates for configuration files that vary across environments
- Add handlers for service restarts triggered by configuration changes
- Validate the playbook with
ansible-lint and ansible-playbook --check --diff (dry run)
- Test idempotency by running the playbook twice and confirming no changes on the second run
Output
- Ansible playbooks (
.yml) with structured tasks, handlers, and variables
- Role directories following Ansible Galaxy structure
- Jinja2 templates (
.j2) for dynamic configuration files
- Inventory files (INI or YAML) with host groups
groupvars/ and hostvars/ for environment separation
ansible.cfg with connection and privilege escalation settings
Error Handling
| Error |
Cause |
Solution |
unreachable: Failed to connect to host |
SSH connection failure or wrong host/port |
Verify SSH keys, host IPs, and that port 22 is open with ansible -m ping |
permission denied on become |
Missing or incorrect sudo password |
Add --ask-become-pass<
Ready to use ansible-playbook-creator?
|