Skip to main content

Ansible Cheat Sheet

ansible relevant files

  • /etc/ansible/hosts - the list of remote servers that we'll manage.

We can configure hosts and credentials:

[my_group]
10.50.20.21
10.50.20.22

[my_group:vars]
ansible_user=$myuser
ansible_password=$mypassword
  • /etc/ansible/ansible.cfg - ansible configuration.

Commands

Ping

ansible my_group -m ping

Run specific command

ansible my_group -a "cat /etc/os-release"

Run a Playbook

ansible-playbook my_playbook.yaml

Run a Playbook with a variable

ansible-playbook my_playbook.yaml -e "package=nano"

Playbook

Playbooks contains Plays which contain Tasks.

Playbooks are written inYAML.

A playbook example:

--- 
- name: check_nano # Start of Play
hosts: my_group
tasks:
- name: ensure nano is there # Start of task
apt: # module
name: nano
state: latest

A playbook with variables:

--- 
- name: check_nano
hosts: my_group
vars:
package: nano
tasks:
- name: ensure {{ package }} is there
apt:
name: "{{ package }}"
state: latest

We can run this playbook with a variable as an argument:

ansible-playbook my_playbook.yml -e "package=httpd"

A Playbook with a loop:

--- 
- name: check_nano
hosts: my_group
vars:
packages:
- nano
- vi
tasks:
- name: install packages
apt:
name: "{{ item }}"
state: installed
loop: "{{ packages }}" # loop