Co-authored-by: DerLinkman <derlinkman@gmail.com> Reviewed-on: #1
102 lines
3.6 KiB
Markdown
102 lines
3.6 KiB
Markdown
# 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. |