> 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/it/per-devops-e-amministratori/automate/install-on-runners.md).

# Installare Devolutions CLI sugli agenti di build

Installare Devolutions CLI sugli agenti di build CI da un archivio, tenere separata la configurazione di ogni processo e controllare il processo in background.

Devolutions CLI non ha bisogno di un runtime né di un servizio: estragga l’archivio per la piattaforma dell’agente, aggiunga la sua cartella al `PATH` e l’agente è pronto. Questa pagina tratta ciò che cambia su un agente di build: scegliere l’archivio giusto, impedire ai processi di condividere la configurazione e ripulire dopo un processo.

## Scelga il pacchetto per il suo agente

<table><thead><tr><th width="160">PIATTAFORMA</th><th width="160">ARCHITETTURA</th><th>COMANDO</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>

Ogni piattaforma e ogni architettura ha la propria build, disponibile come archivio `.zip` o `.tar.gz`: usi quella che corrisponde all’agente. L’archivio può contenere altri file accanto a `devo`, come librerie native, quindi tenga insieme la cartella estratta.

## Lo installi

{% 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
```

Usi qualsiasi cartella in cui il job può scrivere.
{% endtab %}

{% tab title="Windows" %}

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

Sostituisca `$env:TEMP` con qualsiasi cartella in cui il job può scrivere.
{% endtab %}
{% endtabs %}

## Tenere separata la configurazione di ogni job

Devolutions CLI salva i contesti, le sessioni di accesso e lo stato del processo in background in una cartella di configurazione nel profilo dell’utente. Su un agente di build che esegue i processi uno dopo l’altro con lo stesso account, ogni processo condividerebbe quella cartella: un processo potrebbe usare un contesto creato da un altro.

Imposti `DEVO_CLI_CONFIG_HOME` su una cartella che appartiene al job, prima del primo comando `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 %}

Ogni comando `devo` del processo usa poi quella cartella per i suoi contesti e il suo processo in background, e gli altri processi non la vedono.

## Controllare il processo in background

Il primo comando `devo` che ha bisogno dello spazio di lavoro avvia un processo in background e lo lascia in esecuzione per i comandi successivi. È lo stesso file `devo`, in esecuzione con l’account utente del processo. Non tiene aperto l’output del processo, quindi il passaggio che lo ha avviato può terminare normalmente.

Per impostazione predefinita, il processo in background si arresta da solo dopo 60 minuti senza richieste. Su un agente di build di solito vuole che sparisca prima.

<table><thead><tr><th width="290">IMPOSTAZIONE</th><th>CHE COSA FA</th></tr></thead><tbody><tr><td><code>DEVO_DAEMON_IDLE_TIMEOUT</code></td><td>Quanto attende il processo in background senza richieste prima di arrestarsi, per esempio <code>30s</code>, <code>5m</code>, <code>1h</code> o <code>00:05:00</code>. Il valore predefinito è 60 minuti. <code>0s</code> disattiva l’arresto per inattività. Se Devolutions CLI non può leggere il valore, il comando che avvierebbe il processo in background fallisce con <code>invalidParameterValue</code>.</td></tr><tr><td>opzione <code>--daemon</code> o <code>DEVO_DAEMON_MODE</code></td><td><code>auto</code> (predefinito): avvia il processo in background quando serve. <code>require</code>: ne usa uno già in esecuzione, senza mai avviarne uno. <code>never</code>: non lo contatta, quindi i comandi che ne hanno bisogno non riescono.</td></tr><tr><td>Opzione <code>--no-daemon-autostart</code> o <code>DEVO_DAEMON_AUTOSTART</code></td><td>Non avviare automaticamente il processo in background. Imposti la variabile su <code>0</code>, <code>false</code> o <code>no</code> per disattivare l’avvio automatico.</td></tr></tbody></table>

Con `require`, oppure con l’avvio automatico disattivato, avvii lei stesso il processo all’inizio del job:

```bash
devo daemon ensure
```

{% hint style="info" %}
Imposti le variabili d’ambiente che Devolutions CLI legge in seguito, come la variabile che contiene il segreto dell’applicazione, **prima** del primo comando `devo`. Il processo in background legge il suo ambiente all’avvio. Consulti [Accedere da una pipeline CI](/cli/it/per-devops-e-amministratori/automate/ci-sign-in.md).
{% endhint %}

## Ripulire alla fine del job

Esegua questi comandi in un passaggio che viene sempre eseguito, anche quando il job non riesce:

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

* `devo logout` cancella l’autenticazione memorizzata del contesto.
* `devo daemon stop --wait` arresta il processo in background di questa cartella di configurazione e attende che sia terminato. Se non ne è in esecuzione nessuno, non fa nulla.
* Elimini la cartella di configurazione per ultima: `devo daemon stop` la usa per trovare il processo in background.

Sugli agenti di build eliminati dopo ogni processo, come i contenitori o le macchine virtuali temporanee, la pulizia non è necessaria, ma non costa nulla.

## Buono a sapersi

* Verifichi che l’agente sia pronto con `devo doctor`. Mostra un’istantanea di diagnostica senza avviare il processo in background. Consulti [Raccogliere la diagnostica per il supporto](/cli/it/aiuto/troubleshooting/collect-diagnostics.md).
* Se un comando segnala che il processo in background non è disponibile, consulti [Il processo in background non si avvia](/cli/it/aiuto/troubleshooting/daemon-wont-start.md).
* Tutte le variabili d’ambiente sono elencate in [Variabili d’ambiente](/cli/it/riferimento/environment-variables.md).

## Successivo

* [Sign in from a CI pipeline](/cli/it/per-devops-e-amministratori/automate/ci-sign-in.md)
* [Read results as JSON](/cli/it/per-devops-e-amministratori/automate/json-output.md)
* [Install Devolutions CLI](/cli/it/riferimento/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/it/per-devops-e-amministratori/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.
