Skip to content

Ansible Modules Spiekbriefje

Ansible is een krachtige automatiseringstool voor IT-beheer. Dit artikel introduceert het gebruik van de meest voorkomende modules.

Formaat

Basis bestandsstructuur

---
- hosts: production
  remote_user: root
  tasks:
  - ···

Plaats uw modules onder tasks.

Taakformaat (Task Format)

Enkeleregel-formaat

- apt: pkg=vim state=present

Mapping-formaat

- apt:
    pkg: vim
    state: present

Gevouwen scalair formaat (Folded Scalar)

- apt: >
    pkg=vim
    state=present

U kunt elk van de bovenstaande formaten gebruiken om taken te definiëren. Voor korte verklaringen wordt het enkeleregel-formaat aanbevolen; voor langere verklaringen wordt het mapping-formaat aanbevolen.

Modules

Aptitude

Pakketbeheer

- apt:
    pkg: nodejs
    state: present # absent | latest
    update_cache: yes
    force: no

Deb pakketbestand

- apt:
    deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"

Repositorybeheer (Softwarebronnen)

- apt_repository:
    repo: "deb https://··· raring main"
    state: present

Repository sleutel

- apt_key:
    id: AC40B2F7
    url: "http://···"
    state: present

Git gerelateerd

- git:
    repo: git://github.com/
    dest: /srv/checkout
    version: master
    depth: 10
    bare: yes

Referentie: git module

Git configuratie

- git_config:
    name: user.email
    scope: global # local | system
    value: hi@example.com

Referentie: git_config module

Gebruikersbeheer

- user:
    state: present    # Status: aanwezig
    name: git        # Gebruikersnaam
    system: yes      # Systeemgebruiker
    shell: /bin/sh   # Login shell
    groups: admin    # Groepen
    comment: "Git Version Control"  # Opmerking

Referentie: user module

Servicebeheer

- service:
    name: nginx      # Servicenaam
    state: started   # Status: gestart
    enabled: yes     # Inschakelen bij opstarten

Referentie: service module

Shell gerelateerd

shell opdracht

- shell: apt-get install nginx -y

Extra opties

- shell: echo hello
  args:
    creates: /path/file  # Overslaan als bestand bestaat
    removes: /path/file  # Overslaan als bestand niet bestaat
    chdir: /path        # Schakel over naar deze map voor uitvoering

Voorbeeld van opdrachten over meerdere regels

- shell: |
    echo "hello there"
    echo "multiple lines"

Referentie: shell module

Scriptuitvoering

- script: /x/y/script.sh
  args:
    creates: /path/file  # Overslaan als bestand bestaat
    removes: /path/file  # Overslaan als bestand niet bestaat  
    chdir: /path        # Schakel over naar deze map voor uitvoering

Referentie: script module

Bestandsbewerkingen

Bestandsbeheer

- file:
    path: /etc/dir
    state: directory # Type: directory|file|link|hardlink|touch|absent

    # Optionele parameters:
    owner: bin      # Eigenaar
    group: wheel    # Groep
    mode: 0644      # Rechten
    recurse: yes    # Recursief aanmaken
    force: yes      # Forceren aanmaken symbolische link

Referentie: file module

Bestand kopiëren

- copy:
    src: /app/config/nginx.conf   # Bronbestand
    dest: /etc/nginx/nginx.conf   # Doellocatie

    # Optionele parameters:
    owner: user     # Eigenaar
    group: user     # Groep
    mode: 0644      # Rechten
    backup: yes     # Maak een back-up

Referentie: copy module

Sjablonen (Templates)

- template:
    src: config/redis.j2       # Sjabloon bronbestand
    dest: /etc/redis.conf      # Doellocatie

    # Optionele parameters:
    owner: user     # Eigenaar
    group: user     # Groep
    mode: 0644      # Rechten
    backup: yes     # Maak een back-up

Referentie: template module

Lokale bewerkingen

Lokale uitvoering

- name: Voer bewerking lokaal uit
  local_action: shell echo hello

Debug uitvoer

- debug:
    msg: "Hello {{ var }}"

Referentie: debug module