Après qu'un administrateur vSphere a attribué des bibliothèques de contenu à un espace de noms ou à un cluster, les utilisateurs DevOps peuvent accéder à la bibliothèque et utiliser ses éléments pour déployer des machines virtuelles à partir d'images de machine virtuelle dans la bibliothèque. Si la bibliothèque attribuée à l'espace de noms est accessible en écriture, les utilisateurs DevOps disposant d'autorisations de modification peuvent également gérer les éléments de bibliothèque et publier de nouvelles images de machine virtuelle.

Note : Il n'existe aucune restriction sur les images de machine virtuelle que vous utilisez. Si vous souhaitez tester des images OVA prêtes à l'emploi, vous pouvez les télécharger sur la page Images recommandées. Gardez à l'esprit que ces images sont destinées à la validation technique uniquement. Dans l'environnement de production, créez des images avec les derniers correctifs et les paramètres de sécurité requis qui suivent les stratégies de sécurité de l'entreprise.

Conditions préalables

En tant qu'utilisateur DevOps, assurez-vous de respecter les conditions requises suivantes :

Procédure

  1. Gérez les éléments de la bibliothèque.
    1. Vérifiez que les bibliothèques de contenu sont disponibles dans l'espace de noms.
      Note : Si vous souhaitez gérer des éléments de bibliothèque dans la bibliothèque ou publier des images de machine virtuelle dans la bibliothèque, assurez-vous que son état accessible en écriture est true.
      kubectl get cl -n <namespace-name>
         NAME                   VSPHERENAME   TYPE    WRITABLE   STORAGETYPE   AGE
         cl-b585915ddxxxxxxxx   Test-ns-cl-1  Local   true       Datastore     3m9s
         cl-535d4b3dnxxxyyyyy   Test-ns-cl-1  Local   false      Datastore     3m9s
    2. Vérifiez le contenu de la bibliothèque.
      kubectl get clitem -n <namespace-name>
       NAME                 VSPHERENAME     CONTENTLIBRAYREF        TYPE   READY   AGE
       clitem-d2wnmq.....   item 1          cl-b585915ddxxxxxxxx    Ovf    True    26c
       clitem-55088d.....   item 2          cl-b585915ddxxxxxxxx    Ovf    True    26c
       clitem-xyzxyz.....   xyzxyz          cl-535d4b3dnxxxyyyyy    Ovf    True    26c
    3. Supprimez une image de la bibliothèque de contenu.
      Note : Vous pouvez supprimer un élément accessible en écriture de la bibliothèque uniquement et si vous disposez d'autorisations Edit ou d'autorisations d'un niveau supérieur.
      Une fois que vous avez supprimé l'élément clitem, la ressource vMI correspondante est également supprimée.
      kubectl delete clitem clitem-55088d.....
       NAME                 VSPHERENAME     CONTENTLIBRAYREF        TYPE   READY   AGE
       clitem-d2wnmq.....   item 1          cl-b585915ddxxxxxxxx    Ovf    True    26c
       clitem-xyzxyz.....   xyzxyz          cl-535d4b3dnxxxyyyyy    Ovf    True    26c
    4. Informations relatives à l'image get.
      kubectl get vmi -n <namespace-name>
       NAME              PROVIDER-NAME      CONTENT-LIBRAY-NAME    IMAGE-NAME VERSION   OS-TYPE        FORMAT   AGE
       vmi-d2wnmq.....   clitem-d2wnmq..... cl-b585915ddxxxxxxxx   item 1               ubuntu64guest  ovf      26c
       vmi-55088d.....   clitem-55088d..... cl-b585915ddxxxxxxxx   item 2               otherguest     ovf      26c
  2. Publiez une image dans la bibliothèque de contenu.
    1. Créez un fichier YAML pour déployer une machine virtuelle source.
      Assurez-vous que le nom de l'image dans la spécification VirtualMachine fait référence à l'une des images de machine virtuelle de la bibliothèque de contenu.
      Par exemple, source-vm.yaml.
      apiVersion: vmoperator.vmware.com/v1alpha2
      kind: VirtualMachine
      metadata:
        name: source-vm
        namespace: test-publish-ns
      spec:
        className: best-effort-small
        storageClass: wcpglobal-storage-profile
        imageName: vmi-d2wnmq.....
        powerState: poweredOn
        vmMetadata:
          transport: CloudInit
    2. Obtenez des informations sur la machine virtuelle déployée et connectez-vous à la machine virtuelle pour vous assurer qu'elle est en cours d'exécution.
      Les résultats de la commande sont semblables aux suivants.
      kubectl get vm -n <namespace-name>
      NAME        POWER-STATE   CLASS             IMAGE           PRIMARY-IP        AGE
      source-vm   poweredOn     best-effort-small vmi-d2wnmq..... 192.168.000.00   9m32s
    3. Créez une demande de publication pour une nouvelle image cible.
      Par exemple, vmpub.yaml. Dans la demande, indiquez le nom de la machine virtuelle source et de la bibliothèque de contenu cible dans laquelle vous souhaitez publier votre image. Assurez-vous que la bibliothèque est accessible en écriture.
      apiVersion: vmoperator.vmware.com/v1alpha2
      kind: VirtualMachinePublishRequest
      metadata:
        name: vmpub-1
        namespace: test-publish-ns
      spec:
        source:
          apiVersion: vmoperator.vmware.com/v1alpha2
          kind: VirtualMachine
          name: source-vm # If empty, the name of this VirtualMachinePublishRequest will be used as the source VM name ("vmpub-1" in this example).
        target:
          item:
            name: publish-image-1 # If empty, the target item name is <source-vm-name>-image by default
          location:
            apiVersion: imageregistry.vmware.com/v1alpha2
            kind: ContentLibrary
            name: cl-b585915ddxxxxxxxx
      
    4. Décrivez la demande de publication.
      Assurez-vous que la demande de publication se trouve dans un état Ready avec le ImageName défini.
      kubectl describe vmpub vmpub-1 -n <namespace-name>
      ==================
      Status:
        imageName: vmi-12980cddd...
        ready: true
      ==================
    5. Vérifiez que la nouvelle image est ajoutée à la bibliothèque de contenu une fois la demande de publication terminée.
      kubectl get vmi
       NAME              PROVIDER-NAME      CONTENT-LIBRAY-NAME    IMAGE-NAME      VERSION   OS-TYPE        FORMAT   AGE
       vmi-12980cddd..   clitem-12980cddd.. cl-b585915ddxxxxxxxx   publish-image-1           ubuntu64guest  ovf      7m12s
       vmi-d2wnmq.....   clitem-d2wnmq..... cl-b585915ddxxxxxxxx   item 1                    ubuntu64guest  ovf      26m
       vmi-55088d.....   clitem-55088d..... cl-b585915ddxxxxxxxx   item 2                    otherguest     ovf      26m
    Vous pouvez utiliser cette nouvelle image pour déployer une nouvelle machine virtuelle.