I write clean, idempotent Ansible playbooks and roles to automate server provisioning — so you can configure any server in minutes, identically, every time, regardless of whether it's brand new or partially configured.
Role structure follows Ansible best practices: tasks, handlers, defaults, vars, templates, and meta. I use Ansible Vault for secret management, configure dynamic inventory for AWS EC2, GCP, Azure, or DigitalOcean, and write handlers that restart services only when needed.
Common stacks I've automated: Nginx, Apache, PostgreSQL, MySQL, Redis, RabbitMQ, Node.js (PM2), Python/uWSGI/Gunicorn, PHP-FPM, Java/Tomcat. I also handle user account management, cron jobs, log rotation, firewall rules, and SSL certificate installation.
From Standard engagements up I include Molecule + Docker test suites so playbooks are verified before they hit any real server. I can also integrate playbooks into your CI pipeline and configure Ansible Tower/AWX job templates for scheduled runs.