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 Automation Assembler.
- 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
Automation Assembler 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
Automation Assembler.
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
- En la máquina local, cree una carpeta para las dependencias y el script de acción.
Por ejemplo,
/home/user1/zip-action.
- 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.
- (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.
- (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.
- Inicie sesión en un shell de PowerShell de Linux.
Nota: El tiempo de ejecución de la extensibilidad basada en acciones en
Automation Assembler 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.
- Desplácese hasta la carpeta /home/user1/zip-action.
- 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 ./
- 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.
- 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.