Introduzione: Installare Jenkins in una macchina virtuale Linux di Azure

Questo articolo illustra come installare Jenkins in una macchina virtuale Ubuntu Linux con gli strumenti e i plug-in configurati per l'uso con Azure.

In questo articolo si apprenderà come:

  • Creare un file di configurazione che scarica e installa Jenkins
  • Creare un gruppo di risorse
  • Crea una macchina virtuale con il file di configurazione
  • Aprire la porta 8080 per accedere a Jenkins nella macchina virtuale
  • Connettersi alla macchina virtuale tramite SSH
  • Configurare un processo Jenkins di esempio basato su una semplice app Java in GitHub
  • Compilare il processo Jenkins di esempio

1. Configurare l'ambiente

  • Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

2. Aprire Cloud Shell

  1. Se è già aperta una sessione di Cloud Shell, è possibile passare alla sezione successiva.

  2. Passare al portale di Azure

  3. Se necessario, accedere alla sottoscrizione di Azure e modificare la directory di Azure.

  4. Aprire Cloud Shell.

    Open Cloud Shell from the top menu in the Azure portal.

  5. Se Cloud Shell non è stato usato in precedenza, configurare le impostazioni dell'ambiente e di archiviazione.

  6. Selezionare l'ambiente della riga di comando.

    Select the CLI you want to use in Cloud Shell.

3. Creare una macchina virtuale

  1. Creare una directory di test denominata jenkins-get-started.

  2. Passare alla directory di test.

  3. Creare un file denominato cloud-init-jenkins.txt.

  4. Incollare il codice seguente nel nuovo file:

    #cloud-config
    package_upgrade: true
    runcmd:
      - sudo apt install openjdk-11-jre -y
      - curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
      -  echo 'deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/' | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
      - sudo apt-get update && sudo apt-get install jenkins -y
      - sudo service jenkins restart
    
    
    
  5. Eseguire az group create per creare un gruppo di risorse.

    az group create --name jenkins-get-started-rg --location eastus
    
  6. Eseguire az vm create per creare una macchina virtuale.

    az vm create \
    --resource-group jenkins-get-started-rg \
    --name jenkins-get-started-vm \
    --image UbuntuLTS \
    --admin-username "azureuser" \
    --generate-ssh-keys \
    --public-ip-sku Standard \
    --custom-data cloud-init-jenkins.txt
    
  7. Eseguire az vm list per verificare la creazione (e lo stato) della nuova macchina virtuale.

    az vm list -d -o table --query "[?name=='jenkins-get-started-vm']"
    
  8. Quando Jenkins viene eseguito sulla porta 8080, eseguire az vm open per aprire la porta 8080 nella nuova macchina virtuale.

    az vm open-port \
    --resource-group jenkins-get-started-rg \
    --name jenkins-get-started-vm  \
    --port 8080 --priority 1010
    

4. Configurare Jenkins

  1. Eseguire az vm show per ottenere l'indirizzo IP pubblico per la macchina virtuale di esempio.

    az vm show \
    --resource-group jenkins-get-started-rg \
    --name jenkins-get-started-vm -d \
    --query [publicIps] \
    --output tsv
    

    Punti principali:

    • Il parametro --query limita l'output agli indirizzi IP pubblici per la macchina virtuale.
  2. Usando l'indirizzo IP recuperato nel passaggio precedente, stabilire una sessione SSH con la macchina virtuale. Sarà necessario confermare la richiesta di connessione.

    ssh azureuser@<ip_address>
    

    Punti principali:

    • quando la connessione viene stabilita, il prompt di Cloud Shell include il nome utente e il nome macchina virtuale: azureuser@jenkins-get-started-vm.
  3. Verificare che Jenkins sia in esecuzione recuperando lo stato del servizio Jenkins.

    service jenkins status
    

    Punti principali:

    • Se viene visualizzato un errore relativo al servizio non esistente, potrebbe essere necessario attendere un paio di minuti per l'installazione e l'inizializzazione di tutti gli elementi.
  4. Ottenere la password generata automaticamente di Jenkins.

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    
  5. Usando l'indirizzo IP, aprire l'URL seguente in un browser: http://<ip_address>:8080

  6. Immettere la password recuperata in precedenza e selezionare Continue (Continua).

    Initial page to unlock Jenkins

  7. Selezionare Seleziona plug-in da installare.

    Select the option to install selected plug-ins

  8. Nella casella del filtro nella parte superiore della pagina immettere github. Selezionare il plug-in GitHub e selezionare Installa.

    Install the GitHub plug-ins

  9. Immettere le informazioni per il primo utente amministratore e quindi selezionare Save and Continue (Salva e continua).

    Enter information for first admin user

  10. Nella pagina Instance Configuration (Configurazione istanza) selezionare Save and Finish (Salva e fine).

    Confirmation page for instance configuration

  11. Selezionare Start using Jenkins (Inizia a usare Jenkins).

    Jenkins is ready!

5. Creare il primo processo

  1. Nella home page di Jenkins selezionare Create a job (Crea un processo).

    Jenkins console home page

  2. Immettere il nome mySampleApp per il processo, selezionare Freestyle project (Progetto Freestyle) e quindi selezionare OK.

    New job creation

  3. Selezionare la scheda Gestione del codice sorgente. Abilitare Git e immettere l'URL seguente per il valore dell'URL del repository: https://github.com/spring-guides/gs-spring-boot.git. Modificare quindi l'identificatore di ramo in */main.

    Define the Git repo

  4. Selezionare la scheda Build (Compilazione) e quindi Add build step (Aggiungi passaggio di compilazione)

    Add a new build step

  5. Dall'elenco a discesa selezionare Invoke Gradle script (Richiama script Gradle).

    Select the Gradle script option

  6. Selezionare Use Gradle Wrapper (Usa wrapper di Gradle) e quindi immettere complete in Wrapper location (Percorso wrapper) e build in Tasks (Attività).

    Gradle script options

  7. Selezionare Advanced (Avanzate) e immettere complete nel campo Root Build script (Script di compilazione radice).

    Advanced Gradle script options

  8. Scorrere fino alla parte inferiore della pagina e selezionare Save (Salva).

6. Compilare l'app Java di esempio

  1. Quando viene visualizzata la home page per il progetto, selezionare Build Now (Compila adesso) per compilare il codice e creare il pacchetto dell'app di esempio.

    Project home page

  2. Un grafico sotto l'intestazione Build History (Cronologia compilazione) indica che il processo è in fase di compilazione.

    Job-build in progress

  3. Al termine della compilazione selezionare il collegamento Workspace (Area di lavoro).

    Select the workspace link.

  4. Passare a complete/build/libs per verificare che il file .jar sia stato compilato correttamente.

    The target library verifies the build succeeded.

  5. Il server Jenkins è ora pronto per la compilazione dei progetti dell'utente in Azure.

Risoluzione dei problemi

Se si verificano problemi durante la configurazione di Jenkins, vedere la pagina di installazione di Jenkins per le istruzioni più recenti e i problemi noti.

Passaggi successivi