Ansible Grundlagen: Server-Automatisierung | Enjyn Gruppe
Hallo Welt
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

241 Dokumentationen verfügbar

Wissensdatenbank

Ansible Grundlagen Automatisierung

Zuletzt aktualisiert: 11.01.2026 um 12:06 Uhr

Ansible Grundlagen: Server-Automatisierung

Ansible automatisiert Server-Konfiguration, Deployments und IT-Aufgaben. Im Gegensatz zu anderen Tools benötigt Ansible keinen Agent auf den Zielservern - nur SSH-Zugang.

Warum Ansible?

  • Agentless: Keine Software auf Zielservern nötig
  • YAML-Syntax: Einfach lesbar und schreibbar
  • Idempotent: Mehrfache Ausführung = gleiches Ergebnis
  • Push-basiert: Änderungen werden aktiv verteilt

Installation

# Ubuntu/Debian
sudo apt update
sudo apt install ansible -y

# Oder via pip
pip install ansible

# Version prüfen
ansible --version

Inventory - Serverliste

# /etc/ansible/hosts oder eigene Datei
[webservers]
web1.example.com
web2.example.com
192.168.1.100

[databases]
db1.example.com ansible_user=admin
db2.example.com ansible_port=2222

[all:vars]
ansible_user=deploy
ansible_ssh_private_key_file=~/.ssh/id_rsa

Ad-hoc Befehle

# Ping alle Server
ansible all -m ping

# Befehl ausführen
ansible webservers -a "uptime"

# Paket installieren
ansible webservers -m apt -a "name=nginx state=present" --become

# Datei kopieren
ansible all -m copy -a "src=/local/file dest=/remote/path"

# Service neustarten
ansible webservers -m service -a "name=nginx state=restarted" --become

Erstes Playbook

# webserver.yml
---
- name: Webserver einrichten
  hosts: webservers
  become: yes
  
  tasks:
    - name: Nginx installieren
      apt:
        name: nginx
        state: present
        update_cache: yes
    
    - name: Nginx starten
      service:
        name: nginx
        state: started
        enabled: yes
    
    - name: Index-Seite kopieren
      copy:
        src: files/index.html
        dest: /var/www/html/index.html
        owner: www-data
        mode: '0644'
# Playbook ausführen
ansible-playbook webserver.yml

# Mit Inventory-Datei
ansible-playbook -i inventory.ini webserver.yml

# Dry-Run (Check-Mode)
ansible-playbook webserver.yml --check

Variablen

---
- name: Mit Variablen
  hosts: webservers
  vars:
    http_port: 80
    doc_root: /var/www/html
  
  tasks:
    - name: Nginx Config
      template:
        src: nginx.conf.j2
        dest: /etc/nginx/sites-available/default
      notify: Restart Nginx
  
  handlers:
    - name: Restart Nginx
      service:
        name: nginx
        state: restarted

Templates (Jinja2)

# templates/nginx.conf.j2
server {
    listen {{ http_port }};
    server_name {{ ansible_hostname }};
    root {{ doc_root }};
}

Rollen - Wiederverwendbare Struktur

# Rolle erstellen
ansible-galaxy init roles/webserver

# Struktur:
roles/
  webserver/
    tasks/main.yml
    handlers/main.yml
    templates/
    files/
    vars/main.yml
    defaults/main.yml

Wichtige Module

Modul Beschreibung
apt/yum Pakete installieren
service Dienste verwalten
copy Dateien kopieren
template Jinja2-Templates
user Benutzer verwalten
file Dateien/Ordner erstellen
git Git-Repositories
docker_container Docker-Container

Weitere Hilfe

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
120