Code Stream consente di attivare una pipeline se si verifica una revisione del codice nel progetto Gerrit. La definizione del trigger per Gerrit include il progetto Gerrit e le pipeline da eseguire per tipi di evento diversi.

Il trigger per Gerrit utilizza un listener Gerrit nel server Gerrit da monitorare. Per definire un endpoint Gerrit in Code Stream, è necessario selezionare un progetto e immettere l'URL del server Gerrit. È quindi possibile specificare l'endpoint quando si crea un listener Gerrit in tale server.

Se si utilizza un server Gerrit come endpoint di Code Stream in un'istanza di vRealize Automation in cui è abilitato FIPS, è necessario verificare che il file di configurazione Gerrit includa le chiavi di autenticazione dei messaggi corrette. Se il file di configurazione del server Gerrit non include le chiavi di autenticazione del messaggio corrette, il server non può essere avviato correttamente e viene visualizzato il messaggio: PrivateKey/PassPhrase is incorrect

La procedura seguente illustra come definire un endpoint Gerrit che è possibile utilizzare nella definizione del listener Gerrit. Nel caso in cui sia necessario modificare un endpoint, un passaggio facoltativo alla fine della procedura illustra come e quando eseguire l'aggiornamento.

Prerequisiti

  • Verificare che sia possibile accedere al server Gerrit a cui si intende connettersi.
  • Verificare di essere un membro di un progetto in Code Stream. Se non si è membri, chiedere a un amministratore di Code Stream di essere aggiunti come membri di un progetto. Vedere Come aggiungere un progetto in Code Stream.

Procedura

  1. Definire un endpoint Gerrit.
    1. Fare clic su Configura > Endpoint e quindi su Nuovo endpoint.
    2. Selezionare un progetto e, per il tipo di endpoint, selezionare Gerrit . Quindi, immettere un nome e una descrizione.
    3. Se l'endpoint è un componente business critical nell'infrastruttura, abilitare Contrassegna come limitato.
    4. Immettere l'URL del server Gerrit.
      Per utilizzare la porta predefinita, è possibile specificare un numero di porta con l'URL o lasciare il valore vuoto.
    5. Immettere un nome utente e una password per il server Gerrit.
      Se la password deve essere crittografata, fare clic su Crea variabile e selezionare il tipo:
      • Segreta. La password viene risolta quando un utente con un ruolo qualsiasi esegue la pipeline.
      • Limitata. La password viene risolta quando un utente con ruolo di amministratore esegue la pipeline.

      Come valore, immettere la password che deve essere sicura, ad esempio la password di un server Jenkins.

    6. Per la chiave privata, immettere la chiave SSH utilizzata per accedere in modo sicuro al server Gerrit.
      Questa chiave è la chiave privata RSA che si trova nella directory .ssh.
    7. (Facoltativo) Se alla chiave privata è associata una frase d'accesso, immetterla.
      Per crittografare la passphrase, fare clic su Crea variabile e selezionare il tipo:
      • Segreta. La password viene risolta quando un utente con un ruolo qualsiasi esegue la pipeline.
      • Limitata. La password viene risolta quando un utente con ruolo di amministratore esegue la pipeline.

      Come valore, immettere la passphrase che deve essere sicura, ad esempio la passphrase per un server SSH.

  2. Fare clic su Convalida e verificare che l'endpoint Gerrit in Code Stream si connetta al server Gerrit.
    Se non si connette, correggere gli eventuali errori, quindi fare di nuovo clic su Convalida.
    Quando si aggiunge un endpoint per il trigger Gerrit, è necessario verificare che l'endpoint Gerrit si connetta al server Gerrit.
  3. Fare clic su Crea.
  4. Verificare che nell'ambiente vRealize Automation sia abilitato FIPS oppure fare in modo che il processo Jenkins crei l'ambiente con FIPS abilitato utilizzando l'URL di Jenkins.
    1. Per eseguire il comando dalla riga di comando, connettersi all'appliance vRealize Automation 8.x tramite SSH e accedere come utente root. Ad esempio, connettersi all'URL del nome di dominio completo, ad esempio https://cava-1-234-567.yourcompanyFQDN.com sulla porta 22, 5480 o 443.
    2. Per verificare FIPS in vRealize Automation, eseguire il comando vracli security fips.
    3. Assicurarsi che il comando restituisca FIPS mode: strict.
  5. Se il server Gerrit è un endpoint in un'istanza di vRealize Automation in cui è abilitato FIPS, assicurarsi che il file di configurazione Gerrit includa le chiavi MAC (Message Authentication Code) corrette.
    1. Aprire Gerrit e creare una coppia di chiavi SSH.
    2. Individuare il file di configurazione del server Gerrit in '$site_path'/etc/gerrit.config.
    3. Verificare che il file di configurazione del server Gerrit includa una o più chiavi MAC (Message Authentication Code), eccetto per hmac-MD5.
      Nota: In modalità FIPS, hmac-MD5 non è un algoritmo MAC supportato. Per assicurarsi che il server Gerrit venga avviato correttamente, il file di configurazione del server Gerrit deve escludere questo algoritmo. Se il server Gerrit non si avvia correttamente, viene visualizzato il messaggio PrivateKey/PassPhrase is incorrect
      I nomi delle chiavi MAC (Message Authentication Code) supportati che iniziano con un segno più (+) sono abilitati. I nomi delle chiavi MAC che iniziano con un trattino (-) vengono rimossi dall'elenco dei MAC predefiniti. Per impostazione predefinita, i MAC supportati sono disponibili in un Code Stream per il server Gerrit:
      • hmac-md5-96
      • hmac-sha1
      • hmac-sha1-96
      • hmac-sha2-256
      • hmac-sha2-512
  6. (Facoltativo) Prima di aggiornare un endpoint Gerrit per modificare un URL o una chiave privata, ad esempio, verificare se l'endpoint è connesso a un listener Gerrit.
    • Se l'endpoint non è connesso a un listener Gerrit, eseguire i passaggi seguenti per aggiornare l'endpoint:
      1. Fare clic su Configura > Endpoint, quindi fare clic su Apri sull'endpoint che si desidera aggiornare.
      2. Aggiornare la definizione dell'endpoint.
      3. Fare clic su Convalida per verificare che l'endpoint Gerrit in Code Stream si connetta al server Gerrit.
      4. Fare clic su Salva.
    • Se l'endpoint è connesso a un listener Gerrit, eseguire i passaggi seguenti per aggiornare l'endpoint:
      1. Disconnettere tutti i listener Gerrit collegati. Vedere Come utilizzare il trigger Gerrit in Code Stream per eseguire una pipeline.
      2. Eseguire i passaggi per configurare il nuovo endpoint.
      3. Convalidare e salvare la definizione dell'endpoint aggiornata.
      4. Connettere nuovamente i listener Gerrit.
      Nota: Se i listener Gerrit non si disconnettono, è possibile che i valori dell'endpoint Gerrit corrente vengano modificati in modo che i listener non possano più comunicare con il server Gerrit. Se si verifica questo problema, apportare innanzitutto modifiche alla definizione dell'endpoint in modo che i listener possano comunicare con il server Gerrit. Disconnettere quindi i listener Gerrit e riconnetterli.

Operazioni successive

Per ulteriori informazioni, rivedere le altre sezioni. Vedere Come utilizzare il trigger Gerrit in Code Stream per eseguire una pipeline.