View a markdown version of this page

Tutorial: Configurare un runner CodeBuild-hosted Buildkite - AWS CodeBuild

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Configurare un runner CodeBuild-hosted Buildkite

Questo tutorial mostra come configurare i tuoi CodeBuild progetti per eseguire i lavori di Buildkite. Per ulteriori informazioni sull'uso di Buildkite con, vedi. CodeBuild Self-managed Buildkite Runner in AWS CodeBuild

Per completare questo tutorial, è necessario innanzitutto:

  • Avere accesso a un'organizzazione Buildkite. Per ulteriori informazioni sulla configurazione di un account e di un'organizzazione Buildkite, puoi seguire questo tutorial introduttivo.

  • Crea una pipeline, un cluster e una coda Buildkite configurati per utilizzare runner ospitati autonomamente. Per ulteriori informazioni sulla configurazione di queste risorse, puoi fare riferimento al Buildkite Pipeline Setup Tutorial. https://buildkite.com/docs/pipelines/create-your-own

    Crea un progetto in Buildkite

Fase 1: Genera un token agente Buildkite

In questo passaggio, genererai un token agente all'interno di Buildkite che verrà utilizzato per autenticare i runner ospitati autonomamente. CodeBuild Per ulteriori informazioni su questa risorsa, consulta Buildkite Agent Tokens. https://buildkite.com/docs/agent/v3/tokens

Per generare un token agente Buildkite
  1. Nel tuo cluster Buildkite, scegli Agent Tokens, quindi scegli New Token.

  2. Aggiungi una descrizione al token e fai clic su Crea token.

  3. Salva il valore del token dell'agente, poiché verrà utilizzato in seguito durante la configurazione CodeBuild del progetto.

    Token agente in Buildkite

Fase 2: Creare un CodeBuild progetto con un webhook

Per creare un CodeBuild progetto con un webhook
  1. Apri la AWS CodeBuild console all'indirizzo. https://console.aws.amazon.com/codesuite/codebuild/home

  2. Crea un progetto di compilazione ospitato autonomamente. Per informazioni, consulta Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console).

    • In Configurazione del progetto, seleziona Progetto Runner. In Runner:

      • Per il provider Runner, scegli Buildkite.

      • Per il token agente Buildkite, scegli Crea un nuovo token agente utilizzando la pagina di creazione segreta. Ti verrà richiesto di creare un nuovo token segreto AWS Secrets Manager con un valore segreto uguale al token dell'agente Buildkite che hai generato sopra.

      • (Facoltativo) Se desideri utilizzare le credenziali CodeBuild gestite per il tuo lavoro, seleziona il provider del repository di origine del tuo lavoro nelle opzioni delle credenziali di origine di Buildkite e verifica che le credenziali siano configurate per il tuo account. Inoltre, verifica che la tua pipeline Buildkite utilizzi Checkout tramite HTTPS.

      Nota

      Buildkite richiede le credenziali di origine all'interno dell'ambiente di compilazione per estrarre il codice sorgente per il tuo lavoro. Consulta le opzioni disponibili Autenticazione di Buildkite in un repository privato per le credenziali di origine.

    • (Facoltativo) Nell'ambiente:

      • Scegli un'immagine di ambiente supportata ed esegui il calcolo.

        Nota che hai la possibilità di sovrascrivere le impostazioni dell'immagine e dell'istanza usando un'etichetta nei passaggi YAML di Buildkite. Per ulteriori informazioni, consulta Passaggio 4: aggiorna i passaggi della pipeline Buildkite.

    • (Opzionale) In Buildspec:

      • Il tuo buildspec verrà ignorato per impostazione predefinita a meno che non venga aggiunto come etichetta. buildspec-override: "true" Invece, lo CodeBuild sovrascriverà per utilizzare i comandi che configureranno il runner self-hosted.

        Nota

        CodeBuild non supporta i file buildspec per le build di runner self-hosted di Buildkite. Per le buildspecs in linea, dovrai abilitare git-credential-helper nel tuo buildspec se hai configurato le credenziali di origine gestite CodeBuild

  3. Continua con i valori predefiniti e poi scegli Create build project.

  4. Salva l'URL del payload e i valori segreti dal popup Crea Webhook. Segui le istruzioni nel popup per creare un nuovo webhook aziendale Buildkite o continua con la sezione successiva.

Passo 3: Crea un webhook all'interno di Buildkite CodeBuild

In questo passaggio, utilizzerai i valori Payload URL e Secret del CodeBuild webhook per creare un nuovo webhook all'interno di Buildkite. Questo webhook verrà utilizzato per attivare le build all'avvio di un job Buildkite valido. CodeBuild

Per creare un nuovo webhook in Buildkite
  1. Apri la pagina delle impostazioni della tua organizzazione Buildkite.

  2. In Integrazioni, seleziona Servizi di notifica.

  3. Scegli Aggiungi accanto alla casella Webhook. Nella pagina Aggiungi notifica Webhook, utilizza la seguente configurazione:

    1. In Webhook URL, aggiungi il valore dell'URL del Payload salvato.

    2. In Token, verifica che l'opzione Invia il token con nome X-Buildkite-Token sia selezionata. Aggiungi il valore Secret del tuo webhook al campo Token.

    3. In, verifica che l'opzione Invia il token con nome X-Buildkite-Token sia selezionata. Aggiungi il valore Secret del tuo webhook al campo Token.

    4. In Eventi, seleziona l'evento job.scheduled webhook.

    5. (Facoltativo) In Pipelines, puoi opzionalmente scegliere di attivare solo le build per una pipeline specifica.

  4. Scegli Aggiungi notifica Webhook.

Passaggio 4: aggiorna i passaggi della pipeline Buildkite

In questo passaggio, aggiorna i passaggi della pipeline Buildkite per aggiungere le etichette necessarie e le sostituzioni opzionali. Per l'elenco completo delle sostituzioni delle etichette supportate, consulta. Le sostituzioni delle etichette sono supportate dal runner Buildkite CodeBuild-hosted

Aggiorna i passaggi della pipeline
  1. Apri la pagina dei passaggi della pipeline Buildkite scegliendo la tua pipeline Buildkite, scegliendo Impostazioni e quindi scegliendo Steps.

    Se non l'hai già fatto, scegli Converti in passaggi YAML.

    Passaggi per aggiornare YAML.
  2. Come minimo, dovrai specificare un tag agente Buildkite che faccia riferimento al nome della tua pipeline. CodeBuild Il nome del progetto è necessario per collegare le impostazioni AWS relative del lavoro Buildkite a un progetto specifico. CodeBuild Includendo il nome del progetto in YAML, CodeBuild è possibile richiamare lavori con le impostazioni corrette del progetto.

    agents: project: "codebuild-<project name>"

    Quello che segue è un esempio dei passaggi della pipeline di Buildkite con solo il tag dell'etichetta del progetto:

    agents: project: "codebuild-myProject" steps: - command: "echo \"Hello World\""

    Puoi anche sovrascrivere l'immagine e il tipo di calcolo nell'etichetta. Consulta Calcola le immagini supportate dal runner Buildkite CodeBuild-hosted l'elenco delle immagini disponibili. Il tipo di calcolo e l'immagine nell'etichetta sovrascriveranno le impostazioni dell'ambiente del progetto. Per sovrascrivere le impostazioni dell'ambiente per una build di elaborazione CodeBuild EC2 o Lambda, usa la seguente sintassi:

    agents: project: "codebuild-<project name>" image: "<environment-type>-<image-identifier>" instance-size: "<instance-size>"

    Di seguito è riportato un esempio di passaggi della pipeline Buildkite con sostituzioni delle dimensioni dell'immagine e dell'istanza:

    agents: project: "codebuild-myProject" image: "arm-3.0" instance-size: "small" steps: - command: "echo \"Hello World\""

    Puoi sovrascrivere il parco macchine utilizzato per la tua build nell'etichetta. Ciò sostituirà le impostazioni della flotta configurate nel progetto per utilizzare la flotta specificata. Per ulteriori informazioni, consulta Eseguire build su flotte con capacità riservata.

    Per sovrascrivere le impostazioni del parco macchine per una build di calcolo di Amazon EC2, utilizza la seguente sintassi:

    agents: project: "codebuild-<project name>" fleet: "<fleet-name>"

    Per sovrascrivere sia la flotta che l'immagine utilizzate per la compilazione, utilizza la seguente sintassi:

    agents: project: "codebuild-<project name>" fleet: "<fleet-name>" image: "<environment-type>-<image-identifier>"

    Di seguito è riportato un esempio delle fasi della pipeline di Buildkite con sostituzioni di flotte e immagini:

    agents: project: "codebuild-myProject" fleet: "myFleet" image: "arm-3.0" steps: - command: "echo \"Hello World\""
  3. Puoi scegliere di eseguire comandi buildspec in linea durante la build autonoma di Buildkite runner (vedi per maggiori dettagli). Eseguite i comandi buildspec per le fasi INSTALL, PRE_BUILD e POST_BUILD Per specificare che la CodeBuild build debba eseguire i comandi buildspec durante la build del runner self-hosted di Buildkite, usate la seguente sintassi:

    agents: project: "codebuild-<project name>" buildspec-override: "true"

    Quello che segue è un esempio di pipeline Buildkite con un override buildspec:

    agents: project: "codebuild-myProject" buildspec-override: "true" steps: - command: "echo \"Hello World\""
  4. Facoltativamente, puoi fornire etichette diverse da quelle supportate. CodeBuild Queste etichette verranno ignorate allo scopo di sovrascrivere gli attributi della build, ma non daranno esito negativo alla richiesta del webhook. Ad esempio, l'aggiunta myLabel: "testLabel" come etichetta non impedirà l'esecuzione della build.

Passaggio 5: rivedi i risultati

Ogni volta che un lavoro Buildkite viene avviato nella tua pipeline, CodeBuild riceverai un evento webhook tramite il job.scheduled webhook Buildkite. Per ogni lavoro nella tua build Buildkite, ne CodeBuild avvierai una per eseguire un temporaneo Buildkite runner. Il runner è responsabile dell'esecuzione di un singolo job di Buildkite. Una volta completato il lavoro, il corridore e il processo di compilazione associato verranno immediatamente interrotti.

Per visualizzare i log dei lavori del flusso di lavoro, accedi alla pipeline di Buildkite e seleziona la build più recente (puoi attivare una nuova build scegliendo Nuova build). Una volta avviata e CodeBuild selezionata la build associata a ciascuno dei tuoi lavori, dovresti vedere i log relativi al lavoro nella console Buildkite

Rivedi i risultati.

Autenticazione di Buildkite in un repository privato

Se hai un repository privato configurato all'interno della tua pipeline Buildkite, Buildkite richiede autorizzazioni aggiuntive all'interno dell'ambiente di compilazione per estrarre il repository, poiché Buildkite non vende credenziali ai runner ospitati autonomamente per estrarle da repository privati. Per autenticare il runner agent self-hosted di Buildkite nel tuo repository sorgente privato esterno, puoi usare una delle seguenti opzioni.

Per autenticarsi con CodeBuild

CodeBuild offre la gestione gestita delle credenziali per i tipi di origine supportati. Per utilizzare le credenziali di CodeBuild origine per accedere all'archivio di origine del lavoro, puoi utilizzare i seguenti passaggi:

  1. Nella CodeBuild console, vai a Modifica progetto o crea un nuovo CodeBuild progetto seguendo i passaggi indicati. Fase 2: Creare un CodeBuild progetto con un webhook

  2. Nelle opzioni delle credenziali di origine di Buildkite, seleziona il fornitore del repository di origine del tuo lavoro.

    1. Se desideri utilizzare le CodeBuild credenziali a livello di account, verifica che siano configurate correttamente. Inoltre, se il tuo progetto ha una buildspec in linea configurata, verifica che git-credential-helper sia abilitato. https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.env.git-credential-helper

    2. Se desideri utilizzare le credenziali a livello di progetto, seleziona Usa CodeBuild le credenziali di sostituzione solo per questo progetto e configura le credenziali per il tuo progetto.

  3. Nelle impostazioni della pipeline Buildkite, vai a Impostazioni del repository. Imposta le impostazioni di check-out del tuo repository di origine su Checkout tramite HTTPS

    Rivedi i risultati.
Per autenticarti con i segreti di Buildkite

Buildkite mantiene un plugin ssh-checkout che può essere usato per autenticare il runner self-hosted in un repository di sorgenti esterno utilizzando una chiave ssh. Il valore della chiave viene memorizzato come segreto di Buildkite e recuperato automaticamente dall'agente runner self-hosted di Buildkite quando si tenta di estrarre un repository privato. Per configurare il plugin ssh-checkout per la tua pipeline Buildkite, puoi utilizzare i seguenti passaggi:

  1. Genera una chiave ssh privata e pubblica usando il tuo indirizzo email, ad es. ssh-keygen -t rsa -b 4096 -C "myEmail@address.com"

  2. Aggiungi la chiave pubblica al tuo archivio di sorgenti privato. Ad esempio, puoi seguire questa guida per aggiungere una chiave a un GitHub account.

  3. Aggiungi una nuova chiave SSH segreta al tuo cluster Buildkite. All'interno del cluster Buildkite, seleziona Secrets → New Secret. Aggiungi un nome per il tuo segreto nel campo Chiave e aggiungi la tua chiave SSH privata nel campo Valore:

    Rivedi i risultati.
  4. All'interno della pipeline Buildkite, accedi alle impostazioni del tuo repository e imposta il checkout in modo che utilizzi SSH.

    Rivedi i risultati.
  5. Aggiorna i passaggi YAML della pipeline per utilizzare il plugin. git-ssh-checkout Ad esempio, il seguente file YAML della pipeline utilizza l'azione di checkout con la chiave segreta Buildkite sopra riportata:

    agents: project: "codebuild-myProject" steps: - command: "npm run build" plugins: - git-ssh-checkout#v0.4.1: ssh-secret-key-name: 'SOURCE_SSH_KEY'
  6. Quando si esegue un processo di esecuzione ospitato autonomamente da Buildkite all'interno CodeBuild, Buildkite ora utilizzerà automaticamente il valore segreto configurato durante l'estrazione del repository privato

Opzioni di configurazione di Runner

È possibile specificare le seguenti variabili di ambiente nella configurazione del progetto per modificare la configurazione di configurazione dei runner ospitati autonomamente:

  • CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN: CodeBuild recupererà il valore segreto configurato come valore di questa variabile di ambiente per registrare l'agente AWS Secrets Manager runner self-hosted di Buildkite. Questa variabile d'ambiente deve essere di tipo SECRETS_MANAGER e il valore deve essere il nome del tuo segreto in Secrets Manager. Una variabile di ambiente del token dell'agente Buildkite è richiesta per tutti i progetti Buildkite runner.

  • CODEBUILD_CONFIG_BUILDKITE_CREDENTIAL_DISABLE: per impostazione predefinita, CodeBuild caricherà le credenziali di origine a livello di account o progetto nell'ambiente di compilazione, poiché queste credenziali vengono utilizzate dall'agente Buildkite per estrarre il repository di origine del lavoro. Per disabilitare questo comportamento, puoi aggiungere questa variabile di ambiente al tuo progetto con il valore impostato sutrue, che impedirà il caricamento delle credenziali di origine nell'ambiente di compilazione.