Skip to content

Ansible Module Spickzettel

Ansible ist ein leistungsstarkes Automatisierungstool für den IT-Betrieb. Dieser Artikel stellt die Verwendung seiner gängigen Module vor.

Format

Grundlegende Dateistruktur

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

Bitte platzieren Sie Ihre Module unter tasks.

Aufgabenformat (Task Format)

Einzeiliges Format

- apt: pkg=vim state=present

Mapping-Format

- apt:
    pkg: vim
    state: present

Folded Scalar Format

- apt: >
    pkg=vim
    state=present

Sie können jedes der oben genannten Formate verwenden, um Aufgaben zu definieren. Für kurze Deklarationen wird das einzeilige Format empfohlen; für längere Deklarationen wird das Mapping-Format empfohlen.

Module

Aptitude

Paketverwaltung

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

Deb-Paketdatei

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

Repository-Ververwaltung (Softwarequellen)

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

Repository-Schlüssel

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

Git-bezogen

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

Referenz: git-Modul

Git-Konfiguration

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

Referenz: git_config-Modul

Benutzerverwaltung

- user:
    state: present    # Status: vorhanden
    name: git        # Benutzername
    system: yes      # Systembenutzer
    shell: /bin/sh   # Login-Shell
    groups: admin    # Gruppen
    comment: "Git Version Control"  # Kommentar

Referenz: user-Modul

Dienstverwaltung (Service Management)

- service:
    name: nginx      # Dienstname
    state: started   # Status: gestartet
    enabled: yes     # Ob beim Booten aktivieren

Referenz: service-Modul

Shell-bezogen

Shell-Befehl

- shell: apt-get install nginx -y

Zusätzliche Optionen

- shell: echo hello
  args:
    creates: /path/file  # Überspringen, wenn Datei existiert
    removes: /path/file  # Überspringen, wenn Datei nicht existiert
    chdir: /path        # Vor der Ausführung in dieses Verzeichnis wechseln

Beispiel für mehrzeilige Befehle

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

Referenz: shell-Modul

Skriptausführung

- script: /x/y/script.sh
  args:
    creates: /path/file  # Überspringen, wenn Datei existiert
    removes: /path/file  # Überspringen, wenn Datei nicht existiert  
    chdir: /path        # Vor der Ausführung in dieses Verzeichnis wechseln

Referenz: script-Modul

Dateioperationen

Dateiverwaltung

- file:
    path: /etc/dir
    state: directory # Typ: Verzeichnis|Datei|Link|Hardlink|touch|gelöscht

    # Optionale Parameter:
    owner: bin      # Eigentümer
    group: wheel    # Gruppe
    mode: 0644      # Berechtigungen
    recurse: yes    # Rekursive Erstellung
    force: yes      # Erstellung des Softlinks erzwingen

Referenz: file-Modul

Dateikopie

- copy:
    src: /app/config/nginx.conf   # Quelldatei
    dest: /etc/nginx/nginx.conf   # Zielort

    # Optionale Parameter:
    owner: user     # Eigentümer
    group: user     # Gruppe
    mode: 0644      # Berechtigungen
    backup: yes     # Ob Backup erstellt werden soll

Referenz: copy-Modul

Vorlagen (Templates)

- template:
    src: config/redis.j2       # Vorlagen-Quelldatei
    dest: /etc/redis.conf      # Zielort

    # Optionale Parameter:
    owner: user     # Eigentümer
    group: user     # Gruppe
    mode: 0644      # Berechtigungen
    backup: yes     # Ob Backup erstellt werden soll

Referenz: template-Modul

Lokale Operationen

Lokale Ausführung

- name: Operation lokal ausführen
  local_action: shell echo hello

Debug-Ausgabe

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

Referenz: debug-Modul