# Rolle `docker` Installiert die Docker Engine über das offizielle Docker-Repository für Debian. Die Rolle fügt den Docker-GPG-Key hinzu, richtet eine APT-Quelle im deb822-Format ein und installiert alle benötigten Pakete (Engine, CLI, containerd, Buildx- und Compose-Plugin). > Siehe auch das Playbook `playbooks/docker.yml` sowie die > [Repo-README](../../README.md). ## Voraussetzungen - Debian-Ziel-Host - Internetzugang zum Docker-Repository (`download.docker.com`) - Benutzer mit `become`-Rechten ## Einbindung Die Rolle wird typischerweise über das Playbook `playbooks/docker.yml` oder automatisch durch die `bootstrap`-Rolle (`import_role`) aufgerufen. Direkte Einbindung per `import_role`: ```yaml - hosts: all become: true user: admin roles: - role: docker ``` ```bash ansible-playbook -i inventory/dmc12.yml playbooks/docker.yml ``` ## Funktionsweise `tasks/main.yml` inkludiert die eigentliche Installations-Logik aus `tasks/install-docker.yml`: 1. **apt-Cache aktualisieren** – `cache_valid_time: 3600` 2. **Voraussetzungen installieren** – `ca-certificates`, `curl` 3. **Keyring-Verzeichnis anlegen** – `/etc/apt/keyrings` (Mode `0755`) 4. **Docker GPG-Key herunterladen** – nach `/etc/apt/keyrings/docker.asc` 5. **APT-Quelle einrichten** – Template `sources.list.j2` nach `/etc/apt/sources.list.d/docker.sources` (deb822-Format) 6. **apt-Cache aktualisieren** – nach Repository-Hinzufügung 7. **Docker-Pakete installieren** – `docker_packages` (benachrichtigt Handler `Start Docker`) ## Variablen | Variable | Typ | Default | Beschreibung | |----------------------|---------|--------------------------------------|-------------------------------------------------------| | `docker_mirror` | string | `https://download.docker.com/linux/debian` | Basis-URL des Docker-APT-Repositories | | `os_version_codename`| string | `{{ ansible_lsb.codename }}` | Codename der Distribution (für `Suites:`) | | `docker_packages` | list | siehe unten | Liste der zu installierenden Docker-Pakete | Default `docker_packages`: ```yaml docker_packages: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin ``` `os_version_codename` wird standardmäßig automatisch anhand von `ansible_lsb.codename` ermittelt und kann bei Bedarf überschrieben werden. ## Templates | Template | Ziel | |-------------------|-------------------------------------------------| | `sources.list.j2` | `/etc/apt/sources.list.d/docker.sources` (deb822) | ## Handler | Handler | Auslöser | |------------------|-----------------------------------------------------| | `Start Docker` | Installation/Aktualisierung der Docker-Pakete | | `Restart Docker` | (reserviert) systemd-Neustart | | `Reload Docker` | (reserviert) systemd-Reload | ## Tags Die Rolle vergibt keine eigenen Tags. Bei Bedarf über das Playbook steuerbar. ## Abhängigkeiten - Keine weiteren Rollen. - Collections: `ansible.builtin` (Bordmittel). ## Hinweise - Die APT-Quelle liegt im **deb822-Format** vor, was ab Debian 12+ empfohlen wird. Das签ierte-Keyfile liegt unter `/etc/apt/keyrings/docker.asc`. - Der Handler `Start Docker` aktiviert und startet den Service, ohne bereits laufende Container zu beeinflussen. - Wird die Rolle innerhalb von `bootstrap` aufgerufen, übernimmt das Top-Level Playbook das `become`/`user`-Handling.