Mise en place d'une chaîne d'outils CI à l'aide de Terraform
Avec ce tutoriel, vous pouvez utiliser le modèle de chaîne d'outils pour l'intégration continue (CI) dans DevSecOps pour Infrastructure as Code ( IaC ) Terraform. Il est préconfiguré pour le déploiement continu (CD) avec intégration de l'inventaire, gestion des changements avec Git Repos and Issue Tracking, collecte des preuves et déploiement de l'infrastructure sur IBM Cloud.
Avant de commencer
Effectuez les étapes suivantes avant de commencer ce tutoriel.
- Terminez La mise en place des prérequis. Pour plus d'informations, voir l'importance de l'IC pour IaC.
- Voir la vidéo suivante :
Démarrage de la configuration de la chaîne d'outils CI
Le service Continuous Delivery fournit des modèles qui vous guident dans la configuration de la chaîne d'outils et créent des processus dans un ordre logique. Un indicateur de progression indique les étapes à suivre pour terminer la configuration. Suivez les étapes pour accéder au modèle de la chaîne d'outils CI.
- Dans la console 'IBM Cloud, cliquez sur l'icône 'Menu '
> 'Automatisation de la plate-forme > 'Chaînes d'outils.
- Sur la page Chaînes d'outils, cliquez sur Créer une chaîne d'outils.
- Vérifier l'infrastructure en tant que code.
- Cliquez sur CI - Développer une infrastructure sécurisée en tant que code avec les pratiques DevSecOps tuile.
Configurer les paramètres de la chaîne d'outils CI
La page Bienvenue résume l'objectif de la chaîne d'outils et propose des liens vers la documentation et le matériel connexe.
-
Cliquez sur Start.
-
Saisissez un Nom de la chaîne d'outils dans votre chaîne d'outils pour la même région et le même groupe de ressources dans le IBM Cloud.
-
Sélectionnez une région dans la liste déroulante.
-
Sélectionnez un groupe de ressources dans la liste déroulante.
-
Cliquez sur Continu.
Vous ne pouvez passer à l'étape suivante que si la configuration de l'étape en cours est terminée et valide. Vous pouvez toujours cliquer sur Retour pour afficher les étapes précédentes de l'installation guidée. Tous les paramètres de configuration définis au cours des étapes successives sont conservés dans le programme d'installation de la chaîne d'outils.
Certaines étapes comprennent un bouton bascule vers la configuration avancée. Ces étapes vous présentent par défaut la configuration minimale. Toutefois, les utilisateurs avancés qui ont besoin d'un contrôle plus fin peuvent cliquer sur le bouton Basculer vers la configuration avancée pour faire apparaître les options de l'intégration sous-jacente.
Mise en place d'intégrations d'outils de CI
Passez en revue les paramètres par défaut et fournissez les configurations définies par l'utilisateur lorsque cela est nécessaire pour mettre en place l'intégration de l'outil CI. Configurer plusieurs référentiels lors de l'installation. Vous pouvez cloner les référentiels d'exemples ou utiliser les vôtres, mais la chaîne d'outils ne prend en charge que les référentiels Git Repos and Issue Tracking.
Code d'infrastructure
Le référentiel de code de l'infrastructure est le projet ou le module que la chaîne d'outils et le pipeline d'IC construisent, testent et livrent l'artefact cible. Le dépôt de code de l'infrastructure est hébergé sur GitHub Enterprise. Par souci de cohérence, ce tutoriel fait référence à Git Repos and Issue Tracking.
Examinez les informations par défaut pour le code d'infrastructure :
- Accepter Utiliser l'échantillon par défaut. Si vous souhaitez lier un référentiel IaC existant pour la chaîne d'outils, sélectionnez Apportez votre propre code d'infrastructure et indiquez-le dans le champ Référentiel URL. La chaîne d'outils n'accepte actuellement que les liens vers les dépôts Git Repos and Issue Tracking existants. Pour plus d'informations, voir Apporter son propre code d'infrastructure à DevSecOps.
- Entrez un nom pour Nouveau nom du référentiel.
- Cliquez sur Continu.
Inventaire Ansible
Le référentiel d'inventaire enregistre les détails des artefacts créés par les chaînes d'outils de CI.
- Vous pouvez accepter la configuration par défaut fournie dans le modèle.
- Cliquez sur Continu.
Problèmes
Le référentiel de problèmes enregistre les problèmes détectés lors de l'exécution du pipeline d'EC.
- Vous pouvez accepter la configuration par défaut fournie dans le modèle.
- Cliquez sur Continuer
Secrets
Spécifiez les intégrations du coffre-fort secret à ajouter à votre chaîne d'outils en utilisant les boutons, comme expliqué dans Gestion des IBM Cloud secrets.
- Ce tutoriel utilise IBM Cloud® Secrets Manager comme coffre pour les secrets. Les zones Région, Groupe de ressources et Nom du service sont automatiquement renseignées en fonction des choix disponibles. Cliquez sur les indicateurs déroulants pour voir les autres choix.
- Saisissez votre Secrets Manager nom d'instance.
- Sélectionnez le type d'autorisation dans la liste déroulante.
- Cliquez sur Continu.
Stockage des preuves
Le casier de preuves stocke toutes les preuves et tous les artefacts générés par le pipeline de CI DevSecOps.
- Faites basculer le curseur du seau IBM Cloud Object Storage pour stocker toutes les preuves dans le seau IBM Cloud Object Storage qui peut être configuré à la page suivante.
- Accepter les paramètres par défaut.
- Cliquez sur Continu.
Compartiment cloud Object Storage
Vous devez disposer d'une instance d' IBM Cloud Object Storage et d'un compartiment servant de coffre-fort pour les preuves de conformité.
- Les champs Cloud Object Storage instance, Nom du panier, et Cloud Object Storage endpoint sont automatiquement remplis.
- Saisissez votre clé API Service ID.
- Préféré : Une clé existante peut être importée à partir d'un coffre-fort secret en cliquant sur l'icône de la clé.
- Une clé existante peut être copiée et collée.
- Cliquez sur Continu.
Le champ "endpoint" n'est pas obligatoire. Vous pouvez sélectionner ou fournir le point final pendant la configuration de la chaîne d'outils ou pendant l'exécution du pipeline.
Déployer
Configurer l'espace de travail cible Schematics où les états Terraform sont maintenus. Si le nom de l'espace de travail n'est pas fourni, la chaîne d'outils crée un espace de travail par défaut Schematics avec le ToolchainName-ToolchainId-PipelineID.
-
Saisissez votre clé API IBM Cloud. Si la clé API dispose d'un accès suffisant. L'espace de travail Schematics, Git repositories, et Resource group sont automatiquement renseignés. Vous pouvez modifier n'importe lequel de ces champs pour l'adapter à votre configuration.
- Préféré : Une clé existante peut être importée à partir d'un coffre-fort secret en cliquant sur l'icône de la clé.
- Une clé existante peut être copiée et collée.
- Une nouvelle clé peut être créée à partir d'ici en cliquant sur le bouton Nouveau +.
La clé API nouvellement générée peut être immédiatement sauvegardée dans un coffre-fort secret.
-
Saisissez le Nom de l'espace de travail schématique.
-
Cliquez sur Continu.
Signature
Les artefacts créés par la chaîne d'outils et enregistrés dans l'inventaire doivent être signés avant d'être déployés en production.
- Saisissez la GnuPG Private Key. Vous pouvez également créer une nouvelle clé GPG en cliquant sur NEW. Pour plus d'informations, voir Génération d'une clé GPG.
- Cliquez sur Continu.
Outils facultatifs
Slack
Configurez le Slack pour recevoir des notifications sur vos pull requests, ou les événements du pipeline CI. Vous pouvez également ajouter l'outil Slack après la création de la chaîne d'outils.
- Saisissez votre webhook Slack. Pour plus d'informations, voir Slack webhook.
- Saisissez votre canal Slack pour poster un message.
- Saisissez le Nom de l'équipe adverse. Par exemple, si votre équipe URL est
https://team.slack.com, le nom de l'équipe estteam. - Choisir Notifications Slack automatisées pour les événements pour lesquels vous souhaitez recevoir des notifications.
- Cliquez sur Continu.
En option, vous pouvez activer l'envoi de notifications avec la propriété d'environnement slack-notifications dans votre pipeline CD en utilisant 0 = off, and 1 = on.
Création de la chaîne d'outils CI
-
Dans la page Récapitulatif, cliquez sur Créer une chaîne d'outils.
-
Attendez la création de la chaîne d'outils.
D'autres intégrations de la chaîne d'outils peuvent être configurées après la création du pipeline.
Exploration de la chaîne d'outils CI
La chaîne d'outils CI contient pr-pipeline et ci-pipeline. Ces pipelines se déclenchent lorsqu'une nouvelle demande de fusion est soumise ou fusionnée à la branche principale dans le dépôt de code de l'infrastructure.
Suivez les étapes pour accéder à votre chaîne d'outils :
-
Dans la console 'IBM Cloud, cliquez sur l'icône 'Menu '
> 'Automatisation de la plate-forme > 'Chaînes d'outils.
-
Sur la page Chaînes d'outils, cliquez sur Créer une chaîne d'outils.
-
Cliquez sur votre chaîne d'outils pour afficher la sortie comme indiqué dans la capture d'écran.
L'exemple utilisé dans ce tutoriel nécessite un
resource_grouppour créer l'instance Key Protect. Le nomresource_grouppar défaut estDefault. Si la valeur par défaut ne convient pas à votre compte, remplacez la variable par défautresource_groupdans le fichiervariables.tf. Sinon, spécifiez la variableresource_groupen définissant la propriété d'environnementTF_VAR_resource_groupdans le pipeline PR et le pipeline CI avec le nom du groupe de ressources approprié.
Chaîne d'outils DevSecOps CI
Exécuter le pipeline pr
Pour lancer le site pr-pipeline, créez une demande de fusion dans votre référentiel d'application :
-
Sur la page de la chaîne d'outils CI, cliquez sur la tuile du référentiel d'applications. Par défaut, il est créé sous le nom
compliance-app-<timestamp>. -
Créez une branche à partir de la branche principale.
-
Mettez à jour certains codes dans l'application ou ajoutez un fichier readme et enregistrez les modifications.
-
Soumettre une demande de fusion.
-
Sur la page de la chaîne d'outils CI, cliquez sur la tuile pr-pipeline. Vérifier que le pipeline PR est déclenché par la création de la demande de fusion.
-
Attendez la fin de l'exécution du programme
pr-pipeline. La demande de fusion correspondante qui se trouve dans le référentiel de votre application est dans l'étatPendingjusqu'à ce que toutes les étapes du pipeline PR se terminent avec succès. -
Lorsque l'exécution du pipeline PR est réussie, cliquez sur le pipeline pour découvrir les nombreuses étapes réalisées et pour afficher la page comme indiqué dans la capture d'écran.
caption-side=bottom"
-
Retournez à la demande de fusion.
-
Fusionnez la demande pour que vos modifications soient copiées dans la branche principale du référentiel de votre application. Veillez à ce que votre pipeline CI soit automatiquement déclenché.
Exécution du pipeline CI
Démarrez le pipeline d'EC de l'une des manières suivantes:
- Automatiquement : après un PR pipeline réussi, en approuvant et en fusionnant le PR à la branche principale.
- Manuellement : pour déclencher manuellement le pipeline CI, sélectionnez la carte Delivery Pipeline, cliquez sur Run Pipeline et sélectionnez Manual Trigger.
Dans ce tutoriel, le pipeline CI a été déclenché après que vous ayez fusionné vos modifications de code dans la branche master du référentiel de votre application.
-
Sur la page de la chaîne d'outils CI, cliquez sur la tuile ci-pipeline.
-
Cliquez sur Run en regard du nom de votre pipeline. Observer le fonctionnement d'un pipeline. Attendez la fin de l'exécution du pipeline.
-
Une fois que l'exécution du pipeline CI est réussie, cliquez sur le pipeline pour explorer les étapes réalisées et afficher la page comme indiqué dans la capture d'écran.
caption-side=bottom"
Les éléments de preuve provenant de tous les contrôles de conformité dans le pipeline de l'IC sont téléchargés dans le référentiel du casier à preuves, mais aussi dans le seau IBM Cloud Object Storage.
Pour déterminer si votre pipeline a connu des échecs, vérifiez l'étape finale de votre pipeline.
Personnalisation du pipeline
Pour plus d'informations sur la personnalisation du pipeline, voir Comment un utilisateur peut-il personnaliser le pipeline ?
Etapes suivantes
Vous avez créé avec succès une DevSecOps pour Terraform, modifié le code dans le référentiel de code de l'infrastructure, exécuté ci-pipeline pour construire, tester et déployer vos modifications dans l'environnement de développement.
Maintenant, passez à Mise en place d'une chaîne d'outils CD pour Terraform.