SSH into server. Run apt update. Install nginx. Copy config. Restart service. Repeat for 10 servers. Miss one step on server #7. Debug for an hour.
Ansible automates all of it. Write a YAML playbook once, run it against 100 servers. Idempotent — run it twice, nothing breaks. No agent to install on servers.
What You Get Free
GPL licensed:
- Agentless — uses SSH, nothing to install on targets
- YAML playbooks — human-readable automation
- Idempotent — safe to run repeatedly
- 2,000+ modules — files, packages, services, Docker, cloud providers
- Roles — reusable automation components
- Ansible Galaxy — community roles marketplace
- Inventory — static or dynamic (AWS, GCP, Azure, Docker)
- Vault — encrypt secrets in playbooks
- Templates — Jinja2 templating for configs
- Collections — bundled modules, plugins, roles
Quick Start
pip install ansible
# inventory.ini
# [webservers]
# 192.168.1.10
# 192.168.1.11
# playbook.yml
cat > playbook.yml << 'EOF'
- hosts: webservers
become: yes
tasks:
- name: Install nginx
apt:
name: nginx
state: present
- name: Copy config
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Restart nginx
- name: Ensure nginx running
service:
name: nginx
state: started
enabled: yes
handlers:
- name: Restart nginx
service:
name: nginx
state: restarted
EOF
ansible-playbook -i inventory.ini playbook.yml
What You Can Build
1. Server provisioning — install packages, configure users, set up firewall on new servers.
2. App deployment — pull code, build, restart services across multiple servers.
3. Security hardening — enforce SSH config, disable root, set up fail2ban.
4. Docker management — deploy docker-compose stacks to multiple hosts.
5. Cloud provisioning — create AWS/Hetzner/DO servers and configure them in one playbook.
Need server automation? Email spinov001@gmail.com
More free tiers: 76+ Free APIs Every Developer Should Bookmark
Top comments (0)