U kunt een ZIP-pakket maken dat uw PowerShell-script en -afhankelijkheidsmodules bevat voor gebruik in uitbreidbaarheidsacties.

Er zijn twee methoden om het script voor uw uitbreidbaarheidsacties te bouwen:

  • Uw script rechtstreeks in de editor voor uitbreidbaarheidsacties in vRealize Automation Cloud Assembly schrijven.
  • Uw script in uw lokale omgeving maken en dit, met alle relevante afhankelijkheden, toevoegen aan een ZIP-pakket.
Door een ZIP-pakket te gebruiken, kunt u een aangepaste vooraf geconfigureerde sjabloon maken van actiescripts en afhankelijkheden die u kunt importeren in vRealize Automation Cloud Assembly voor gebruik in uitbreidbaarheidsacties.
Opmerking: U hoeft geen PowerCLI-cmdlets als afhankelijkheden te definiëren of ze in een ZIP-pakket te bundelen. PowerCLI-cmdlets zijn vooraf geconfigureerd met de PowerShell-runtime van uw vRealize Automation Cloud Assembly-service.

Daarnaast kunt u een ZIP-pakket gebruiken in scenario's waarin modules die zijn gekoppeld aan afhankelijkheden in uw actiescript niet kunnen worden omgezet door de vRealize Automation Cloud Assembly-service, bijvoorbeeld wanneer uw omgeving geen internettoegang heeft.

U kunt ook een ZIP-pakket gebruiken om uitbreidbaarheidsacties te maken die meerdere PowerShell-scriptbestanden bevatten. Het gebruik van meerdere scriptbestanden kan nuttig zijn voor het organiseren van de structuur van uw uitbreidbaarheidsactiecode.

Voorwaarden

Controleer of u bekend bent met PowerShell en PowerCLI. U kunt een Docker-image vinden met PowerShell Core, PowerCLI 10, PowerNSX en verschillende communitymodules en scriptvoorbeelden op Docker Hub.

Procedure

  1. Maak een map voor uw actiescript en afhankelijkheden op uw lokale machine.
    Bijvoorbeeld: /home/user1/zip-action.
  2. Voeg uw hoofd-PowerShell-script met de extensie .psm1 toe aan de map.
    Het volgende script biedt een eenvoudige PowerShell-functie met de naam Main.psm1:
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    Opmerking: De uitvoer van een PowerShell-uitbreidbaarheidsactie is gebaseerd op de laatste variabele die wordt weergegeven in de hoofdtekst van de functie. Alle andere variabelen in de ingesloten functie worden verwijderd.
  3. (Optioneel) Voeg een proxyconfiguratie toe aan uw hoofd-PowerShell-script met behulp van context-parameters. Zie Contextparameters gebruiken om een proxyconfiguratie in uw PowerShell-script toe te voegen.
  4. (Optioneel) Voeg eventuele afhankelijkheden voor uw PowerShell-script toe.
    Opmerking: Uw PowerShell-afhankelijkheidsscript moet de extensie .psm1 gebruiken. Gebruik dezelfde naam voor het script en de submap waarin het script is opgeslagen.
    1. Meld u aan bij een Linux PowerShell-shell.
      Opmerking: De runtime van actiegebaseerde uitbreidbaarheid in vRealize Automation Cloud Assembly is Linux-gebaseerd. PowerShell-afhankelijkheden die in een Windows-omgeving zijn gecompileerd, kunnen het gegenereerde ZIP-pakket onbruikbaar maken. Alle geïnstalleerde afhankelijkheden van derden moeten compatibel zijn met het VMware Photon OS omdat PowerShell-scripts worden uitgevoerd op Photon OS.
    2. Ga naar de map /home/user1/zip-action.
    3. Download en sla de PowerShell-module met uw afhankelijkheden op door de Save-Module-cmdlet uit te voeren.
      Save-Module -Name <module name> -Path ./
    4. Herhaal de vorige substap voor alle aanvullende afhankelijkheidsmodules.
      Belangrijk: Controleer of elke afhankelijkheidsmodule zich in een afzonderlijke submap bevindt. Zie How to Write a PowerShell Script Module voor meer informatie over het schrijven en beheren van PowerShell-modules.
  5. Selecteer in de toegewezen map uw scriptelementen en, indien van toepassing, de submappen van de afhankelijkheidsmodule en comprimeer deze in een ZIP-pakket.
    Opmerking: De submappen voor zowel uw script- als afhankelijkheidsmodule moeten worden opgeslagen op het rootniveau van het ZIP-pakket. Wanneer u het ZIP-pakket in een Linux-omgeving maakt, kan er een probleem optreden waarbij de inhoud van het pakket niet op het rootniveau is opgeslagen. Als u dit probleem ondervindt, maakt u het pakket door de zip -r-opdracht uit te voeren in uw opdrachtregelshell.
    cd your_script_and_dependencies_folder
    zip -r ../your_action_ZIP.zip *

Volgende stappen

Gebruik het ZIP-pakket om een uitbreidbaarheidsactiescript te maken. Zie Hoe maak ik uitbreidbaarheidsacties.