Docker mit Ansible auf Ubuntu installieren

Docker manuell zu installieren, funktioniert gut – bis Sie es mehr als einmal tun müssen. Genau für solche Probleme wurde Ansible entwickelt. Mit Ansible automatisieren Sie die Einrichtung von Docker und stellen sicher, dass die Konfiguration auf allen Servern, die Sie verwalten, konsistent bleibt.

Docker ist eine Plattform zum Ausführen von Anwendungen in schnellen, leichtgewichtigen und portablen Umgebungen, den sogenannten Containern, die unabhängig vom Hostsystem laufen. Ansible ist ein Tool, das die Einrichtung dieser Umgebungen automatisiert, sodass Sie sie nicht jedes Mal manuell vornehmen müssen.

Ansible verwendet eine einfache Textdatei, ein sogenanntes Playbook, in der Sie Ihre Serverkonfiguration festlegen. Dazu kann alles gehören – von der Installation von Paketen bis zur Einrichtung verschiedener Dienste. Programmieren ist nicht erforderlich – schreiben Sie Ihr Playbook einfach einmal, und Ansible wendet es bei jedem Ausführen immer auf genau dieselbe Weise an.

In dieser Anleitung erfahren Sie, wie Sie mit Ansible Docker auf einem Ubuntu-Server installieren. Sie lernen, Ansible zu konfigurieren, eine Inventory-Datei zu erstellen, ein Playbook zu schreiben und es auszuführen, um Docker automatisch zu installieren und zu konfigurieren. Außerdem erfahren Sie, wie Sie Ihre Einrichtung überprüfen und für fortgeschrittene Anwendungsfälle anpassen.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Ubuntu-Server – Version 20.04 oder höher. Hostinger bietet Ubuntu-VPS-Hosting, das sich schnell und einfach einrichten lässt.
  • Grundlegende Kenntnisse der Befehlszeile – Sie müssen kein Experte sein, sollten sich im Terminal aber sicher bewegen können.
  • Ein Benutzer mit sudo-Berechtigungen – erforderlich, um Pakete zu installieren und Ansible-Aufgaben auszuführen.
  • SSH-Zugriff – um eine Verbindung zu Ihrem Remote-Server herzustellen.

Damit dürfte alles abgedeckt sein, was Sie brauchen. Der Rest wird Schritt für Schritt in der Anleitung behandelt.

Docker mit Ansible installieren

Dieser Prozess gliedert sich in sechs Schritte – von der Einrichtung von Ansible bis zur Anpassung des Playbooks. Beginnen wir mit der Installation und Konfiguration von Ansible.

1. Installieren und konfigurieren Sie Ansible

Bevor Sie Docker mit Ansible installieren können, müssen Sie zunächst Ansible selbst einrichten. In diesem Tutorial installieren Sie es auf demselben Server, auf dem Sie auch Docker installieren möchten – dieser Rechner dient sowohl als Steuerungsknoten als auch als verwalteter Knoten. Wenn alles auf einem einzigen Server läuft, bleibt die Einrichtung übersichtlich – besonders dann, wenn Sie gerade erst anfangen oder mit einem VPS arbeiten.

Zu Beginn verbinden Sie sich per SSH mit Ihrem Ubuntu-Server. Sobald die Verbindung hergestellt ist, müssen Sie die Paketliste des Systems aktualisieren. Dieser Schritt stellt sicher, dass auf Ihrem Server die neuesten verfügbaren Software- und Sicherheitspatches installiert sind:

sudo apt update

Durch Ausführen dieses Befehls wird nichts installiert. Damit wird lediglich die Liste der Pakete aktualisiert, auf die Ihr System zugreifen kann – ein kurzer Schritt, der hilft, Probleme bei der Installation von Ansible zu vermeiden.

Nun können Sie Ansible installieren. Ubuntu enthält es in seinen Standard-Softwarebibliotheken, daher ist die Installation unkompliziert:

sudo apt install ansible -y

Dieser Befehl installiert das zentrale Ansible-Tool und alles, was für seine Ausführung erforderlich ist.

Sobald das erledigt ist, sollten Sie prüfen, ob Ansible korrekt installiert wurde:

ansible --version

Auf dem Bildschirm sollten Versionsdetails angezeigt werden. Wenn das der Fall ist, können Sie fortfahren.

Das ist alles. Nachdem Ansible eingerichtet ist, können Sie im nächsten Schritt festlegen, welche Server Ansible verwalten soll.

2. Richten Sie die Bestandsdatei ein

Ansible verwendet eine Inventardatei, um zu erkennen, welche Server es verwalten soll. Stellen Sie es sich als eine Liste von Hosts vor, zu denen Ansible eine Verbindung herstellen und auf denen es Aufgaben ausführen kann. Auch wenn Sie – wie in diesem Tutorial – nur einen einzigen Server verwalten werden, müssen Sie diesen dennoch im Inventory definieren.

Standardmäßig befindet sich die Inventory-Datei unter /etc/ansible/hosts. Sie können diese Datei direkt bearbeiten oder eine eigene erstellen. Für diese Anleitung erstellen wir in Ihrem Arbeitsverzeichnis eine einfache benutzerdefinierte Inventardatei, damit alles übersichtlich bleibt.

Erstellen Sie eine Datei mit dem Namen hosts.ini:

nano hosts.ini

Fügen Sie dann Folgendes hinzu:

[local]
localhost ansible_connection=local

Das bedeutet Folgendes:

  • [local] ist der Name der Gruppe. Sie können Gruppen beliebig benennen.
  • localhost weist Ansible an, Aufgaben auf demselben Rechner auszuführen.
  • ansible_connection=local weist Ansible an, den SSH-Verbindungsschritt zu überspringen, weil Ansible denselben Rechner verwaltet, auf dem es installiert ist.

Wenn Sie mehrere Remote-Server verwalten möchten, muss Ihr Inventar deren IP-Adressen oder Hostnamen enthalten. Außerdem müssten Sie den SSH-Verbindungstyp und den Benutzernamen des Remote-Hosts angeben, den Ansible für die Verbindung verwenden würde.

Wichtig! Um die Sicherheit zu erhöhen, empfehlen wir dringend, SSH-Schlüssel zu verwenden für die Ansible-SSH-Authentifizierung zwischen Ihrem Steuerungsknoten und dem Remote-Host.

Für diese Anleitung brauchen Sie jedoch nur localhost. Ersetzen Sie „server.hostname.tld“ unbedingt durch die Adresse Ihres eigenen Servers und „username“ durch Ihren eigenen Benutzernamen.

[webservers]
192.168.1.10    ansible_connection=ssh  ansible_user=username
server.hostname.tld   ansible_connection=ssh  ansible_user=username

Speichern Sie die Datei. Damit ist die Einrichtung des Inventars abgeschlossen. Als Nächstes schreiben Sie das Playbook – den Satz an Anweisungen, der Ansible vorgibt, wie Docker installiert wird.

3. Das Ansible-Playbook schreiben

Als Nächstes schreiben Sie das Ansible-Playbook, das eine Liste von Aufgaben enthält, die Ansible ausführt, um Docker für Sie zu installieren und zu konfigurieren. Anstatt Befehle einzeln manuell einzugeben, definieren Sie alles in einem strukturierten Format, und Ansible übernimmt den Rest.

Erstellen Sie eine Datei mit dem Namen install-docker.yml:

nano install-docker.yml

Fügen Sie dann den folgenden Inhalt ein:

- name: Install Docker on Ubuntu
  hosts: local
  become: true
  tasks:
    - name: Install required packages
      apt:
        name:
          - apt-transport-https
          - ca-certificates
          - curl
          - software-properties-common
        state: present
        update_cache: true

    - name: Add Docker’s official GPG key
      apt_key:
        url: https://download.docker.com/linux/ubuntu/gpg
        state: present

    - name: Add Docker repository
      apt_repository:
        repo: deb https://download.docker.com/linux/ubuntu focal stable
        state: present

    - name: Install Docker
      apt:
        name: docker-ce
        state: latest
        update_cache: true

Schauen wir es uns Schritt für Schritt an:

  • name ist eine Beschreibung dessen, was das Playbook tut, und macht Protokolle besser lesbar.
  • hosts: local weist Ansible an, die Aufgaben für die localhost-Gruppe aus Ihrem Inventory auszuführen.
  • become: true führt die Aufgaben mit Administratorrechten aus, genau wie bei der Verwendung von sudo im Terminal.
  • Unter Tasks ist jeder Eintrag ein Schritt im Installationsprozess.

Das bewirkt jede der Aufgaben:

  • Erforderliche Pakete installieren. Das Playbook beginnt damit, eine Reihe von Tools zu installieren, die Ihr System benötigt, bevor es Docker installieren kann.
    Dazu gehören:
    • curl zum Herunterladen von Dateien
    • apt-transport-https für den Zugriff auf sichere Paketquellen
    • ca-certificates für die Verarbeitung von SSL-Zertifikaten
    • software-properties-common, das beim Verwalten von Softwarequellen hilft
  • Hinzufügen des GNU-Privacy-Guard-Schlüssels (GPG) von Docker. Damit kann Ihr System vor der Installation die Echtheit der Docker-Pakete überprüfen, indem es den offiziellen GPG-Schlüssel von Docker hinzufügt.
  • Das Docker-Repository hinzufügen. Wechselt statt des integrierten Ubuntu-Repositorys zum offiziellen Docker-Repository. So installiert Ihr Server Docker immer direkt von der Quelle in der neuesten stabilen Version.
  • Docker selbst installieren. Das Playbook aktualisiert die Paketliste noch einmal, damit sichergestellt ist, dass die neueste Version abgerufen wird, und installiert das Paket anschließend.

Indem Sie das Playbook auf diese Weise schreiben, stellen Sie sicher, dass Docker konsistent und wiederholbar installiert wird – genau dafür ist Ansible ausgelegt. Sie können diese Datei wiederverwenden, wenn Sie den Vorgang auf einem anderen Ubuntu-Rechner erneut durchführen müssen.

Speichern Sie die Datei und schließen Sie sie – jetzt können Sie das Playbook ausführen.

4. Führen Sie das Ansible-Playbook aus

Um das Playbook auszuführen, verwenden Sie den folgenden Befehl:

ansible-playbook -i hosts.ini install-docker.yml

Folgendes geschieht in diesem Befehl:

  • ansible-playbook ist das Ansible-Tool, mit dem Sie Ihr Playbook ausführen.
  • -i hosts.ini weist Ansible an, die Inventardatei zu verwenden, die Sie zuvor erstellt haben.
  • install-docker.yml ist das Playbook, das die Schritte zur Installation von Docker enthält

Nachdem Sie den Befehl ausgeführt haben, beginnt Ansible, eine Verbindung zum Server herzustellen, der in Ihrem Inventory aufgeführt ist. Da Sie localhost mit ansible_connection=local verwenden, wird kein SSH genutzt. Stattdessen führt es die Aufgaben direkt auf demselben Rechner aus, auf dem Ansible installiert ist.

Im Terminal wird jede Aufgabe während der Ausführung zusammen mit einer Erfolgs- oder Fehlermeldung angezeigt. Dadurch erkennen Sie Probleme schnell und behalten den Fortschritt im Blick.

Im Hintergrund prüft Ansible, ob jede Aufgabe ausgeführt werden muss oder bereits abgeschlossen ist. Wenn Docker auf dem Ziel-Host bereits installiert ist, überspringt Ansible diesen Schritt. Das ist einer der wesentlichen Vorteile von Ansible: Es führt Schritte nur dann aus, wenn sie tatsächlich erforderlich sind.

Sobald das Playbook abgeschlossen ist, sollte Docker installiert und einsatzbereit sein. Im nächsten Schritt stellen Sie sicher, dass alles funktioniert hat.

5. Installation überprüfen

Sobald das Playbook fertig ausgeführt wurde, überprüfen Sie, ob Docker korrekt installiert wurde. Prüfen Sie zunächst die Version, um zu bestätigen, dass Docker verfügbar ist:

docker --version

Wenn die Installation erfolgreich war, wird die Versionsnummer im Terminal angezeigt.

Stellen Sie als Nächstes sicher, dass der Docker-Dienst läuft:

sudo systemctl status docker

Sie sollten den Status active (running) sehen. Drücken Sie q, um den Statusbildschirm zu verlassen.

Führen Sie abschließend einen kurzen Test aus, der ein kleines Docker-Image aus Docker Hub, der standardmäßigen Image-Registry, abruft und in einem Container ausführt:

sudo docker run hello-world

Wenn alles erfolgreich eingerichtet ist, wird die Meldung „Hello from Docker!“ ausgegeben.

Nachdem Docker installiert ist und die Installation überprüft wurde, können Sie Ihr Ansible-Playbook anpassen.

6. Das Playbook anpassen

Nachdem Sie Docker erfolgreich installiert haben, können Sie Ihr Playbook um weitere Tools und Konfigurationen erweitern.

Eine beliebte Ergänzung ist Docker Compose. Damit können Sie Anwendungen mit mehreren Containern definieren und ausführen. Um es in Ihr Playbook aufzunehmen, können Sie eine Aufgabe hinzufügen, die die neueste Version herunterlädt und im Binärverzeichnis Ihres Systems ablegt.

- name: Install Docker Compose

  get_url:

    url: https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64

    dest: /usr/local/bin/docker-compose

    mode: '0755'

Docker Swarm ist ein weiteres nützliches, in Docker integriertes Tool, mit dem sich mehrere Container über verschiedene Server hinweg effizienter verwalten lassen. Mit Ansible können Sie Docker Swarm initialisieren oder Knoten zu einem bestehenden Swarm hinzufügen.

- name: Initialize Docker Swarm
  command: docker swarm init

Sie können Docker auch mit benutzerdefinierten Einstellungen konfigurieren. So können Sie beispielsweise einen benutzerdefinierten Speichertreiber oder ein Datenverzeichnis festlegen oder angeben, wie der Docker-Daemon mit einem Docker-Host kommuniziert. Diese Anpassungen lassen sich vornehmen, indem Sie eine Aufgabe hinzufügen, die die Docker-Daemon-Konfigurationsdatei bearbeitet, die sich in der Regel unter /etc/docker/daemon.json befindet.

Das sind nur einige Ideen. Der eigentliche Vorteil von Ansible besteht darin, dass diese Aufgaben, sobald Sie sie Ihrem Playbook hinzugefügt haben, auf jedem Server, den Sie künftig einrichten, automatisch und zuverlässig ausgeführt werden.

Fazit

Docker mit Ansible einzurichten, spart nicht nur Zeit. Es geht darum, Ihre Einrichtung so zu gestalten, dass sie sich zuverlässig wiederholen lässt. Anstatt jedes Mal alle Installationsschritte manuell durchzugehen, haben Sie jetzt ein Playbook, das alles für Sie erledigt.

Das Beste daran? Sie sind nicht auf die Grundlagen beschränkt. Unabhängig davon, ob Sie einen einzelnen VPS verwalten oder eine komplexere Umgebung vorbereiten: Dieser Ansatz bietet Ihnen eine solide und flexible Grundlage. Ihr Playbook können Sie im Laufe der Zeit weiter ausbauen, indem Sie es aktualisieren und die Änderungen testen, während sich Ihr Setup weiterentwickelt.

Häufig gestellte Fragen (FAQ) zu Docker mit Ansible installieren

Was ist Ansible und wie funktioniert es mit Docker?

Ansible ist ein Tool zur Automatisierung von Aufgaben – etwa der Installation von Software – auf einem oder mehreren Servern. Es funktioniert mit Docker und übernimmt die Einrichtung für Sie. Statt Befehle manuell auszuführen, können Sie sie einfach in einem Playbook festhalten und Ansible den Rest erledigen lassen.

Lässt sich dieses Playbook auch für andere Linux-Distributionen verwenden?

Mit ein paar Anpassungen ist das möglich. Dieses Playbook ist speziell für Ubuntu ausgelegt, das Funktionsprinzip ist auf anderen Distributionen jedoch dasselbe. Sie müssen einige Befehle anpassen, insbesondere solche, die die Installation von Paketen betreffen.

Wie verwalte ich mehrere Server mit Ansible?

Sie können einfach alle Ihre Server in der Inventardatei auflisten. Ansible verbindet sich mit jedem der Server – in der Regel per SSH – und führt auf jedem davon das Playbook aus. Deshalb gehört Ansible zu den einfachsten Möglichkeiten, Installationen und Änderungen auf mehreren Maschinen gleichzeitig zu verwalten.

Alle Tutorial-Inhalte auf dieser Website unterliegen Hostingers strengen redaktionellen Standards und Normen.

Author
Erstellt von

Faradilla Ayunindya

Faradilla, auch bekannt als Ninda, ist Content Marketing Specialist bei Hostinger mit über fünf Jahren Erfahrung und einem zehnjährigen Hintergrund als Linguistin. Sie möchte Technologie für alle zugänglich machen, indem sie komplexe Anleitungen in klare und leicht verständliche Schritt-für-Schritt-Guides verwandelt. In ihrer Freizeit interessiert sie sich für Biowissenschaften oder schaut gerne lustige Tiervideos. Vernetzen Sie sich mit ihr auf LinkedIn.

Was unsere Kunden sagen

Kommentar schreiben

Please fill the required fields.Bitte akzeptieren Sie die Datenschutzklausel.Bitte füllen Sie die erforderlichen Felder aus und akzeptieren Sie die Datenschutzklausel.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.