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=presentMapping-Format
- apt:
pkg: vim
state: presentFolded Scalar Format
- apt: >
pkg=vim
state=presentSie 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: noDeb-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: presentRepository-Schlüssel
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentGit-bezogen
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesReferenz: git-Modul
Git-Konfiguration
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comReferenz: 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" # KommentarReferenz: user-Modul
Dienstverwaltung (Service Management)
- service:
name: nginx # Dienstname
state: started # Status: gestartet
enabled: yes # Ob beim Booten aktivierenReferenz: service-Modul
Shell-bezogen
Shell-Befehl
- shell: apt-get install nginx -yZusä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 wechselnBeispiel 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 wechselnReferenz: 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 erzwingenReferenz: 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 sollReferenz: 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 sollReferenz: template-Modul
Lokale Operationen
Lokale Ausführung
- name: Operation lokal ausführen
local_action: shell echo helloDebug-Ausgabe
- debug:
msg: "Hello {{ var }}"Referenz: debug-Modul