Ansible-Module Spickzettel
Ansible ist ein leistungsstarkes Automatisierungstool. In diesem Artikel wird die Verwendung der gängigsten Module vorgestellt.
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: presentFaltbares Skalarformat
- apt: >
pkg=vim
state=presentSie können jedes der oben genannten Formate verwenden, um Aufgaben zu definieren. Das einzeilige Format wird für kurze Deklarationen empfohlen, das Mapping-Format für längere.
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-Management
- 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: [email protected]Referenz: git_config Modul
Benutzerverwaltung
- user:
state: present # Status: vorhanden
name: git # Benutzername
system: yes # Systembenutzer
shell: /bin/sh # Login-Shell
groups: admin # Zugehörige Gruppen
comment: "Git Version Control" # KommentarReferenz: user Modul
Dienstverwaltung
- service:
name: nginx # Dienstname
state: started # Status: gestartet
enabled: yes # Autostart aktiviertReferenz: 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: directory|file|link|hard|touch|absent
# Optionale Parameter:
owner: bin # Eigentümer
group: wheel # Gruppe
mode: 0644 # Berechtigungen
recurse: yes # Rekursiv erstellen
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 # Backup erstellen, falls existiertReferenz: copy Modul
Template (Vorlagen)
- 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 # Backup erstellen, falls existiertReferenz: template Modul
Lokale Aktionen
Lokale Ausführung
- name: Aktionen lokal ausführen
local_action: shell echo helloDebug-Ausgabe
- debug:
msg: "Hello {{ var }}"Referenz: debug Modul