DEV Community

Unpublished Post. This URL is public but secret, so share at your own discretion.

Ansible Cheatsheet

Installation

Install Ansible on Ubuntu:

sudo apt-get update
sudo apt-get install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt-get install ansible
Enter fullscreen mode Exit fullscreen mode

Getting Started

Create a new Ansible playbook:

nano playbook.yml
Enter fullscreen mode Exit fullscreen mode

Run the Ansible playbook on localhost:

ansible-playbook playbook.yml --connection=local
Enter fullscreen mode Exit fullscreen mode

Playbook Structure

A minimal Ansible playbook:

- hosts: all
  tasks:
  - name: Example Task
    shell: echo "Hello World!"
Enter fullscreen mode Exit fullscreen mode

Use a role in a playbook:

- hosts: all
  roles:
    - my-role
Enter fullscreen mode Exit fullscreen mode

Roles

Import an existing role from Ansible Galaxy:

cd roles
ansible-galaxy import {name of the project/role}
Enter fullscreen mode Exit fullscreen mode

Import a task from a role:

- hosts: localhost
  tasks:
    - name: Example Task
      include_role:
        name: my-role
        tasks_from: task-name
Enter fullscreen mode Exit fullscreen mode

Variables

Include external variables in a playbook:

- name: Include Variables
  include_vars: path/to/vars.yaml
Enter fullscreen mode Exit fullscreen mode

Define variables in a playbook:

- hosts: all
  vars:
    my_var: my_value
  tasks:
    - name: Example Task
      shell: echo "{{ my_var }}"
Enter fullscreen mode Exit fullscreen mode

Modules

Install packages with the apt module:

- name: Install Package
  apt:
    name: package-name
    state: present
Enter fullscreen mode Exit fullscreen mode

Start a service with the service module:

- name: Start Service
  service:
    name: service-name
    state: started
    enabled: yes
Enter fullscreen mode Exit fullscreen mode

Manage Python packages with the pip module:

- name: Manage Python Packages
  pip:
    name: package-name
    state: present
Enter fullscreen mode Exit fullscreen mode

Vault

Encrypt a file with Ansible Vault:

ansible-vault encrypt file.txt
Enter fullscreen mode Exit fullscreen mode

Decrypt a file with Ansible Vault:

ansible-vault decrypt file.txt
Enter fullscreen mode Exit fullscreen mode

Create a new file with Ansible Vault:

ansible-vault create file.txt
Enter fullscreen mode Exit fullscreen mode

Run a playbook with Ansible Vault:

ansible-playbook playbook.yml --vault-password-file password-file.txt
Enter fullscreen mode Exit fullscreen mode

Debugging

Increase verbosity with the -v flag:

ansible-playbook playbook.yml -v
Enter fullscreen mode Exit fullscreen mode

Use the -vv or -vvv flag for more verbose output.

Print the value of a variable with the debug module:

- name: Print Variable
  debug:
    var: my_var
Enter fullscreen mode Exit fullscreen mode

Top comments (0)