SadServers
  • Scenarios
  • Labs
    All Labs Linux & Bash Web Servers Databases Data Processing Docker Kubernetes CI/CD Infrastructure as Code Tooling / Applications
  • Dashboard
  • Solutions
    For Individuals For Businesses
  • Ranking
  • Newsletter
  • Documentation
    FAQ Support Pro Accounts Pro+ Accounts Business Accounts Gift API CLI/TUI Privacy Troubleshooting Interviews
  • Blog
  • Pricing
  • Gift
    Gift Purchase Gift Redeem
  • About
Log In - Sign Up
  1. Labs
  2. Ansible
  3. Cheatsheet

Guide

Concepts and learning path

Troubleshooting

Failure modes and fixes

Cheatsheet

Commands to keep handy

Ansible cheatsheet

Ad-hoc commands

CommandDescription
ansible web -m pingTest SSH connectivity
ansible all -m setupGather facts
ansible web -a "uptime"Run shell command
ansible web -b -m apt -a "name=htop state=present"Install package as root
ansible-inventory --listShow resolved inventory
ansible-playbook site.yml --start-at-task "Install nginx"Resume playbook from named task
ansible-playbook site.yml --start-at-task "Deploy app" -l web01Resume from task on one host

Playbooks

ansible-playbook site.yml ansible-playbook site.yml --check # dry run ansible-playbook site.yml --diff # show file diffs ansible-playbook site.yml -l web01 # limit to host ansible-playbook site.yml -e "env=prod" # extra var ansible-playbook site.yml --tags deploy ansible-playbook site.yml --skip-tags test

Inventory snippet (INI)

[web] web01 ansible_host=10.0.1.10 ansible_user=ubuntu web02 ansible_host=10.0.1.11 [web:vars] ansible_ssh_private_key_file=~/.ssh/deploy.pem

Common modules

ModulePurpose
ansible.builtin.copyCopy static file
ansible.builtin.templateRender Jinja template
ansible.builtin.filePermissions, symlinks, directories
ansible.builtin.servicesystemd/service state
ansible.builtin.aptyumPackage install
ansible.builtin.commandshellRun commands (prefer specialized modules)
ansible.builtin.userLocal user accounts

Handler pattern

tasks: - name: Deploy nginx config ansible.builtin.template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf notify: Reload nginx handlers: - name: Reload nginx ansible.builtin.service: name: nginx state: reloaded

Role layout

roles/myapp/ tasks/main.yml handlers/main.yml templates/ files/ defaults/main.yml vars/main.yml

Galaxy and collections

ansible-galaxy role install geerlingguy.nginx ansible-galaxy collection install -r requirements.yml ansible-galaxy role list

Debug and verbosity

ansible-playbook site.yml -vvv ansible-playbook site.yml --step # confirm each task ansible-playbook site.yml --start-at-task "Install nginx"

Pro tips

  • ansible -m ping all before long playbooks — fix SSH first
  • Use --check --diff to preview changes safely
  • Prefer dedicated modules over command for idempotency
  • Pin Galaxy roles/collections in requirements.yml
  • serial: or rolling strategy for zero-downtime deploys
SadServersSadServers

Real-world Linux and DevOps scenarios for hands-on learning and technical assessment.

Uptime Robot ratio (30 days)
Product
  • Scenarios
  • For Individuals
  • For Businesses
  • Pricing
Resources
  • FAQ
  • Blog
  • Newsletter
Company
  • About Us
  • Support
  • Privacy Policy
  • Terms of Service
  • Contact
Connect With Us
info@sadservers.com

Made in Canada 🇨🇦
Updated: 2026-06-13 16:06 UTC – 2d2950a