En tant que développeur, vous avez besoin d'un pipeline qui extrait un Blueprint d'automatisation à partir d'une instance de GitHub sur site à chaque fois que vous validez une modification. Vous avez besoin de ce pipeline pour déployer une application WordPress vers Amazon Web Services (AWS) EC2 ou un centre de données. Code Stream appelle le Blueprint à partir du pipeline, et en automatise l'intégration continue et la prestation continue (CICD) pour déployer votre application.

Pour créer et déclencher votre pipeline, vous avez besoin d'un Blueprint.

Pour la Source du Blueprint de votre tâche Blueprint, vous pouvez sélectionner l'une des deux options suivantes :

  • Blueprints Cloud Assembly en tant que contrôle de la source. Dans ce cas, vous n'avez pas besoin d'un référentiel GitLab ou GitHub.
  • Contrôle de la source si vous utilisez GitLab ou GitHub pour le contrôle de la source. Dans ce cas, vous devez disposer d'un Webhook Git et déclencher le pipeline via le Webhook.

Si vous disposez d'un Blueprint YAML dans votre référentiel GitHub et que vous souhaitez utiliser ce Blueprint dans votre pipeline, voici ce que vous devez faire.

  1. Dans VMware Cloud Assembly, transférez le Blueprint vers votre référentiel GitHub.
  2. Dans Code Stream, créez un point de terminaison Git. Créez ensuite un Webhook Git qui utilise votre point de terminaison Git et votre pipeline.
  3. Pour déclencher votre pipeline, mettez à jour tous les fichiers de votre référentiel GitHub et validez votre modification.

Si vous ne disposez pas d'un Blueprint YAML dans votre référentiel GitHub et que vous souhaitez utiliser un Blueprint à partir du contrôle de la source, suivez cette procédure pour en savoir plus. Elle contient des informations à propos de la création d'un Blueprint pour une application WordPress et son déclenchement à partir d'un référentiel GitHub sur site. Chaque fois que vous apportez une modification au Blueprint YAML, le pipeline déclenche et automatise la version de votre application.

  • Dans VMware Cloud Assembly, vous devez ajouter un compte de cloud, ajoutez une zone de cloud et créez le Blueprint.
  • Dans Code Stream, vous devez ajouter un point de terminaison pour le référentiel GitHub sur site qui héberge votre Blueprint. Ensuite, vous devez ajouter le Blueprint à votre pipeline.

Cet exemple de cas d'utilisation vous montre comment utiliser un Blueprint à partir d'un référentiel GitHub sur site.

Workflow d'automatisation de la publication d'une application déployée à partir d'un Blueprint YAML.

Conditions préalables

Procédure

  1. Dans VMware Cloud Assembly, procédez comme suit.
    1. Cliquez sur Blueprints, puis créez un Blueprint et un déploiement pour l'application WordPress.
    2. Collez le code YAML WordPress que vous avez copié dans votre presse-papiers dans votre Blueprint et déployez-le.
      Exemple de Blueprint WordPress.
  2. Dans Code Stream, créez des points de terminaison.
    1. Créez un point de terminaison Git pour votre référentiel GitHub sur site, dans lequel se trouve votre fichier YAML.
      Création d'un point de terminaison Git pour un référentiel GitHub sur site.
    2. Ajoutez un point de terminaison E-mail pour informer les utilisateurs de l'état du pipeline lors de son exécution.
      Ajout d'un point de terminaison E-mail.
  3. Créez un pipeline et ajoutez des notifications de réussite et d'échec de pipeline.
    Notifications par e-mail du pipeline et sélection d'un serveur de messagerie.
  4. Ajoutez une étape pour le déploiement et ajoutez une tâche de Blueprint.
    1. Ajoutez une tâche de Blueprint qui déploie la machine et configurez-la pour utiliser le fichier YAML du Blueprint pour l'application WordPress.
      resources:
        DBTier:    
          type: Cloud.Machine    
          properties:      
              name: mysql      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  -   tag: zone:dev
        WebTier:
          type: Cloud.Machine    
          properties:     
              name: wordpress      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  - tag: zone:dev
       WP-Network-Private:
          type: Cloud.Network
          properties:
              name: WP-Network-Private
              networkType: existing
              constraints:
                  - tag: 'type:isolated-net'
                  - tag: 'zone:dev'
    2. Ajoutez une tâche de Blueprint qui détruit la machine pour libérer des ressources.
  5. Ajoutez une étape pour la production et incluez des tâches d'approbation et de déploiement.
    1. Ajoutez une tâche d'opération d'utilisateur pour exiger une approbation de transfert de l'application WordPress vers la production.
    2. Ajoutez une tâche de Blueprint pour déployer la machine et configurez-la avec le fichier YAML du Blueprint pour l'application WordPress.
      Lorsque vous sélectionnez Créer, le nom du déploiement doit être unique. Si vous ne renseignez pas ce champ, Code Stream lui attribuera un nom aléatoire unique.
      Voici ce que vous devez savoir si vous sélectionnez Restaurer dans votre cas d'utilisation : si vous sélectionnez l'action Restaurer et que vous entrez une Version de restauration, la version doit être au format n-X. Par exemple, n-1, n-2, n-3, etc. Si vous créez et mettez à jour le déploiement dans un emplacement autre que Code Stream, la restauration n'est pas autorisée.
      Lorsque vous vous connectez à Code Stream, un jeton utilisateur est obtenu, ce dernier est valide pendant 30 minutes. Pour les pipelines à durée d'exécution longue, lorsque la tâche antérieure à la tâche du Blueprint dure 30 minutes ou plus, le jeton de l'utilisateur expire. Par conséquent, la tâche de Blueprint échoue.
      Pour vous assurer que votre pipeline peut s'exécuter pendant plus de 30 minutes, vous pouvez entrer un jeton d'API facultatif. Lorsque Code Stream appelle le Blueprint, le jeton d'API persiste et la tâche de Blueprint continue d'utiliser le jeton d'API.
      Lorsque vous utilisez le jeton d'API en tant que variable, celui-ci est chiffré. Dans les autres cas, il est utilisé comme texte brut.
      Ajout d'une tâche de Blueprint pour le déploiement de l'application WordPress.
  6. Exécutez le pipeline.

    Pour vérifier que chaque tâche s'est terminée avec succès, cliquez sur la tâche dans l'exécution et vérifiez l'état dans les détails du déploiement pour afficher des informations détaillées sur les ressources.

  7. Dans GitHub, redéfinissez le type de l'instance du serveur WordPress, small, sur medium.
    Lorsque vous validez des modifications, le pipeline se déclenche. Il extrait le code mis à jour à partir du référentiel GitHub et crée votre application.
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. Exécutez à nouveau le pipeline, vérifiez qu'il a abouti et qu'il a redéfini le type de l'instance de WordPress, petit, sur moyen.

Résultats

Félicitations ! Vous avez automatisé la publication de votre application déployée à partir d'un Blueprint YAML.

Que faire ensuite

Pour plus d'informations sur l'utilisation de Code Stream, reportez-vous à la section Didacticiels d'utilisation de VMware Code Stream.

Pour obtenir des références supplémentaires, reportez-vous à la section Plus de ressources pour les administrateurs et les développeurs VMware Code Stream.