Zum Inhalt springen
Paketmanager und Binärdateien

Paketmanager und Binärdateien

Verwende diese Seite für Nicht-Container-Installationen und manuelle Binär-Downloads.

Laufzeitwerkzeuge

Container-Images enthalten diese Werkzeuge bereits. Nicht-Container-Installationen müssen sie auf dem Host bereitstellen.

Host-RolleErforderliche Werkzeuge
ControllerCA-Zertifikate, git.
Agentgit, Docker CLI, Docker Buildx-Plugin, Docker Compose-Plugin, Zugriff auf den Docker-Daemon.

Linux-Pakete und -Archive installieren Composia-Binärdateien und optionale systemd-Unit-Dateien. Sie installieren Docker, Docker Compose oder Git nicht für dich.

Debian und Ubuntu

Füge das Forgejo-APT-Repository hinzu:

sudo install -d -m 0755 /etc/apt/keyrings
sudo curl https://forgejo.alexma.top/api/packages/alexma233/debian/repository.key \
  -o /etc/apt/keyrings/composia.asc

echo "deb [signed-by=/etc/apt/keyrings/composia.asc] https://forgejo.alexma.top/api/packages/alexma233/debian stable main" \
  | sudo tee /etc/apt/sources.list.d/composia.list

sudo apt update
sudo apt install composia

Du kannst auch das .deb-Paket von der Releases-Seite herunterladen und mit deinem Paketmanager installieren.

Überprüfen:

composia --version

Systemdienste

Linux-Pakete installieren inaktive systemd-Units für Controller und Agent. Die Units werden nicht automatisch aktiviert oder gestartet.

Die paketierten Units verwenden die Standard-Konfigurationspfade:

DienstKonfigurationspfad
composia-controller.service/etc/composia/controller/config.yaml
composia-agent.service/etc/composia/agent/config.yaml

Die paketierten Units verwenden die Standard-Konfigurationspfade, laufen im ausgelieferten Zustand als root und erstellen keine Konfigurationsdateien, Datenverzeichnisse oder Git-Repositories. Bereite diese vor, bevor du die Dienste aktivierst:

sudo install -d -m 0755 /etc/composia/controller /etc/composia/agent
sudo install -d -m 0750 \
  /var/lib/composia/controller/repo \
  /var/lib/composia/controller/state \
  /var/lib/composia/controller/logs \
  /var/lib/composia/agent/repo \
  /var/lib/composia/agent/state
sudo chown -R root:root /etc/composia /var/lib/composia
sudo git -C /var/lib/composia/controller/repo init
sudo git -C /var/lib/composia/agent/repo init

Verwende übereinstimmende Pfade in den beiden Konfigurationsdateien:

/etc/composia/controller/config.yaml
controller:
  repo_dir: "/var/lib/composia/controller/repo"
  state_dir: "/var/lib/composia/controller/state"
  log_dir: "/var/lib/composia/controller/logs"
/etc/composia/agent/config.yaml
agent:
  repo_dir: "/var/lib/composia/agent/repo"
  state_dir: "/var/lib/composia/agent/state"

Prüfe Besitzverhältnisse, Schreibzugriff und Git-Initialisierung:

stat -c '%U:%G %a %n' \
  /var/lib/composia/controller/repo \
  /var/lib/composia/controller/state \
  /var/lib/composia/controller/logs \
  /var/lib/composia/agent/repo \
  /var/lib/composia/agent/state
sudo test -w /var/lib/composia/controller/repo
sudo test -w /var/lib/composia/agent/repo
sudo git -C /var/lib/composia/controller/repo rev-parse --is-inside-work-tree
sudo git -C /var/lib/composia/agent/repo rev-parse --is-inside-work-tree

Wenn du ein systemd-Drop-in mit User= hinzufügst, übertrage diese Pfade stattdessen an diesen Dienstbenutzer.

Nachdem du die Konfigurationsdateien erstellt hast, aktiviere die Dienste explizit:

sudo systemctl enable --now composia-controller.service
sudo systemctl enable --now composia-agent.service

Linux-Archive enthalten dieselben Unit-Dateien unter packaging/systemd/. Wenn du Archiv-Binärdateien unter /usr/local/bin installierst, passe die ExecStart-Pfade vor dem Aktivieren an.

Zuletzt aktualisiert am • alexma233