Impostazione di una catena di strumenti CI utilizzando Terraform
Con questo tutorial è possibile utilizzare il modello di toolchain per l'integrazione continua (CI) in DevSecOps per Infrastructure as Code ( IaC ) Terraform. È preconfigurato per la distribuzione continua (CD) con l'integrazione dell'inventario, la gestione delle modifiche con Git Repos and Issue Tracking, la raccolta delle prove e la distribuzione dell'infrastruttura su IBM Cloud.
Prima di iniziare
Prima di iniziare l'esercitazione, completare i seguenti passaggi.
- Completate Impostazione dei prerequisiti. Per ulteriori informazioni, consultare la sezione importanza dell'IC per IaC.
- Guardate il seguente video:
Avviare l'impostazione della toolchain CI
Il servizio Continuous Delivery fornisce modelli che guidano l'utente attraverso la configurazione della catena di strumenti e creano processi in un ordine logico. Un indicatore di avanzamento mostra le procedure per completare la configurazione. Seguire i passaggi per accedere al modello della catena di strumenti CI.
- Nella console IBM Cloud, fare clic sull'icona Menu
> Automazione piattaforma > Toolchains.
- Nella pagina Catene di strumenti, fare clic su Crea catena di strumenti.
- Controllare l'Infrastruttura come Codice.
- Fate clic sulla piastrella CI - Sviluppare un'infrastruttura sicura come codice con le pratiche DevSecOps.
Impostare le impostazioni della catena di strumenti CI
La pagina Benvenuto riassume lo scopo della toolchain e rimanda alla documentazione e ai materiali correlati.
-
Fai clic su Start.
-
Inserire un nome della catena di strumenti all'interno della catena di strumenti per la stessa regione e gruppo di risorse nel IBM Cloud.
-
Selezionare una regione dall'elenco a discesa.
-
Selezionare un gruppo di risorse dall'elenco a discesa.
-
Fai clic su Continue.
È possibile passare al passo successivo solo quando la configurazione per il passo corrente è completa e valida. È sempre possibile fare clic su Indietro per visualizzare i passaggi precedenti del programma di installazione guidata. Il programma di installazione della toolchain conserva tutte le impostazioni di configurazione dai passaggi successivi.
Alcuni passaggi includono un pulsante Passa alla configurazione avanzata. Per impostazione predefinita, questi passaggi presentano la configurazione minima. Tuttavia, gli utenti avanzati che necessitano di un controllo a grana più fine possono fare clic sulla levetta Passa alla configurazione avanzata per visualizzare le opzioni dell'integrazione sottostante.
Configura integrazioni dello strumento IC
Esaminare le impostazioni predefinite e fornire le configurazioni definite dall'utente, ove necessario, per impostare l'integrazione dello strumento CI. Configurare più repository durante la configurazione. Puoi clonare i repository di esempio o utilizzarne uno tuo, ma la toolchain supporta solo repository Git Repos and Issue Tracking.
Codice infrastruttura
Il repository di codice dell'infrastruttura è il progetto o il modulo che la catena di strumenti e la pipeline CI costruiscono, testano e consegnano l'artefatto di destinazione. Il repository del codice dell'infrastruttura è ospitato su GitHub Enterprise. Per coerenza, questa esercitazione fa riferimento a Git Repos and Issue Tracking.
Esaminare le informazioni predefinite per il codice dell'infrastruttura:
- Accettare Utilizzare il campione predefinito. Se si desidera collegare un repository IaC e esistente per la toolchain, selezionare Bring your own infrastructure code e fornire come input al campo Repository URL. La toolchain attualmente supporta il collegamento solo a repository Git Repos and Issue Tracking esistenti. Per ulteriori informazioni, vedere Bringing your own infrastructure code(Portare il proprio codice infrastrutturale)su DevSecOps.
- Inserire un nome per il nome del nuovo repository.
- Fai clic su Continue.
Inventario
Il repository dell'inventario registra i dettagli degli artefatti creati dalle catene di strumenti CI.
- È possibile accettare la configurazione predefinita fornita nel modello.
- Fai clic su Continue.
Problemi
Il repository dei problemi registra i problemi rilevati durante l'esecuzione della pipeline CI.
- È possibile accettare la configurazione predefinita fornita nel modello.
- Fai clic su Continue
Segreti
Specificare le integrazioni del caveau segreto da aggiungere alla propria toolchain utilizzando le levette, come spiegato in Gestione dei IBM Cloud segreti.
- Questa esercitazione usa IBM Cloud® Secrets Manager come vault per i segreti. I campi Regione, Gruppo di risorse e Nome servizio vengono popolati automaticamente in base a scelte disponibili. Fare clic sugli indicatori a discesa per visualizzare le altre scelte.
- Digitate il vostro Secrets Manager nome istanza.
- Selezionare il tipo di autorizzazione dall'elenco a discesa.
- Fai clic su Continue.
Archiviazione prove
L'archivio delle prove memorizza tutte le prove e gli artefatti generati dalla pipeline DevSecOps CI.
- Attivare il cursore del secchio IBM Cloud Object Storage per memorizzare tutte le prove nel secchio IBM Cloud Object Storage che può essere configurato nella pagina successiva.
- Accettare le impostazioni predefinite.
- Fai clic su Continue.
Bucket Object Storage cloud
È necessario disporre dell 'istanza IBM Cloud Object Storage e di un bucket che funga da archivio delle prove di conformità.
- I campi Istanza Cloud Object Storage, Nome del bucket e Cloud Object Storage endpoint sono popolati automaticamente.
- Inserite la vostra chiave API ID servizio.
- Preferibile: È possibile importare una chiave esistente da un caveau dei segreti facendo clic sull'icona della chiave.
- È possibile copiare e incollare una chiave esistente.
- Fai clic su Continue.
Il campo endpoint non è obbligatorio. È possibile selezionare o fornire l'endpoint durante la configurazione della toolchain o durante l'esecuzione della pipeline.
Distribuisci
Configurare lo spazio di lavoro di destinazione Schematics dove vengono mantenuti gli stati di Terraform. Se il nome dell'area di lavoro non viene fornito, toolchain crea un'area di lavoro predefinita Schematics con il nome ToolchainName-ToolchainId-PipelineID.
-
Digitare la propria IBM Cloud chiave API. Se la chiave API ha un accesso sufficiente. I dettagli Schematics dello spazio di lavoro, Git repository e Gruppo di risorse sono popolati automaticamente. È possibile modificare uno qualsiasi di questi campi per adattarlo alla propria configurazione.
- Preferibile: È possibile importare una chiave esistente da un caveau dei segreti facendo clic sull'icona della chiave.
- È possibile copiare e incollare una chiave esistente.
- Da qui è possibile creare una nuova chiave facendo clic sul pulsante Nuovo +.
La nuova chiave API generata può essere immediatamente salvata in un caveau dei segreti.
-
Inserire il nome dell'area di lavoro schematica.
-
Fai clic su Continue.
Firma
Gli artefatti creati dalla toolchain e registrati nell'inventario devono essere firmati prima di essere distribuiti in produzione.
- Immettere la chiave privata GnuPG. In alternativa, è possibile creare una nuova chiave GPG facendo clic su NEW. Per ulteriori informazioni, vedere Generazione di una chiave GPG.
- Fai clic su Continue.
Strumenti facoltativi
Slack
Configurare Slack per ricevere notifiche sulle richieste di pull o sugli eventi della pipeline CI. È possibile aggiungere lo strumento Slack anche dopo la creazione della catena di strumenti.
- Inserite il vostro webhook Slack. Per ulteriori informazioni, vedere Slack webhook.
- Inserire il proprio canale Slack per inviare il messaggio.
- Inserire il nome della squadra Slack. Ad esempio, se la squadra URL è
https://team.slack.com, il nome della squadra èteam. - Scegliere Notifiche automatiche di Slack per gli eventi di cui si desidera ricevere le notifiche.
- Fai clic su Continue.
Facoltativamente, è possibile attivare l'invio di notifiche con la proprietà dell'ambiente slack-notifications nella pipeline CD, utilizzando 0 = off, and 1 = on.
Crea la toolchain CI
-
Nella pagina di riepilogo, fare clic su Crea catena di strumenti.
-
Attendere la creazione della catena di strumenti.
È possibile configurare altre integrazioni della toolchain dopo la creazione della pipeline.
Esplora la toolchain CI
La catena di strumenti CI contiene pr-pipeline e ci-pipeline. Queste pipeline si attivano quando una nuova richiesta di unione viene inviata o unita al ramo principale nel repository del codice dell'infrastruttura.
Seguire la procedura per accedere alla propria catena di strumenti:
-
Nella console IBM Cloud, fare clic sull'icona Menu
> Automazione piattaforma > Toolchains.
-
Nella pagina Catene di strumenti, fare clic su Crea catena di strumenti.
-
Fare clic sulla propria catena di strumenti per visualizzare l'output, come mostrato nella cattura dello schermo.
Il campione utilizzato in questo tutorial prevede l'uso di
resource_groupper creare l'istanza Key Protect. Il nomeresource_grouppredefinito èDefault. Se il valore predefinito non è appropriato per il vostro account, sostituite la variabile predefinitaresource_groupnel filevariables.tf. In alternativa, specificare la variabileresource_groupimpostando la proprietà d'ambienteTF_VAR_resource_groupnella pipeline PR e nella pipeline CI al nome del gruppo di risorse appropriato.
DevSecOps CI toolchain
Esegui pipeline pr
Per avviare il pr-pipeline, creare una richiesta di unione nel repository dell'applicazione:
-
Dalla pagina CI toolchain, fare clic sul riquadro del repository dell'applicazione. Per impostazione predefinita, viene creato con il nome
compliance-app-<timestamp>. -
Creare un ramo dal ramo principale.
-
Aggiornare il codice dell'applicazione o aggiungere un file readme e salvare le modifiche.
-
Inviare Richiesta di fusione.
-
Nella pagina della toolchain CI, fai clic sul tile pr - pipeline. Verificare che la pipeline PR sia attivata dalla creazione della richiesta di unione.
-
Attendere il completamento dell'esecuzione di
pr-pipeline. La richiesta di unione corrispondente, che si trova nel repository dell'applicazione, è nello statoPendingfinché tutte le fasi della pipeline PR non si concludono con successo. -
Dopo che l'esecuzione della pipeline PR è andata a buon fine, fare clic sulla pipeline per esplorare i numerosi passaggi completati e visualizzare la pagina come mostrato nella cattura dello schermo.
DevSecOps PR pipeline successo -
Tornare alla richiesta di fusione.
-
Unire la richiesta in modo che le modifiche vengano copiate nel ramo principale del repository dell'applicazione. Verificare che la pipeline CI venga attivata automaticamente.
Esegui la pipeline CI
Avviare la pipeline CI in uno dei seguenti modi:
- Automaticamente: dopo una pipeline di PR di successo, approvando e unendo la PR alla filiale principale.
- Manualmente: per attivare la pipeline CI manualmente, selezionare la scheda Delivery Pipeline e fare clic su Esegui pipeline e selezionare Attivazione manuale.
In questa esercitazione, la pipeline CI è stata attivata dopo l'unione delle modifiche al codice nel ramo master del repository dell'applicazione.
-
Nella pagina CI toolchain, fai clic sul tile ci - pipeline.
-
Fare clic su Esegui contro il nome della pipeline. Osservare l'esecuzione di una pipeline. Attendere il completamento dell'esecuzione della pipeline.
-
Dopo che l'esecuzione della pipeline CI è andata a buon fine, fare clic sulla pipeline per esplorare i passaggi completati e visualizzare la pagina come mostrato nella cattura dello schermo.
Pipeline CI DevSecOps
Le prove di tutti i controlli di conformità nella pipeline CI vengono caricate nel repository dell'archivio delle prove, ma anche nel bucket IBM Cloud Object Storage.
Per valutare se si sono verificati errori nell'esecuzione della pipeline, controllare il passaggio finale della pipeline.
Personalizzazione della pipeline
Per ulteriori informazioni sulla personalizzazione della pipeline, vedere Come fa un utente a personalizzare la pipeline?
Passi successivi
Si è creato con successo un DevSecOps CI toolchain per Terraform, si è modificato il codice nel repository di codice dell'infrastruttura, si è eseguito ci-pipeline per costruire, testare e distribuire le modifiche all'ambiente di
sviluppo.
Passiamo ora a Impostare una catena di strumenti CD per Terraform.