ansible

Intro to Ansible

Ansible is software die het mogelijk maakt bepaalde taken te automatiseren op servers, VM’s en in cloud omgevingen. Het kan gebruikt worden om bijvoorbeeld software installeren en configureren. Ook kan het een netwerk configureren en bepaalde services deployen.

Een groot bij ansible is dat er operaties op verschillende machines tegelijk kunnen uitgevoerd worden. Wat betekend dat je niet telkens dezelfde stappen manueel moet doen.

1. Hoe werkt het?

Ansible maakt gebruik van inventory files in YAML formaat waar je al de host systemen waarop je configuraties wilt uitvoeren kan vermelden. In deze bestanden komen dus alle namen en ip adressen. Je kan op deze manier ook groepen van systemen maken. bv. Webservers

---
all:
  hosts:
    mail.example.com: 192.168.1.1
  children:
    webservers:
      hosts:
        foo.example.com: 192.168.1.2
        bar.example.com: 192.168.1.3
    dbservers:
      hosts:
        one.example.com: 192.168.1.4
        two.example.com: 192.168.1.5
        three.example.com: 192.168.6

Om eenvoudig configuraties te maken gebruikt ansible 'playbooks'. In deze playbooks komen dan een reeks van operaties die moeten uitgevoerd worden op de hosts die vermeld worden in de inventory file.

---
  - name: Playbook
    hosts: webservers
    become: yes
    become_user: root
    tasks:
      - name: ensure apache is at the latest version
        yum:
          name: httpd
          state: latest

Op de onderstaande foto kan je zien hoe de playbooks en inventory files samen werken. Ansible leest de inventory en paybooks en voert dan via een ssh verbinding de nodige taken uit.

automation.png