Welcome to the Ansible Cheatsheet which contains a list of the most common commands and scripts that you can use to get started quickly with Ansible, Ansible Playbooks and Ansible Roles.
Note: if you are new to Ansible we recommend checking this article: Ansible Playbook Example for beginners
Ansible CheatSheet
Install & SSH set up
sudo dnf install ansible ssh-keygen ssh-copy-id USER_NAME@HOST_NAME
Ansible Inventory File
# Localhost [localhost] 127.0.0.1 # Matches from server01 to server20 server[01:20].example.com # Group named 'webservers' with two servers [webservers] webserver1.example.com webserver2.example.com # Nested group 'backend' under the 'webservers' group [webservers:backend] dbserver.example.com
Execute command
ansible <host-pattern> -m shell -a "<command>"
Browse Inventory
ansible-navigator inventory
Sample ansible.cfg
[defaults] inventory = ./inventory remote_user = someuser ask_pass = false [privilege_escalation] become = true become_method = sudo become_user = root become_ask_pass = false
Run Playbook
ansible-navigator run -m stdout ping-all.yml
Playbook Dry run
ansible-navigator run -m stdout webserver.yml --check
Pass variables to a Playbook
ansible-navigator run main.yml -e "package=jboss"
Encrypt file
ansible-vault create secret.yml
View Encrypted file
ansible-vault view secret1.yml
Check Service Started
ansible <host-pattern> -m service -a "name=<service_name> state=started"
Playbook Structure
--- - name: Playbook Name hosts: <host-pattern> become: <true/false> tasks: - name: Task Name <module>: <arguments>
PlayBook Variables
--- - name: Playbook with Variable hosts: localhost vars: my_variable: "Hello, world!" tasks: - name: Print Playbook Variable debug: msg: "{{ my_variable }}"
Capture output
--- - name: Capture output hosts: all tasks: - name: Install the package ansible.builtin.dnf: name: httpd state: installed register: install_result - debug: var: install_result
Conditional execution
--- - name: Conditional Execution hosts: all tasks: - name: Ensure a directory exists file: path: /path/to/directory state: directory when: ansible_os_family == "RedHat"
Loop execution
--- - name: Playbook with Loop hosts: all vars: packages_to_install: - vim - git - curl tasks: - name: Install required packages yum: name: "{{ item }}" state: present loop: "{{ packages_to_install }}"
Handler
--- - name: Playbook with Handler hosts: all tasks: - name: Ensure a file exists file: path: /path/to/file state: touch notify: restart service handlers: - name: restart service service: name: myservice state: restarted
Init a Role
ansible-galaxy init my_new_role
Use Role
--- - name: Playbook with Role hosts: all roles: - webserver
Role from Requirements
ansible-galaxy role install -r roles/requirements.yml -p roles
List Roles
ansible-galaxy list
Search Roles
ansible-galaxy search 'wildfly'
Info Role
ansible-galaxy-info 'role'
Jinja2 Template
--- - name: Playbook with Jinja2 Template hosts: all tasks: - name: Render Jinja2 Template template: src: path/to/my_template.j2 dest: /path/to/output/file vars: variable_name: value
Loop
{% for item in my_list %} Item: {{ item }} {% endfor %}
Conditionals
{% if ansible_os_family == 'RedHat' %} RedHat specific tasks {% endif %}
Use Facts
Ansible OS: {{ ansible_facts.os_family }}
Variables
My variable value: {{ my_variable }}
Happy automating with Ansible !
Conclusion
With this Ansible Cheatsheet, you now have access to a concise and well-structured guide that covers the essential commands, syntax, and functionalities of Ansible. Whether you are a sysadmin, a developer, or simply curious about this powerful Ansible Automation tool, this Ansible Cheatsheet will empower you to streamline your scripting workflow, automate tasks, and boost productivity.