En tant que développeur, vous avez besoin d'un pipeline qui extrait un modèle de cloud 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 modèle de cloud à 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 modèle de cloud VMware.

Pour la Source du modèle de cloud de votre tâche de modèle de cloud Code Stream, vous pouvez sélectionner l'une des deux options suivantes :

  • Modèle 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 modèle de cloud YAML dans votre référentiel GitHub et que vous souhaitez utiliser ce modèle de cloud dans votre pipeline, voici ce que vous devez faire.

  1. Dans Cloud Assembly, transférez le modèle de cloud 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 modèle de cloud YAML dans votre référentiel GitHub et que vous souhaitez utiliser un modèle de cloud à 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 modèle de cloud 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 modèle de cloud YAML, le pipeline déclenche et automatise la version de votre application.

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

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

Le workflow vous aide à naviguer dans le processus qui automatise la publication d'une application que vous déployez à partir d'un modèle de cloud YAML.

Conditions préalables

  • Ajoutez un compte de cloud et une zone de cloud dans votre infrastructure vRealize Automation Cloud Assembly. Consultez la documentation de vRealize Automation Cloud Assembly.
  • Pour créer votre modèle de cloud dans la procédure suivante, copiez le code YAML WordPress dans votre Presse-papiers. Consultez le code YAML du modèle de cloud dans le cas d'utilisation WordPress de la documentation de vRealize Automation Cloud Assembly.
  • Ajoutez le code YAML de l'application WordPress à votre instance GitHub.
  • Ajoutez un Webhook pour le déclencheur Git afin que votre pipeline puisse extraire votre code YAML chaque fois que validez des modifications. Dans Code Stream, cliquez sur Déclencheurs > Git > Webhooks pour Git.
  • Pour utiliser une tâche de modèle de cloud, vous devez disposer de l'un des rôles Cloud Assembly.

Procédure

  1. Dans Cloud Assembly, procédez comme suit.
    1. Cliquez sur VMware Cloud Templates, puis créez un modèle de cloud et un déploiement pour l'application WordPress.
    2. Collez le code YAML WordPress que vous avez copié dans votre Presse-papiers dans votre modèle de cloud et déployez-le.
      À l'aide du code YAML, le modèle de cloud crée le niveau de base de données, le niveau Web et le réseau dans votre déploiement.
  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.
    2. Ajoutez un point de terminaison E-mail pouvant informer les utilisateurs de l'état du pipeline lors de son exécution.
      Lorsque vous ajoutez un point de terminaison E-mail, vous définissez la méthode de chiffrement et le protocole sortant.
  3. Créez un pipeline et ajoutez des notifications de réussite et d'échec de pipeline.
    Lorsque vous ajoutez une notification par e-mail, vous sélectionnez l'un des états de pipeline, et sélectionnez le serveur de messagerie et les destinataires.
  4. Ajoutez une étape pour le déploiement et ajoutez une tâche de modèle de cloud.
    1. Ajoutez une tâche de modèle de cloud qui déploie la machine et configurez-la pour utiliser le fichier YAML du modèle de cloud 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 modèle de cloud 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 utilisateur pour exiger une approbation pour le processus de production de l'application WordPress.
    2. Ajoutez une tâche de modèle de cloud pour déployer la machine et configurez-la avec le fichier YAML du modèle de cloud 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 est 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 modèle de cloud dure 30 minutes ou plus, le jeton de l'utilisateur expire. Par conséquent, la tâche du modèle de cloud é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 modèle de cloud, le jeton d'API persiste et la tâche de modèle de cloud 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.
      La tâche de modèle de cloud peut utiliser un modèle de VMware Cloud dans Cloud Assembly ou en extraire un à partir du contrôle de source dans un référentiel GitLab ou un référentiel GitHub.
  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 modèle de cloud YAML.

Que faire ensuite

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

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