Esercitazione: Usare Istanze di Azure Container come agente di compilazione Jenkins

Importante

Molti servizi di Azure dispongono di plug-in Jenkins. Alcuni di questi plug-in non saranno supportati a partire dal 29 febbraio 2024. L'interfaccia della riga di comando di Azure è il modo attualmente consigliato per integrare Jenkins con i servizi di Azure. Per altre informazioni, vedere l'articolo Plug-in Jenkins per Azure.

Istanze di Azure Container offre un ambiente isolato on demand utilizzabile in modalità burst per eseguire carichi di lavoro in contenitori. Grazie a questi attributi, le istanze di contenitore di Azure sono un'ottima piattaforma per l'esecuzione di processi di compilazione di Jenkins su vasta scala. Questo articolo illustra come distribuire un servizio Istanze di Azure Container e aggiungerlo come agente di compilazione permanente per un controller Jenkins.

Per altre informazioni su Istanze di Azure Container, vedere Informazioni su Istanze di Azure Container.

Prerequisiti

Preparare il controller Jenkins

  1. Passare al portale di Jenkins.

  2. Nel menu selezionare Manage Jenkins (Gestisci Jenkins).

  3. In System Configuration (Configurazione del sistema) selezionare Configure System (Configura sistema).

  4. Verificare che l'opzione Jenkins URL (URL di Jenkins) sia impostata sull'indirizzo HTTP dell'installazione di Jenkins, ossia http://<your_host>.<your_domain>:8080/.

  5. Nel menu selezionare Manage Jenkins (Gestisci Jenkins).

  6. In Security (Sicurezza) selezionare Configure Global Security (Configura sicurezza globale).

  7. In Agents (Agenti) specificare la porta Fixed (Fissa) e immettere il numero di porta appropriato per l'ambiente.

    Esempio di configurazione: Configure TCP port

  8. Seleziona Salva.

Creare l'agente di lavoro di Jenkins

  1. Passare al portale di Jenkins.

  2. Nel menu selezionare Manage Jenkins (Gestisci Jenkins).

  3. In System Configuration (Configurazione del sistema) selezionare Manage Nodes and Clouds (Gestisci nodi e cloud).

  4. Scegliere New Node (Nuovo nodo) dal menu.

  5. Immettere un valore per Node Name (Nome nodo).

  6. Selezionare Permanent Agent (Agente permanente).

  7. Seleziona OK.

  8. Immettere un valore per Remote root directory (Directory radice remota). Ad esempio, /home/jenkins/work

  9. Aggiungere un'etichetta (le etichette vengono usate per raggruppare più agenti in un gruppo logico. Un esempio di etichetta è linux quello di raggruppare gli agenti Linux con il valore di linux.

  10. Impostare Launch method (Metodo di avvio) su Launch agent by connecting to the master (Avvia agente tramite connessione al master).

  11. Verificare che tutti i campi obbligatori siano stati specificati o immessi:

    Example Jenkins agent configuration

  12. Seleziona Salva.

  13. Nella pagina di stato dell'agente dovrebbero essere visualizzati i valori JENKINS_SECRET e AGENT_NAME. Lo screenshot seguente mostra come identificare i valori. Entrambi i valori sono necessari per creare l'istanza di Azure Container.

    The build-agent secret is displays after its successful creation.

Creare un'istanza di Azure Container con l'interfaccia della riga di comando

  1. Usare il comando az group create per creare un gruppo di risorse di Azure.

    az group create --name my-resourcegroup --location westus
    
  2. Usare az container create per creare un'istanza di Azure Container. Sostituire i segnaposto con i valori ottenuti durante la creazione dell'agente di lavoro.

    az container create \
      --name my-dock \
      --resource-group my-resourcegroup \
      --ip-address Public --image jenkins/inbound-agent:latest \
      --os-type linux \
      --ports 80 \
      --command-line "jenkins-agent -url http://jenkinsserver:port <JENKINS_SECRET> <AGENT_NAME>"
    

    Sostituire http://jenkinsserver:port, <JENKINS_SECRET>e <AGENT_NAME> con le informazioni del controller e dell'agente Jenkins. Dopo l'avvio, il contenitore si connetterà automaticamente al server del controller Jenkins.

  3. Tornare al dashboard di Jenkins e controllare lo stato dell'agente.

    Agent has started successfully

    Nota

    Gli agenti Jenkins si connettono al controller tramite la porta , assicurarsi che la porta 5000sia consentita in ingresso al controller Jenkins.

Creare un'attività di compilazione

A questo punto, viene creato un processo di compilazione Jenkins per illustrare le compilazioni Jenkins in un'istanza di contenitore di Azure.

  1. Selezionare New item (Nuovo elemento), assegnare un nome al progetto di compilazione, ad esempio aci-demo, selezionare Freestyle project (Progetto Freestyle) e fare clic su OK.

    Box for the name of the build job, and list of project types

  2. In General (Generale) verificare che sia selezionata l'opzione Restrict where this project can be run (Limita i casi in cui eseguire il progetto). Immettere linux per Label Expression (Espressione etichetta). Questa configurazione assicura che il processo di compilazione venga eseguito nel cloud delle istanze di contenitore di Azure.

  3. In Build (Compilazione) selezionare Add build step (Aggiungi passaggio di compilazione) e quindi selezionare Execute Shell (Esegui shell). Immettere echo "aci-demo" come comando.

  4. Seleziona Salva.

Eseguire il processo di compilazione

Per testare il processo di compilazione e osservare Istanze di Azure Container avviare manualmente una compilazione.

  1. Selezionare Build Now (Compila) per avviare un processo di compilazione. Una volta avviato il processo, verrà visualizzato uno stato simile all'immagine seguente:

  2. Fare clic su build #1 nella cronologia di compilazione.

  3. Selezionare Output della console per visualizzare l'output delle compilazioni.

Passaggi successivi