Recurso nxScript de DSC para LinuxDSC for Linux nxScript Resource

El recurso nxScript de la configuración de estado deseado (DSC) de PowerShell ofrece un mecanismo para ejecutar scripts de Linux en un nodo de Linux.The nxScript resource in PowerShell Desired State Configuration (DSC) provides a mechanism to run Linux scripts on a Linux node.

SintaxisSyntax

nxScript <string> #ResourceName
{
    GetScript = <string>
    SetScript = <string>
    TestScript = <string>
    [ User = <string> ]
    [ Group = <string> ]
    [ DependsOn = <string[]> ]
}

PropiedadesProperties

PropiedadProperty DescripciónDescription
GetScriptGetScript Proporciona un script para devolver el estado actual de la máquina.Provides a script to return current status of the machine. Este script se ejecuta al invocar el script GetDscConfiguration.py.This script runs when you invoke the GetDscConfiguration.py script. El script debe comenzar con el par de caracteres shebang, como por ejemplo: #!/bin/bash.The script must begin with a shebang, such as #!/bin/bash.
SetScriptSetScript Proporciona un script que define el estado correcto de la máquina.Provides a script that puts the machine in the correct state. Cuando se invoca el script StartDscConfiguration.py, el bloque TestScript se ejecuta primero.When you invoke the StartDscConfiguration.py script, the TestScript runs first. Si el bloque TestScript devuelve un código de salida distinto de 0, se ejecutará el bloque SetScript .If the TestScript block returns an exit code other than 0, the SetScript block will run. Si el bloque TestScript devuelve un código de salida de 0, no se ejecutará el bloque SetScript .If the TestScript returns an exit code of 0, the SetScript will not run. El script debe comenzar con el par de caracteres shebang, como por ejemplo: #!/bin/bash.The script must begin with a shebang, such as #!/bin/bash.
TestScriptTestScript Proporciona un script que evalúa si el nodo tiene actualmente el estado correcto.Provides a script that evaluates whether the node is currently in the correct state. Cuando se invoca el script StartDscConfiguration.py, este se ejecuta.When you invoke the StartDscConfiguration.py script, this script runs. Si devuelve un código de salida distinto de 0, se ejecutará el bloque SetScript .If it returns an exit code other than 0, the SetScript will run. Si devuelve un código de salida de 0, no se ejecutará el bloque SetScript .If it returns an exit code of 0, the SetScript will not run. El bloque TestScript también se ejecuta cuando se invoca el script TestDscConfiguration.The TestScript also runs when you invoke the TestDscConfiguration script. Sin embargo, en este caso, el bloque SetScript no se ejecutará, independientemente del código de salida que se devuelva del bloque TestScript .However, in this case, the SetScript will not run, no matter what exit code is returned from the TestScript . El bloque TestScript debe tener contenido y debe devolver un código de salida de 0 si la configuración real coincide con la configuración del estado deseado actual, y un código de salida distinto de 0 si no coincide.The TestScript must contain content and must return an exit code of 0 if the actual configuration matches the current desired state configuration, and an exit code other than 0 if it does not match. La configuración de estado deseado actual es la última configuración establecida en el nodo que está usando DSC.The current desired state configuration is the last configuration enacted on the node that is using DSC. El script debe comenzar con el par de caracteres shebang, como por ejemplo: #!/bin/bash.The script must begin with a shebang, such as #!/bin/bash.
UsuarioUser El usuario con el que se ejecutará el script.The user to run the script as.
GrupoGroup El grupo con el que se ejecutará el script.The group to run the script as.

Propiedades comunesCommon properties

PropiedadProperty DescripciónDescription
DependsOnDependsOn Indica que la configuración de otro recurso debe ejecutarse antes de que se configure este recurso.Indicates that the configuration of another resource must run before this resource is configured. Por ejemplo, si el elemento ID del bloque del script de configuración del recurso que quiere ejecutar primero es ResourceName y su tipo es ResourceType, la sintaxis para usar esta propiedad es DependsOn = "[ResourceType]ResourceName".For example, if the ID of the resource configuration script block that you want to run first is ResourceName and its type is ResourceType, the syntax for using this property is DependsOn = "[ResourceType]ResourceName".

EjemploExample

En el ejemplo siguiente se muestra el uso del recurso nxScript para realizar una administración de configuración adicional.The following example demonstrates the use of the nxScript resource to perform additional configuration management.

Import-DSCResource -Module nx

Node $node
{
    nxScript KeepDirEmpty {

    GetScript = @"
#!/bin/bash
ls /tmp/mydir/ | wc -l
"@

    SetScript = @"
#!/bin/bash
rm -rf /tmp/mydir/*
"@

    TestScript = @'
#!/bin/bash
filecount=`ls /tmp/mydir | wc -l`
if [ $filecount -gt 0 ]
then
    exit 1
else
    exit 0
fi
'@
    }
}