> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/de/fur-devops-und-administratoren/automate/install-on-runners.md).

# Devolutions CLI auf Build-Agents installieren

Devolutions CLI auf CI-Build-Agents aus einem Archiv installieren, die Konfiguration jedes Auftrags getrennt halten und den Hintergrundprozess steuern.

Devolutions CLI braucht keine Laufzeit und keinen Dienst: Entpacken Sie das Archiv für die Plattform Ihres Agents, fügen Sie seinen Ordner zum `PATH` hinzu, und der Agent ist bereit. Diese Seite behandelt, was auf einem Build-Agent anders ist: das richtige Archiv wählen, Aufträge daran hindern, die Konfiguration zu teilen, und nach einem Auftrag aufräumen.

## Wählen Sie das Archiv für Ihren Agenten

<table><thead><tr><th width="160">PLATTFORM</th><th width="160">ARCHITEKTUR</th><th>BEFEHL</th></tr></thead><tbody><tr><td>Windows</td><td>x64, Arm64</td><td><code>devo.exe</code></td></tr><tr><td>macOS</td><td>x64, Arm64</td><td><code>devo</code></td></tr><tr><td>Linux</td><td>x64, Arm64</td><td><code>devo</code></td></tr></tbody></table>

Jede Plattform und jede Architektur hat ihren eigenen Build, verfügbar als `.zip`- oder `.tar.gz`-Archiv: Verwenden Sie das, das zum Agenten passt. Das Archiv kann neben `devo` weitere Dateien enthalten, etwa native Bibliotheken, behalten Sie daher den entpackten Ordner zusammen.

## Installieren Sie es

{% tabs %}
{% tab title="Linux and macOS" %}

```bash
mkdir -p "$HOME/devo"
tar -xzf <archive>.tar.gz -C "$HOME/devo"
export PATH="$HOME/devo:$PATH"
devo --help
```

Verwenden Sie einen beliebigen Ordner, in den der Auftrag schreiben kann.
{% endtab %}

{% tab title="Windows" %}

```powershell
Expand-Archive <archive>.zip -DestinationPath "$env:TEMP\devo" -Force
$env:PATH = "$env:TEMP\devo;$env:PATH"
devo --help
```

Ersetzen Sie `$env:TEMP` durch einen beliebigen Ordner, in den der Auftrag schreiben kann.
{% endtab %}
{% endtabs %}

## Die Konfiguration jedes Auftrags getrennt halten

Devolutions CLI speichert Ihre Kontexte, Anmeldesitzungen und den Zustand seines Hintergrundprozesses in einem Konfigurationsordner im Profil des Benutzers. Auf einem Build-Agent, der Aufträge nacheinander unter demselben Konto ausführt, würde jeder Auftrag diesen Ordner teilen: Ein Auftrag könnte einen Kontext verwenden, den ein anderer Auftrag erstellt hat.

Setzen Sie `DEVO_CLI_CONFIG_HOME` auf einen Ordner, der zum Auftrag gehört, vor dem ersten Befehl `devo`:

{% tabs %}
{% tab title="Bash" %}

```bash
export DEVO_CLI_CONFIG_HOME="$(mktemp -d)"
```

{% endtab %}

{% tab title="PowerShell" %}

```powershell
$env:DEVO_CLI_CONFIG_HOME = Join-Path $env:TEMP "devo-config"
```

{% endtab %}
{% endtabs %}

Jeder `devo`-Befehl des Auftrags verwendet dann diesen Ordner für seine Kontexte und seinen Hintergrundprozess, und andere Aufträge sehen ihn nicht.

## Den Hintergrundprozess steuern

Der erste `devo`-Befehl, der Ihren Workspace braucht, startet einen Hintergrundprozess und lässt ihn für die nächsten Befehle laufen. Es ist dieselbe `devo`-Datei, die unter dem Benutzerkonto des Auftrags läuft. Sie hält die Ausgabe Ihres Auftrags nicht offen, sodass der Schritt, der sie gestartet hat, normal enden kann.

Standardmäßig beendet sich der Hintergrundprozess nach 60 Minuten ohne Anforderungen von selbst. Auf einem Build-Agent möchten Sie ihn in der Regel früher weghaben.

<table><thead><tr><th width="290">EINSTELLUNG</th><th>WAS ES TUT</th></tr></thead><tbody><tr><td><code>DEVO_DAEMON_IDLE_TIMEOUT</code></td><td>Wie lange der Hintergrundprozess ohne Anforderungen wartet, bevor er stoppt, zum Beispiel <code>30s</code>, <code>5m</code>, <code>1h</code> oder <code>00:05:00</code>. Der Standard ist 60 Minuten. <code>0s</code> schaltet den Leerlaufstopp aus. Wenn Devolutions CLI den Wert nicht lesen kann, schlägt der Befehl, der den Hintergrundprozess starten würde, mit <code>invalidParameterValue</code> fehl.</td></tr><tr><td>Option <code>--daemon</code> oder <code>DEVO_DAEMON_MODE</code></td><td><code>auto</code> (Standard): startet den Hintergrundprozess bei Bedarf. <code>require</code>: verwendet einen, der bereits läuft, und startet nie einen. <code>never</code>: kontaktiert ihn nicht, sodass Befehle, die ihn brauchen, fehlschlagen.</td></tr><tr><td>Option <code>--no-daemon-autostart</code> oder <code>DEVO_DAEMON_AUTOSTART</code></td><td>Starten Sie den Hintergrundprozess nicht automatisch. Setzen Sie die Variable auf <code>0</code>, <code>false</code> oder <code>no</code>, um den automatischen Start auszuschalten.</td></tr></tbody></table>

Mit `require`, oder wenn der automatische Start ausgeschaltet ist, starten Sie den Prozess selbst zu Beginn des Auftrags:

```bash
devo daemon ensure
```

{% hint style="info" %}
Setzen Sie Umgebungsvariablen, die Devolutions CLI später liest, etwa die Variable, die Ihr Anwendungsgeheimnis enthält, **bevor** der erste `devo`-Befehl läuft. Der Hintergrundprozess liest seine Umgebung beim Start. Siehe [Aus einer CI-Pipeline anmelden](/cli/de/fur-devops-und-administratoren/automate/ci-sign-in.md).
{% endhint %}

## Am Ende des Auftrags bereinigen

Führen Sie diese Befehle in einem Schritt aus, der immer läuft, auch wenn der Auftrag fehlschlägt:

```bash
devo logout <context-name>
devo daemon stop --wait
rm -rf "$DEVO_CLI_CONFIG_HOME"
```

* `devo logout` löscht die gespeicherte Authentifizierung des Kontexts.
* `devo daemon stop --wait` beendet den Hintergrundprozess dieses Konfigurationsordners und wartet, bis er weg ist. Wenn keiner läuft, tut er nichts.
* Löschen Sie den Konfigurationsordner zuletzt: `devo daemon stop` verwendet ihn, um den Hintergrundprozess zu finden.

Auf Build-Agents, die nach jedem Auftrag gelöscht werden, etwa Container oder temporäre virtuelle Maschinen, ist eine Bereinigung nicht erforderlich, kostet aber nichts.

## Gut zu wissen

* Prüfen Sie mit `devo doctor`, dass der Agent bereit ist. Er zeigt eine Diagnosemomentaufnahme, ohne den Hintergrundprozess zu starten. Siehe [Diagnosedaten für den Support erfassen](/cli/de/hilfe/troubleshooting/collect-diagnostics.md).
* Wenn ein Befehl meldet, dass der Hintergrundprozess nicht verfügbar ist, siehe [Der Hintergrundprozess startet nicht](/cli/de/hilfe/troubleshooting/daemon-wont-start.md).
* Alle Umgebungsvariablen sind in [Umgebungsvariablen](/cli/de/referenz/environment-variables.md) aufgelistet.

## Weiter

* [Sign in from a CI pipeline](/cli/de/fur-devops-und-administratoren/automate/ci-sign-in.md)
* [Read results as JSON](/cli/de/fur-devops-und-administratoren/automate/json-output.md)
* [Install Devolutions CLI](/cli/de/referenz/installation.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/de/fur-devops-und-administratoren/automate/install-on-runners.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
