Skip to content

Ansible-modules Spiekbriefje

Ansible is een krachtige automatiseringstool. In dit artikel introduceren we de meest gebruikte modules.

Formaat

Basisbestandsstructuur

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

Plaats uw modules onder tasks.

Taakformaat (Task Format)

Eén-regelig formaat

- apt: pkg=vim state=present

Mapping-formaat

- apt:
    pkg: vim
    state: present

Gevouwen scalair formaat

- apt: >
    pkg=vim
    state=present

U kunt elk van de bovenstaande formaten gebruiken om taken te definiëren. Voor korte voorstellingen wordt het één-regelige formaat aanbevolen, voor langere voorstellingen het mapping-formaat.

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"

Beheer van repositories

- 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: [email protected]

Referentie: git_config-module

Gebruikersbeheer

- user:
    state: present    # Status: aanwezig
    name: git        # Gebruikersnaam
    system: yes      # Systeemgebruiker
    shell: /bin/sh   # Inlog-shell
    groups: admin    # Groepen
    comment: "Git Versiebeheer"  # 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        # Wissel naar deze map voor uitvoering

Voorbeeld van opdracht 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        # Wissel naar deze map voor uitvoering

Referentie: script-module

Bestandsbewerkingen

Bestandsbeheer

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

    # Optionele parameters:
    owner: bin      # Eigenaar
    group: wheel    # Groep
    mode: 0644      # Rechten
    recurse: yes    # Recursief
    force: yes      # Forceer creatie van softlink

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     # Back-up indien aanwezig

Referentie: copy-module

Sjabloon (Template)

- 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     # Back-up indien aanwezig

Referentie: template-module

Lokale acties

Lokale uitvoering

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

Debug-uitvoer

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

Referentie: debug-module