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