Vous pouvez créer un module ZIP contenant le script PowerShell et les modules de dépendance à utiliser dans les actions d'extensibilité.

Il existe deux méthodes de création du script pour vos actions d'extensibilité :

  • Création de votre script directement dans l'éditeur d'actions d'extensibilité dans Cloud Assembly.
  • Création de votre script sur votre environnement local et ajout de celui-ci, avec toutes les dépendances pertinentes, à un module ZIP.
Un module ZIP vous permet de créer un modèle préconfiguré personnalisé de scripts d'action et de dépendances que vous pouvez importer dans Cloud Assembly pour une utilisation dans les actions d'extensibilité.
Note : Vous n'avez pas besoin de définir les cmdlets PowerCLI en tant que dépendances ou de les regrouper dans un module ZIP. Les cmdlets PowerCLI sont préconfigurés avec l'exécution PowerShell de votre service Cloud Assembly.

En outre, vous pouvez utiliser un module ZIP dans les scénarios où les modules associés à des dépendances dans votre script d'action ne peuvent pas être résolus par le service Cloud Assembly, comme lorsque votre environnement ne dispose pas d'un accès à Internet.

Vous pouvez également utiliser un module ZIP pour créer des actions d'extensibilité qui contiennent plusieurs fichiers de script PowerShell. L'utilisation de plusieurs fichiers de script peut être utile pour organiser la structure de votre code d'action d'extensibilité.

Conditions préalables

Vérifiez que vous êtes familiarisé avec PowerShell et PowerCLI. Vous pouvez trouver une image Docker avec PowerShell Core, PowerCLI 10, PowerNSX et plusieurs modules de communauté et exemples de script dans Docker Hub.

Procédure

  1. Sur votre machine locale, créez un dossier pour votre script d'action et vos dépendances.
    Par exemple, /home/user1/zip-action.
  2. Ajoutez votre script PowerShell principal avec une extension .psm1 au dossier.
    Le script suivant présente une fonction PowerShell simple nommée main.psm1 :
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    Note : La sortie d'une action d'extensibilité PowerShell est basée sur la dernière variable affichée dans le corps de la fonction. Toutes les autres variables de la fonction incluse sont ignorées.
  3. (Facultatif) Ajoutez une configuration de proxy à votre script PowerShell principal à l'aide des paramètres context. Reportez-vous à la section Utilisation de paramètres de contexte pour ajouter une configuration de proxy dans votre script PowerShell.
  4. (Facultatif) Ajoutez toutes les dépendances à votre script PowerShell.
    Note : Votre script de dépendance PowerShell doit utiliser l'extension .psm1. Utilisez le même nom pour le script et le sous-dossier dans lequel le script est enregistré.
    1. Connectez-vous à un shell Linux PowerShell.
      Note : L'exécution de l'extensibilité basée sur l'action dans Cloud Assembly repose sur Linux. Les dépendances PowerShell compilées dans un environnement Windows peuvent rendre le module ZIP généré inutilisable. Toutes les dépendances tierces installées doivent être compatibles avec VMware Photon OS, car tous les scripts PowerShell s'exécutent sur Photon OS.
    2. Accédez au dossier /home/user1/zip-action.
    3. Téléchargez et enregistrez le module PowerShell contenant vos dépendances, en exécutant le cmdlet Save-Module.
      Save-Module -Name <module name> -Path ./
    4. Répétez la sous-étape précédente pour tous les modules de dépendance supplémentaires.
      Important : Vérifiez que chaque module de dépendance se trouve dans un sous-dossier distinct. Pour plus d'informations sur l'écriture et la gestion des modules PowerShell, reportez-vous à la section Comment écrire un module de script PowerShell.
  5. Dans le dossier attribué, sélectionnez vos éléments de script et, le cas échéant, vos sous-répertoires du module de dépendance, puis compressez-les dans un module ZIP.
    Note : Votre script et vos sous-répertoires du module de dépendance doivent être stockés au niveau racine du module ZIP. Lors de la création du module ZIP dans un environnement Linux, vous pouvez rencontrer un problème pour lequel le contenu du module n'est pas stocké au niveau racine. Si vous rencontrez ce problème, créez le module en exécutant la commande zip -r dans votre shell de ligne de commande.
    cd votre_dossier_de_script_et_de_dépendances
    zip -r ../votre_ZIP_d'action.zip *

Que faire ensuite

Utilisez le module ZIP pour créer un script d'action d'extensibilité. Reportez-vous à la section Création d'actions d'extensibilité.