iocalhost.nl // no place like ::1
references Infrastructure as Code Ansible

Ansible

Agentless configuratiebeheer — inventory, playbooks en modules.

Ad-hoc commando’s

ansible all -m ping
ansible web -m shell -a "uptime"
ansible all -m apt -a "name=nginx state=present" --become
ansible all -i inventory.ini -m setup    facts ophalen

Inventory

[web]
web1 ansible_host=10.0.0.1
web2 ansible_host=10.0.0.2

[web:vars]
ansible_user=deploy

Playbook

- name: Webservers configureren
  hosts: web
  become: true
  vars:
    pkg: nginx
  tasks:
    - name: Pakket installeren
      apt:
        name: "{{ pkg }}"
        state: present
    - name: Service draaien
      service:
        name: nginx
        state: started
        enabled: true
      notify: restart nginx
  handlers:
    - name: restart nginx
      service: { name: nginx, state: restarted }

Draaien

ansible-playbook site.yml
ansible-playbook site.yml -i inventory.ini --check     dry-run
ansible-playbook site.yml --limit web1
ansible-playbook site.yml --tags deploy
ansible-playbook site.yml --ask-become-pass
ansible-vault encrypt secrets.yml                      secrets versleutelen

Veelgebruikte modules: apt/yum, copy, template, file, service, user, git, command/shell, lineinfile.