Puede crear un paquete ZIP que contenga el script de PowerShell y los módulos de dependencia para usarlos en las acciones de extensibilidad.

Existen dos métodos para crear el script de las acciones de extensibilidad:

  • Escribir el script directamente en el editor de acciones de extensibilidad en Cloud Assembly.
  • Crear el script en el entorno local y agregarlo junto con las dependencias relevantes a un paquete ZIP.
Al utilizar un paquete ZIP, puede crear una plantilla preconfigurada personalizada de dependencias y scripts de acción que puede importar a Cloud Assembly para usarla en las acciones de extensibilidad.
Nota: No es necesario que defina los cmdlets de PowerCLI como dependencias ni que los empaquete en un paquete ZIP. Los cmdlets de PowerCLI vienen preconfigurados con el tiempo de ejecución de PowerShell del servicio de Cloud Assembly.

Asimismo, puede utilizar un paquete ZIP en escenarios en los que el servicio de Cloud Assembly no puede resolver los módulos asociados con dependencias en el script de acción, como cuando el entorno no tiene acceso a Internet.

De igual forma, puede utilizar un paquete ZIP para crear acciones de extensibilidad que contengan varios archivos de script de PowerShell. El uso de varios archivos de script puede resultar útil a la hora de organizar la estructura del código de las acciones de extensibilidad.

Requisitos previos

Asegúrese de estar familiarizado con PowerShell y PowerCLI. Puede encontrar una imagen de Docker con PowerShell Core, PowerCLI 10, PowerNSX y varios módulos de la comunidad y ejemplos de scripts en Docker Hub .

Procedimiento

  1. En la máquina local, cree una carpeta para las dependencias y el script de acción.
    Por ejemplo, /home/user1/zip-action.
  2. Agregue el script principal de PowerShell con la extensión .psm1 a la carpeta.
    El siguiente script presenta una función de PowerShell simple llamada main.psm1:
    function handler($context, $payload) {
    
      Write-Host "Hello " $payload.target
    
     
    
      return $payload
    Nota: Los resultados de una acción de extensibilidad de PowerShell se basan en la última variable que se muestra en el cuerpo de la función. Todas las demás variables de la función incluida se descartan.
  3. (opcional) Agregue una configuración de proxy al script principal de PowerShell mediante parámetros de context. Consulte Utilizar parámetros de contexto para agregar una configuración de proxy en el script de PowerShell.
  4. (opcional) Agregue cualquier dependencia del script de PowerShell.
    Nota: El script de dependencia de PowerShell debe utilizar la extensión .psm1. Utilice el mismo nombre para el script y la subcarpeta en la que se guardó el script.
    1. Inicie sesión en un shell de PowerShell de Linux.
      Nota: El tiempo de ejecución de la extensibilidad basada en acciones en Cloud Assembly se basa en Linux. Todas las dependencias de PowerShell compiladas en un entorno de Windows pueden hacer que el paquete ZIP generado quede inutilizable. Todas las dependencias de terceros instaladas deben ser compatibles con Photon OS de VMware, ya que los scripts de PowerShell se ejecutan en Photon OS.
    2. Desplácese hasta la carpeta /home/user1/zip-action.
    3. Descargue y guarde el módulo de PowerShell que contiene las dependencias. Para ello, ejecute el cmdlet Save-Module.
      Save-Module -Name <module name> -Path ./
    4. Repita el subpaso anterior para cualquier módulo de dependencia adicional.
      Importante: Compruebe que cada módulo de dependencia se encuentre en una subcarpeta independiente. Para obtener más información sobre cómo escribir y administrar módulos de PowerShell, consulte Cómo escribir un módulo de scripts de PowerShell.
  5. En la carpeta asignada, seleccione los elementos del script y, si corresponde, las subcarpetas del módulo de dependencia. A continuación, comprímalos en un paquete ZIP.
    Nota: Tanto el script como las subcarpetas del módulo de dependencia deben almacenarse en el nivel de raíz del paquete ZIP. Al crear el paquete ZIP en un entorno de Linux, es posible que se produzca un problema en el que el contenido del paquete no se almacene en el nivel de raíz. Si se produce este problema, cree el paquete ejecutando el comando zip -r en el shell de la línea de comandos.
    cd your_script_and_dependencies_folder
    zip -r ../your_action_ZIP.zip *

Qué hacer a continuación

Utilice el paquete ZIP para crear un script de acción de extensibilidad. Consulte Cómo crear acciones de extensibilidad.