Gestire gli strumenti di esecuzione

Completato

In questa sezione verranno identificati i diversi strumenti e le varie strategie disponibili in GitHub Enterprise Cloud e GitHub Enterprise Server per gestire l'utilizzo degli strumenti di esecuzione di GitHub Actions a livello aziendale.

Scegliere uno strumento di esecuzione appropriato per il flusso di lavoro

Due tipi di strumenti di esecuzione possono eseguire flussi di lavoro di GitHub Actions: Strumenti di esecuzione ospitati da GitHub e strumenti di esecuzione self-hosted.

Nota

Gli strumenti di esecuzione ospitati da GitHub sono disponibili solo per Enterprise Cloud. Se si dispone di un'istanza Enterprise Server, questa sezione può essere quindi ignorata.

Gli strumenti di esecuzione ospitati da GitHub offrono un modo più semplice e rapido di eseguire i flussi di lavoro, mentre gli strumenti self-hosted rappresentano una soluzione altamente configurabile con cui eseguire i flussi di lavoro nell'ambiente personalizzato. Se, ad esempio, è necessario usare un elenco IP consentiti per l'organizzazione o una specifica configurazione hardware per l'esecuzione dei flussi di lavoro, scegliere uno strumento di esecuzione self-hosted.

La tabella seguente mette a confronto gli strumenti di esecuzione self-hosted con quelli ospitati da GitHub. È opportuno quindi consultarla per scegliere lo strumento di esecuzione più appropriato al carico di lavoro personale.

Strumenti di esecuzione ospitati da GitHub Strumenti di esecuzione self-hosted
Ricevono aggiornamenti automatici per il sistema operativo, pacchetti e strumenti preinstallati e l'applicazione dello strumento di esecuzione self-hosted. Ricevono aggiornamenti automatici solo per l'applicazione dello strumento di esecuzione self-hosted. È responsabilità dell'utente, quindi, aggiornare il sistema operativo e tutti gli altri componenti software.
Sono gestiti da GitHub. Possono usare servizi cloud o computer locali per i quali si è già pagato. Sono personalizzabili in base ai requisiti hardware, del sistema operativo, software e di sicurezza.
Forniscono un'istanza pulita per ogni esecuzione del processo. Non richiedono un'istanza pulita per ogni esecuzione del processo.
Usano i minuti gratuiti del piano di GitHub in uso e applicano tariffe al minuto dopo aver esaurito i minuti gratuiti. Possono essere usati gratuitamente con GitHub Actions, ma l'utente è responsabile dei costi di gestione dei computer in cui vengono eseguiti.

Configurare l'accesso agli strumenti di esecuzione self-hosted

In Enterprise Cloud ed Enterprise Server, i gruppi di strumenti di esecuzione self-hosted consentono di controllare l'accesso agli strumenti di esecuzione self-hosted a livello di azienda e organizzazione. Questa funzionalità può risultare utile per i casi in cui è necessario limitare l'accesso agli strumenti di esecuzione self-hosted a organizzazioni o utenti specifici. Ad esempio, in base al livello di attendibilità di tali organizzazioni o utenti o per attenuare i rischi per la sicurezza.

Si supponga di voler autorizzare solo specifiche organizzazioni dell'istanza aziendale a distribuire il codice nell'ambiente di produzione. È possibile creare un gruppo contenente tutti gli strumenti di esecuzione che distribuiscono codice nell'ambiente di produzione a livello aziendale e limitare l'accesso al gruppo alle sole organizzazioni autorizzate a distribuire codice.

Per creare gruppi a livello aziendale, passare all'account aziendale e quindi selezionare Policies > Actions (Criteri > Azioni) nella barra laterale. Nella scheda Gruppi di strumenti di esecuzione selezionare Nuovo gruppo di strumenti di esecuzione. La schermata visualizzata consente di specificare un nome per il gruppo e i criteri di accesso per le organizzazioni.

Screenshot della schermata New group (Nome gruppo) con un nome di gruppo di esempio per tutte le organizzazioni.

Per creare gruppi a livello di organizzazione, passare alle Impostazioni dell'organizzazione e quindi selezionare Actions (Azioni) nella barra laterale. Selezionare Gruppi di strumenti di esecuzionee quindi Nuovo gruppo di strumenti di esecuzione. La schermata visualizzata consente di specificare un nome per il gruppo e i criteri di accesso per i repository.

Screenshot della schermata New group (Nome gruppo) con un nome di gruppo di esempio per tutti i repository.

Quando si creano nuovi strumenti di esecuzione, questi vengono automaticamente assegnati al gruppo predefinito all'interno dell'azienda o dell'organizzazione. Gli strumenti di esecuzione non possono essere contenuti contemporaneamente in più gruppi, ma Enterprise Cloud e Enterprise Server offrono entrambi la possibilità di spostarli dal gruppo predefinito a un altro gruppo.

Configurare strumenti di esecuzione self-hosted per l'uso aziendale

Sia Enterprise Cloud che Enterprise Server offrono varie funzionalità che consentono di personalizzare gli strumenti di esecuzione self-hosted per l'uso aziendale, Alcune di queste funzionalità includono: etichette, server proxy ed elenchi IP consentiti.

Etichette

Quando vengono aggiunti a GitHub Actions, gli strumenti di esecuzione self-hosted ricevono automaticamente etichette predefinite, che indicano il sistema operativo e l'architettura hardware dello strumento di esecuzione, come illustrato nella tabella seguente:

Etichetta predefinita Descrizione
self-hosted Etichetta predefinita applicata a tutti gli strumenti di esecuzione self-hosted
linux, windows o macOS Applicata a seconda del sistema operativo dello strumento di esecuzione.
x64, ARM o ARM64 Applicata a seconda dell'architettura hardware dello strumento di esecuzione.

Facendo riferimento alle etichette predefinite, Enterprise Cloud ed Enterprise Server consentono di creare e aggiungere agli strumenti di esecuzione etichette personalizzate, che risultano particolarmente utili quando è necessario avviare processi in strumenti di esecuzione con funzionalità specifiche. Se, ad esempio, un processo presente in uno dei flussi di lavoro richiede un tipo specifico di hardware grafico, è possibile creare un'etichetta personalizzata gpu e applicarla solo agli strumenti di esecuzione in cui è installato questo componente hardware. In questo modo, tutti gli strumenti di esecuzione con l'etichetta gpu saranno idonei a eseguire il processo.

Per aggiungere un'etichetta a uno strumento di esecuzione self-hosted, passare alle impostazioni di GitHub Actions dell'organizzazione, del repository o dell'azienda in cui è registrato lo strumento di esecuzione self-hosted (in Actions per un'organizzazione o un repository, in Policies > Actions per un'azienda). Da tale posizione:

  1. Individuare l'elenco degli strumenti di esecuzione in Strumenti di esecuzione. Se lo strumento di esecuzione si trova in un gruppo, individuare il gruppo di strumenti di esecuzione e selezionare il relativo elenco a discesa per visualizzare l'elenco degli strumenti di esecuzione.

    Screenshot di un gruppo di strumenti di esecuzione di esempio con l'elenco a discesa evidenziato.

  2. Identificare lo strumento di esecuzione da aggiornare e selezionare l'elenco a discesa delle etichette per visualizzare il menu di selezione dell'etichetta, in cui sono presenti tutte le etichette personalizzate disponibili per lo strumento di esecuzione self-hosted. Le etichette già assegnate allo strumento di esecuzione self-hosted sono contrassegnate con un segno di spunta.

    Screenshot di uno strumento di esecuzione di esempio con il menu delle etichette visualizzato.

  3. Selezionare un'etichetta esistente per aggiungerla allo strumento di esecuzione oppure digitare il nome della nuova etichetta nel campo Filter labels (Filtra etichette) e selezionare Create new label (Crea nuova etichetta). L'etichetta viene automaticamente aggiunta allo strumento di esecuzione quando viene creata.

Server proxy

Se è necessario uno strumento di esecuzione self-hosted per comunicare con GitHub tramite un server proxy, sia Enterprise Cloud che Enterprise Server consentono di modificare le configurazioni del proxy usando le variabili di ambiente seguenti:

Variabile di ambiente Descrizione
https_proxy URL proxy per il traffico HTTPS. Se necessario, è possibile includere anche le credenziali di autenticazione di base. Ad esempio:
http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxy URL proxy per il traffico HTTP. Se necessario, è possibile includere anche le credenziali di autenticazione di base. Ad esempio:
http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxy Elenco delimitato da virgole degli host che non devono usare un proxy. Solo i nomi host sono consentiti in no_proxy. Non è possibile usare un indirizzo IP. Ad esempio:
example.com
example.com,myserver.local:443,example.org

Nota

Le variabili di ambiente proxy vengono lette nel momento in cui viene avviata l'applicazione dello strumento di esecuzione self-hosted ed è quindi necessario impostare le variabili di ambiente prima di configurare o avviare l'applicazione. Se la configurazione del proxy viene modificata, è necessario riavviare l'applicazione dello strumento di esecuzione self-hosted.

In Windows, i nomi delle variabili di ambiente proxy non supportano la distinzione tra maiuscole e minuscole. In Linux e macOS, è consigliabile usare la lettera minuscola per tutte le variabili di ambiente. Se in Linux o macOS una variabile di ambiente è presente sia in lettere minuscole che in lettere maiuscole, ad esempio https_proxy e HTTPS_PROXY, l'applicazione dello strumento di esecuzione self-hosted userà quella in lettere minuscole.

Elenco IP consentiti

Se l'organizzazione Enterprise Cloud o Enterprise Server ha configurato un elenco IP consentiti, è necessario aggiungere all'elenco l'indirizzo IP o l'intervallo di indirizzi IP degli strumenti di esecuzione self-hosted per consentirne le comunicazioni con GitHub.

Per aggiungere l'indirizzo IP o l'intervallo di indirizzi IP degli strumenti di esecuzione self-hosted all'elenco IP consentiti di un'organizzazione, passare alla sezione Settings (Impostazioni) dell'organizzazione e selezionare Organization security (Sicurezza organizzazione) nella barra laterale. In IP Address (Indirizzo IP) aggiungere l'indirizzo IP o l'intervallo di indirizzi IP degli strumenti di esecuzione self-hosted nella notazione CIDR e selezionare + Add (+ Aggiungi).

Monitorare e risolvere i problemi degli strumenti di esecuzione self-hosted

Sia Enterprise Cloud che Enterprise Server offrono strumenti che consentono di monitorare, risolvere i problemi e aggiornare gli strumenti di esecuzione self-hosted. Se improvvisamente le compilazioni non riescono più oppure si bloccano alcuni file nel repository o le esecuzioni del flusso di lavoro, le funzionalità di risoluzione dei problemi dello strumento che esegue il flusso di lavoro possono contribuire alla risoluzione del problema.

Per risolvere i problemi di uno strumento di esecuzione self-hosted, è possibile provare a effettuare i passaggi seguenti:

  1. Controllare lo stato dello strumento di esecuzione nelle impostazioni di GitHub Actions dell'organizzazione, del repository o dell'azienda in cui è registrato lo strumento di esecuzione self-hosted (in Actions per un'organizzazione o un repository, in Policies > Actions per un'azienda).
  2. Controllare le attività e gli aggiornamenti automatici dello strumento di esecuzione nei file Runner_ e nella cartella _diag.
  3. Esaminare lo stato dei processi avviati dallo strumento di esecuzione nei file Worker_ e nella cartella _diag.

In base al sistema operativo dello strumento di esecuzione, è possibile effettuare passaggi aggiuntivi, come illustrato nella tabella seguente:

Mac Windows Linux
Controllare il servizio dell'applicazione dello strumento di esecuzione self-hosted con launchd Controllare il servizio dell'applicazione dello strumento di esecuzione self-hosted con PowerShell - Controllare il servizio dell'applicazione dello strumento di esecuzione self-hosted con journalctl
- Se i processi richiedono l'uso di contenitori, verificare che Docker sia installato e in esecuzione e che disponga delle autorizzazioni per usare systemctl